Best for
- Use when you need to know which coding agents are running, where, and since when.
sonichi/sutando/skills/agent-registry/SKILL.md
Local Agent Registry — a standalone, dependency-free service that tracks running Claude Code (and other) agent instances. Agents self-register on startup and heartbeat while alive; the Electron overlay and Sutando dashboard read the live list. Use when you need to know which coding agents are running, where, and since when.
Decision brief
A thin local service that tracks running agent instances. Claude Code instances register themselves on startup (via a SessionStart hook) and heartbeat while alive; consumers read the live list over a localhost HTTP API.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Declared | Source record | Install path and trigger |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/sonichi/sutando --skill "skills/agent-registry"Inspect the Agent Skill "agent-registry" from https://github.com/sonichi/sutando/blob/6a8f0fccd32e5aa620a3572c8885544f144bb6fe/skills/agent-registry/SKILL.md at commit 6a8f0fccd32e5aa620a3572c8885544f144bb6fe. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
DB: /data/agent-registry.db (SQLite, auto-created)
It is startable by Sutando three ways, in order of preference:
Add the SessionStart hook to .claude/settings.json:
Each agent record: id, name, cwd, pid, host, startedat, lastheartbeat, heartbeatage, status, meta. status is active / stale / stopped.
Review the “CLI quick reference” section in the pinned source before continuing.
Permission review
The documentation asks the agent to run terminal commands or scripts.
python3 $C list # show the registryThe documentation asks the agent to run terminal commands or scripts.
python3 $C register --name claude-code --pid $$ # register (prints id)Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 80/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 359 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
A thin local service that tracks running agent instances. Claude Code instances register themselves on startup (via a SessionStart hook) and heartbeat while alive; consumers read the live list over a localhost HTTP API.
This is not the AG2 Workforce Hub app. It is a small local service that can
optionally mirror its state to an AG2 hub using the hub connection layer
(ag2_workforce.hub.client) — see "Optional: AG2 Hub mirroring" below — but the
core service has zero third-party dependencies and works entirely offline.
skills/agent-registry/
├── scripts/registry-service.py # the HTTP service + SQLite store
├── scripts/registry-client.py # CLI: register / heartbeat / deregister / list / watch
└── hooks/session-start.sh # Claude Code SessionStart hook
<workspace>/data/agent-registry.db (SQLite, auto-created)<workspace>/state/agent-registry.json — written by the
service with the bound port so clients find it without a hardcoded port.127.0.0.1, first free port from 7847 upward.It is startable by Sutando three ways, in order of preference:
registry-client.py call with --autostart
launches the service detached if it is not already running. The
SessionStart hook passes --autostart, so the first Claude Code session to
start brings the registry up.startup.sh. For an always-on registry, add to src/startup.sh:
python3 skills/agent-registry/scripts/registry-service.py &python3 skills/agent-registry/scripts/registry-service.pyAdd the SessionStart hook to .claude/settings.json:
{
"hooks": {
"SessionStart": [
{ "hooks": [
{ "type": "command",
"command": "bash skills/agent-registry/hooks/session-start.sh" }
] }
]
}
}
On session start the hook backgrounds registry-client.py watch, which
registers the instance, heartbeats every 30s, and deregisters when the session
ends. If it is killed ungracefully the entry ages out via heartbeat staleness
(> 90s → stale; stopped/stale rows are pruned after 1h).
| Method | Path | Body | Returns |
|---|---|---|---|
| POST | /register | {name, cwd, pid, host?, meta?} | {id} |
| POST | /heartbeat | {id} | {ok, status} |
| POST | /deregister | {id} | {ok} |
| GET | /agents | — | {agents:[...], count} |
| GET | /health | — | {ok, count, uptime} |
Each agent record: id, name, cwd, pid, host, started_at, last_heartbeat, heartbeat_age, status, meta. status is active / stale / stopped.
C=skills/agent-registry/scripts/registry-client.py
python3 $C list # show the registry
python3 $C register --name claude-code --pid $$ # register (prints id)
python3 $C heartbeat --id <ID>
python3 $C deregister --id <ID>
python3 $C watch --name claude-code --pid <PID> --autostart # used by the hook
The service is agent-agnostic — name is free-form, so any agent registers the
same way (--name kimi-code). What is agent-specific is the registration
trigger: Claude Code uses a SessionStart hook; another agent needs its own
equivalent (a startup hook, plugin, or a launch-command wrapper that runs
registry-client.py watch).
To announce registry state to an AG2 hub, a future extension can open a
RemoteHubClient (ag2_workforce.hub.client) and post agent join/leave events.
This is deliberately not in the core service — it stays dependency-free and
local-first. Add it as a separate module that subscribes to registry changes.
Alternatives
jackchuka/skills
Audit skill SKILL.md files for compliance with the agentskills.io specification and house conventions. Checks frontmatter fields (name, description, compatibility, metadata, argument-hint), metadata sub-fields (author, scope, layer, confirms), and layer/suffix consistency. Use when adding new skills, reviewing skill quality, or ensuring all skills follow the spec. Triggers: "audit skills", "check skill spec", "skill compliance", "are my skills up to spec", "/claude-skill-spec-audit".
affaan-m/ECC
Patterns and architectures for autonomous Claude Code loops — from simple sequential pipelines to RFC-driven multi-agent DAG systems.
affaan-m/ECC
GAN-inspired Generator-Evaluator agent harness for building high-quality applications autonomously. Based on Anthropic's March 2026 harness design paper.
affaan-m/ECC
Write-time code quality enforcement using Plankton — auto-formatting, linting, and Claude-powered fixes on every file edit via hooks.