Agent Deck
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install professorpalmer/Puppetmaster puppetmaster --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .claude/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .claude/skills/puppetmaster && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .claude/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmasterType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install professorpalmer/Puppetmaster puppetmaster --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .agents/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .agents/skills/puppetmaster && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .agents/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install professorpalmer/Puppetmaster puppetmaster --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .cursor/skills/puppetmaster && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .cursor/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/professorpalmer/Puppetmaster.git --path puppetmaster/skills/puppetmaster--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install professorpalmer/Puppetmaster puppetmaster --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .gemini/skills/puppetmaster && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .gemini/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install professorpalmer/Puppetmaster puppetmasterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .github/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .github/skills/puppetmaster && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .github/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install professorpalmer/Puppetmaster puppetmaster --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/professorpalmer/Puppetmaster.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/puppetmaster/skills/puppetmaster .opencode/skills/puppetmaster && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "puppetmaster" agent skill from https://github.com/professorpalmer/Puppetmaster/tree/main/puppetmaster/skills/puppetmaster into .opencode/skills/puppetmaster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "puppetmaster", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
puppetmasterOperates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
Puppetmaster runs adapter workers (Cursor SDK, Claude Code, Codex, Hermes) as durable, SQLite-backed subprocesses with leases, structured JSON artifacts, per-task model routing and isolated git worktrees. The skill prefers its verbs over a solo grep-and-read loop for focused edits that benefit from CodeGraph or cheap-model routing, broad investigation, multi-file audits and cross-cutting changes. MCP tools are the primary surface, with a CLI fallback, python -m puppetmaster, for when MCP is not connected.
A table matches task shape to verb: edit for one focused change, start_implement for a coupled multi-file feature in an isolated worktree, start_review for a read-only review, start_swarm for broad analysis, start_browser_swarm for live-site browser QA, codegraph_search for where-is and what-calls questions, and route_task for model and cost decisions without spend. Trivial edits stay inline. Reference files cover a monitoring state machine and recovery for stuck, empty or degraded jobs and MCP disconnects.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b2baa28. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Puppetmaster MCP tools or the puppetmaster-ai Python CLI on Windows, macOS, or Linux.
From compatibility in the SKILL.md frontmatter.
Puppetmaster Agent Orchestration loads about 3.2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 1,510 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from professorpalmer/Puppetmaster at commit b2baa28, republished under its MIT licence (© professorpalmer). 1,510 words, ~3,167 tokens.
.claude/skills/puppetmaster/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Multi-agent orchestrator that runs adapter workers (Cursor SDK / Claude Code /
Codex / Hermes) as durable, SQLite-backed subprocesses with leases, structured
JSON artifacts, per-task model routing, and isolated git worktrees. Published on
PyPI as puppetmaster-ai; the CLI mirrors every MCP verb.
Prefer Puppetmaster verbs over a solo grep/read loop or the built-in delegation for: single focused edits that benefit from CodeGraph or cheap-model routing, broad investigation, multi-file audits, and cross-cutting changes.
mcp_puppetmaster_puppetmaster_*. Use
tool_search to find a verb, tool_describe to load its schema, tool_call
to invoke. This is the primary path.python -m puppetmaster ...) when MCP isn't connected. The
MCP server shells out to its own resolved interpreter, so MCP can work even
when python -m puppetmaster fails in the current venv.| Task shape | Verb | Why |
|---|---|---|
| One focused edit ("fix this fn", "add a flag", "wire up retries") | edit | Cheapest sufficient model + CodeGraph + in-place edit + synchronous diff. The snappy path between editing inline and a full implement job. |
| One coupled multi-file feature | start_implement | Isolated clean worktree, one coherent PATCH artifact. Grok Bot contained path is agentic (keys-only), not Cursor SDK. |
| One focused read-only review | start_review | Resolves explicit adapter/platform → configured default reviewer → actionable fail-closed error. Cursor tools remain Cursor-only. |
| Broad read-only analysis (audit, "find all X") | start_swarm / start_cursor_swarm | Parallel roles over read-only analysis; use the Cursor-specific verb only when Cursor is an explicit choice. |
| Live-site browser QA (drive a real browser, capture real network payloads) | start_browser_swarm | N parallel browser workers with React-input/network-truth/strong-model guardrails. Hermes preferred; adapter=agentic uses stdlib CDP / OpenRouter. ACTING AGENT (side effects). |
| "Where is X / what calls Y" | codegraph_search | Structural lookup before reading files. |
| "What model / how much?" | route_task | Pure decision, no spend. |
label (3–6 words) to any start_* / edit
verb so the dashboard and jobs list stay scannable instead of showing bare
job_<hash> ids. Omitted labels fall back to a title derived from the goal.edit verb (lightweight single in-place edit)puppetmaster_edit "<instruction>" — the daily-driver verb for one focused
change:
routing_policy=cheap); pin with
model to override routing.allow_dirty) — no isolated worktree.job_id to poll.require_diff gate fails a
no-op edit closed, so a "done" edit that changed nothing can't pass.Use start_implement instead when the change is coupled/multi-file and wants an
isolated worktree.
Chief and Marionette consume artifacts / refs / show / effort-index. Never read worker transcripts.
route_task / auto_route / start_prewalk.effort_index (omit effort_id for the latest tagged
effort; type + query filter claim/check/decision). Use artifacts +
refs=true for one job. show for the stitch. Expand a payload only when
needed.gate on the worker worktree. Reuse
Puppetmaster gate; do not invent a fake PC.rollup remains the jobs/cost/tokens ledger. effort_index is queryable
memory on top.
For any "where is X / what calls Y / what implements Z" question, query
CodeGraph first, then read only the files it points to. Verbs: codegraph_search,
codegraph_context, codegraph_affected, codegraph_files, codegraph_status,
codegraph_init.
cwd=<workspace> explicitly. The codegraph tools default cwd to
$HOME, not the repo — without it, codegraph_status reports "Not initialized"
even for a healthy index..codegraph/ doesn't exist, run codegraph_init once first.codegraph_search.
(Plain text matches — log strings, config values — may still use ripgrep.)auto_route: true enables per-task model routing (default true when no model
is pinned).routing_policy: balanced (cheapest sufficient — default), cheap,
quality, escalating. Optional caps: max_cost_usd, min_capability.~/.puppetmaster/models.json (puppetmaster models init
seeds it). route_task dry-runs a decision and shows rejected alternatives.~/.puppetmaster/platform.json, a denylist) restricts which
adapters the router may pick. Lock rejections mid-migration are expected, not
failures.puppetmaster platform reviewer <adapter> (or inspect it with
puppetmaster platform reviewer). There is no built-in reviewer platform:
start_review fails closed when unset, and a configured
reviewer that is disabled or unavailable never falls back to another enabled
platform. Pass adapter or platform explicitly when a one-off choice is
intended.Consume artifacts / refs / show / effort-index, never worker transcripts.
route_task / auto_route / start_prewalk.artifacts (refs=true), show, or effort-index /
puppetmaster_effort_index (latest tagged effort when effort_id is
omitted; filter with type / query). Expand a payload only when needed.gate / tests on the worker worktree.rollup is the jobs/cost/tokens ledger. effort-index is queryable memory.
Workers can be told to write tighter. Off by default. Shapes form, not reasoning, so it never lowers answer quality — the win is readability and latency, with a small cost bonus on output-heavy roles (output tokens are a minority of an agentic bill).
PUPPETMASTER_OUTPUT_STYLE=terse (or lithic).payload.output_style = "terse" | "lithic" | "off". An
explicit payload value wins over the env; "off" opts one spec out.terse — drop ceremony, filler, hedging, restatement; one claim per line;
state uncertainty as fact (unconfirmed: X). Safe; recommended tier.lithic — terse plus telegraphic glue-dropping (articles/copulas). Marginal
extra savings, mild quality risk; best for machine-consumed artifacts, not a
human-facing summary.payload.output_style_text, or globally with PUPPETMASTER_OUTPUT_STYLE_TEXT
/ PUPPETMASTER_OUTPUT_STYLE_FILE. Custom text wins over the tiers; the spec
is stamped output_style: "custom".Full reference: docs/OUTPUT_STYLE.md.
start_* verbs)start_* returns immediately with job_id and an opaque job_ref. Treat the
returned monitor_with object as the bounded continuation contract. Then:
For the full state machine, read references/monitoring-state-machine.md. For transport/version/Windows recovery, read references/recovery.md only when that failure occurs.
monitor_with.tool using its exact job_ref, backend, and initial
cursor. Use the returned next_cursor for the next call; filtered feeds
still advance the durable cursor over hidden routing/heartbeat events.status (pass the same job_ref/state identity when supported) → check
task_counts, stale_task_ids, progress, outcome, and delivery.await_job blocks only ~45s per call and returns timed_out=true — expect to
call it several times for a multi-minute swarm; that is normal, not a stall.delivery.verdict == "delivered" as successful. cancelled,
stalled, blocked quality, stale tasks, and degraded/empty output are not
successful delivery even when raw lifecycle data is terminal.Always pass cwd for launches, writes, and CodeGraph. Read-only observation can
resume from the returned job_ref; an explicit state_dir remains authoritative
and intentionally disables project auto-location.
Don't report success off "job complete" alone. Assert on status.outcome:
outcome.trustworthy == true
outcome.quality == "ok"
stale_task_ids == []
outcome.patch_artifact_emitted == true # for edit / implement runstool_search for the verbs.route_task → confirm a model_id + rejected list.edit "<instruction>" --cwd <repo> → confirm the diff lands and
patch_artifact_emitted./tmp), start_swarm with
cwd=<fixture>, then status (trust gate green) + show (stitched summary).codegraph
shim can short-circuit code paths CI exercises. Defer to the actual CI run.pip upgrade until restarted —
it imports the package once at startup. If MCP and CLI disagree after an
upgrade, restart the MCP server (toggle it in Hermes MCP settings / restart
Hermes). The CLI forks fresh and shows the new behavior.outcome.trustworthy and stale_task_ids.launcher_pid is not the worker — monitor via job_id + status/logs/feed.job_ref through the
CLI fallback and never start an unrelated replacement job. Supply a
caller-generated launch_key when the host may retry a start response.max_cost_usd is routing-only — it bounds estimated model selection, not
total runtime spend. Runtime output, wall-clock, turns, and measured-token
limits are capability-dependent and must be reported honestly by the adapter.hermes worker persists a
source=tool session; Puppetmaster prunes the ended ones after every run (via
hermes sessions prune, race-safe — only ended sessions). Set
PUPPETMASTER_HERMES_PRUNE_SESSIONS=0 to keep them for debugging, or clean up
manually with hermes sessions prune --source tool --older-than 0 --yes.© professorpalmer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in puppetmaster/skills/puppetmaster of professorpalmer/Puppetmaster.
Open the folder on GitHubat commit b2baa28
Puppetmaster Agent Orchestration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Puppetmaster Agent Orchestration this skillprofessorpalmer/Puppetmaster | 467 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Run Wavejpicklyk/task-orchestrator | 207 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Vibe Kanbanaiskillstore/marketplace | 430 | — | ~4.4k | Automated safety check: Notes | None | |
| ClawTeam Multi-Agent Swarmwin4r/ClawTeam-OpenClaw | 1.5k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT |
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
jpicklyk/task-orchestrator
Resolves ready MCP work items into a run plan, shows it to you, then executes it through the Workflow tool or direct subagent dispatch, with post-run verification.
aiskillstore/marketplace
Manage AI coding agents on a visual Kanban board. An agent skill from aiskillstore/marketplace.
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
naw103/foremerge
Coordinate parallel coding agents with Foremerge's local Git-compatible CLI and MCP server.
professorpalmer/Puppetmaster
Proves the Puppetmaster Jev transition behaves as specified: unset never uses the network, opt-in may skip the conflict auditor, and later versions only observe.
professorpalmer/Puppetmaster
Pilot Puppetmaster from Pi. Pi is the TUI, not a leased worker. Use for start_implement, start_agentic, start_prewalk, effort-index, show, and nuking finished…
Works with
Categories
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs. Puppetmaster runs adapter workers (Cursor SDK, Claude Code, Codex, Hermes) as durable, SQLite-backed subprocesses with leases, structured JSON artifacts, per-task model routing and isolated git worktrees. The skill prefers its verbs over a solo grep-and-read loop for focused edits that benefit from CodeGraph or cheap-model routing, broad investigation, multi-file audits and cross-cutting changes.
Puppetmaster Agent Orchestration fits situations like: making a focused edit with CodeGraph and cheap-model routing; running a multi-file audit or broad investigation with parallel workers; monitoring or recovering stuck or degraded Puppetmaster jobs; finding what calls a function before changing it.
Run `npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a claude-code`. Or copy the skill folder (puppetmaster/skills/puppetmaster in professorpalmer/Puppetmaster) into .claude/skills/puppetmaster in your project. Claude Code loads it when a task matches its description.
Run `npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a codex`. Or copy the skill folder (puppetmaster/skills/puppetmaster in professorpalmer/Puppetmaster) into .agents/skills/puppetmaster in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add professorpalmer/Puppetmaster --skill puppetmaster -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/puppetmaster, .gemini/skills/puppetmaster, .github/skills/puppetmaster and .opencode/skills/puppetmaster in your project.
Going by SKILL.md and its folder, Puppetmaster Agent Orchestration needs the command-line tools its instructions call (python and pip). Our summary lists: Puppetmaster MCP tools or the puppetmaster-ai Python CLI. Compatibility (from SKILL.md): Puppetmaster MCP tools or the puppetmaster-ai Python CLI on Windows, macOS, or Linux..
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Puppetmaster Agent Orchestration is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 688 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Puppetmaster Agent Orchestration: Agent Deck (asheshgoplani/agent-deck, 1k stars), Run Wave (jpicklyk/task-orchestrator, 207 stars), Vibe Kanban (aiskillstore/marketplace, 430 stars) and ClawTeam Multi-Agent Swarm (win4r/ClawTeam-OpenClaw, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
professorpalmer (a GitHub user) maintains it in professorpalmer/Puppetmaster, which has 467 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.
Source: professorpalmer/Puppetmaster on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.