✓ Verified 💻 Development ✓ Enhanced Data

Subagent Overseer

Monitor sub-agent health and progress via a pull-based bash daemon.

Rating
3.8 (389 reviews)
Downloads
1,720 downloads
Version
1.0.0

Overview

Monitor sub-agent health and progress via a pull-based bash daemon.

Complete Documentation

View Source →

Sub-Agent Overseer

Lightweight pull-based daemon that monitors sub-agent health. Writes a status file every N seconds. The heartbeat handler reads it — no push, no noise.

Architecture

text
overseer.sh (bash, runs in background)
    ├── /proc/<pid>  → gateway alive? CPU? threads?
    ├── openclaw sessions list  → sub-agent count + ages
    ├── find -newer marker  → filesystem activity
    └── writes /tmp/overseer/status.json  (atomic mv)

heartbeat (agent, every 3min)
    └── reads /tmp/overseer/status.json → summarize or HEARTBEAT_OK

Key principle: The overseer does all data collection. The heartbeat handler does zero tool calls if the status file is fresh and healthy.

Quick Start

1. Start the overseer when spawning sub-agents

bash
setsid scripts/overseer.sh \
  --workdir /path/to/repo \
  --interval 180 \
  --max-stale 4 \
  --voice \
  &>/dev/null &

2. Heartbeat reads the status file

bash
cat /tmp/overseer/status.json

3. Interpret the status

FieldMeaning
subagents.countActive sub-agent sessions
subagents.details[].staleConsecutive cycles with no filesystem changes
subagents.details[].statusactive / idle / warning / stuck
gateway.health.aliveIs openclaw-gateway running?
filesystem.changes_since_lastFiles modified since last check

4. Staleness thresholds (at 180s interval)

stale countTimeStatusAction
0-10-3 minactive/idleNormal
2-36-9 minwarningVoice alert (if --voice)
≥4≥12 minstuckAgent should investigate/kill

Heartbeat Handler Protocol

When HEARTBEAT.md fires:

  • Read /tmp/overseer/status.json — if missing or stale (>10 min), restart overseer
  • If subagents.count == 0 for 2+ cycles → overseer auto-exits → reply HEARTBEAT_OK
  • If all agents active → brief one-line status → HEARTBEAT_OK
  • If any stuck → report which labels are stuck → consider killing via subagents kill
  • Never cache a previous heartbeat response. Always read the status file fresh.

Flags

FlagDefaultDescription
--interval180Seconds between checks
--workdircwdDirectory to watch for file changes
--labels(all)Comma-separated labels to filter
--max-stale4Cycles before marking stuck
--voiceoffLocal TTS alerts via jarvis command

How It Works (No AI Tokens)

  • Gateway health: Reads /proc//status for CPU, memory, threads, FD count. Pure kernel data.
  • Sub-agent list: Single openclaw sessions list call per cycle. Parses grep output.
  • Filesystem diff: find -newer marker — detects any file writes in the workdir.
  • Status file: JSON written atomically (write to temp, mv into place). Any reader sees a complete file.
  • Self-exit: If no sub-agents for 2 consecutive cycles, the overseer stops itself.
  • Dedup: flock ensures only one overseer instance runs at a time.

Cost

  • Overseer: $0.00 (bash + /proc + one CLI call per cycle)
  • Voice alerts: $0.00 (local sherpa-onnx via jarvis)
  • Heartbeat reads status file: $0.00 (one cat command)
  • Only cost is the heartbeat model itself (qwen3 local = free)

Pairs Well With

👉 https://github.com/globalcaos/tinkerclaw

_Clone it. Fork it. Break it. Make it yours._

Installation

Terminal bash

openclaw install subagent-overseer
    
Copied!

💻Code Examples

└── reads /tmp/overseer/status.json → summarize or HEARTBEAT_OK

--reads-tmpoverseerstatusjson--summarize-or-heartbeatok.txt
**Key principle:** The overseer does all data collection. The heartbeat handler does zero tool calls if the status file is fresh and healthy.

## Quick Start

### 1. Start the overseer when spawning sub-agents
example.txt
overseer.sh (bash, runs in background)
    ├── /proc/<pid>  → gateway alive? CPU? threads?
    ├── openclaw sessions list  → sub-agent count + ages
    ├── find -newer marker  → filesystem activity
    └── writes /tmp/overseer/status.json  (atomic mv)

heartbeat (agent, every 3min)
    └── reads /tmp/overseer/status.json → summarize or HEARTBEAT_OK
example.sh
setsid scripts/overseer.sh \
  --workdir /path/to/repo \
  --interval 180 \
  --max-stale 4 \
  --voice \
  &>/dev/null &

Tags

#web_and-frontend-development

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author globalcaos
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install subagent-overseer