100yenadmin / hermes-teammates
git clone https://github.com/100yenadmin/hermes-teammates.git
v1.1.0 · 3d ago
Named subagent teammates for Hermes Agent: an operator-defined roster, context-carried follow-ups, live steering and a Kanban teammates lane. Stock Hermes; no patched core.
+-4
stars, 24h · #62,169
+~0
stars, 7 days · #44,938
+85
stars, 30 days · #8,143
85
★ total
3
forks · 9 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-10-05 (18d ago)
Last push3d ago
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# Hermes Teammates **Named subagent teammates for Hermes Agent.** You define a small roster of teammates (a reviewer, a scout, a test-writer), each with its own instructions, toolsets and model. Your agent hands them work, checks on them, steers them mid-run, follows up with the context of earlier assignments, and can work a Kanban lane with a review handoff. Stock Hermes; no patched core. It uses the public plugin subagent lifecycle API (`ctx.subagent_lifecycle`). - **For:** people who already delegate with Hermes and want the same specialists every time, without rewriting the brief, and with a durable record of what each teammate did. - **Not for:** DAG workflows with gates and fan-out. Use hermes-workflows for those. Teammates is about who does the work; workflows is about the shape of a long job. ## Screenshots | Roster | Two teammates in parallel, one working a Kanban card | |---|---| | | | | **Results; the card moved to review** | **`/teammates` in any chat** | | | | ## How it works [code] 1. You define teammates in config. The model only ever picks a teammate **name**; you decide what that name means. 2. `teammate_assign` launches a subagent through `ctx.subagent_lifecycle` and returns a `run_id` at once. The teammate's instructions travel in its context. Its toolsets can only narrow the parent's, never widen them. 3. `teammate_check` reports status, or waits up to 60 s and returns the result. Every run is recorded in a per-profile SQLite ledger (` /plugin-data/hermes-teammates/data.db`). Results of plain runs are saved when the child finishes, even if you never call `teammate_check`. 4. `follow_up: true` gives the teammate a bounded digest of its earlier assignments in this conversation, so it picks up where it left off. 5. `teammate_message` steers a running teammate. The text lands at its next step, without stopping it. `teammate_stop` records accepted stops; completions after the stop stay cancelled and block their Kanban card. Refused cancellations leave completed work intact. 6. **Kanban teammates lane.** Assign cards to the `teammates` lane, which is not a Hermes profile, so the dispatcher leaves them alone. `teammate_assign(kanban_task=…)` claims the card and keeps the claim alive while the teammate works. On success the card moves to **review** with the teammate's summary; on failure it is **blocked** with the reason. You, or your agent, accept or request changes with the usual Kanban tools. ## Install [code] Then restart the gateway (or the CLI session) so the tools register. ## Configure **In Hermes Desktop** (0.21.5 or newer), open the plugin's settings. On current builds they are under **Settings ▸ Plugins**; on 0.21.5 they open inline from the plugin's row under **Capabilities ▸ Plugins**. | Setting | What it does | Valid values (invalid teammates are refused; other settings fall back to defaults) | |---|---|---| | **Teammates** | Your roster, as a JSON object (example below) | Names: lowercase letters, digit