`spawn_worker <name> local` started the one agent the model was installed with. The server now lists every agent the model can be run with, so the skill passes the choice on: - `local_model` adds `agents` (each with its status, whether it is the default, and the readiness mark the server measured) and `models` (what is on the Mac; only the active one runs). A new reason, `no-agent`: installed, but nothing that can run the model is there. - `spawn_worker <name> local:<cli>` (`local:pi`, `local:deepseek`, `local:opencode`, `local:claude`, also as `name:local:pi` in `spawn_workers`) starts an agent whose status is `ready`. Anything else fails the spawn before a session exists and names the agents that are startable. No agent is ever installed from here: that stays a person's click in the window. A Codeman that lists no agents knows one, and only that one can be named. - The readiness mark comes from the server when it names one, else from what this skill measured (OpenCode `┃`, Pi `extended-keys`), and `LOCAL_READY_MARK` overrides both. - A Pi worker on the local model is started with `piConfig.approveProjectTrust: false` (--no-approve). On a custom model Pi keeps no home, so it asks to trust the folder in every session with Trust preselected, and the task prompt's Enter would answer that. Pi's mark is the last line of its startup, a warning about tmux's `extended-keys` option. Its composer rule is painted in the first frame, before Pi takes Enter: a prompt sent at the rule stayed unsent, 2 of 2, and one sent at the warning was submitted, 4 of 4 (pi 1.5.2, Linux). It is a side effect, not a contract, so a Pi that stops printing it fails the spawn and the worker is deleted, never handed back on a guess. The preamble changed, so CODEMAN_PREAMBLE moves to 1.51.0 in the preamble, the SKILL.md copy of it and every version check, and the plugin mirror is synced. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
codeman (Claude Code plugin)
The agent skill for Codeman, the self-hosted mission control for AI coding agents. With it, a Claude Code session running inside Codeman can start other sessions, prompt them, block until they finish, read their answers and clean up, in plain English instead of API calls.
/plugin marketplace add Ark0N/Codeman
/plugin install codeman@codeman
The skill acts inside a Codeman-managed session (CODEMAN_MUX=1). Outside one it only reads saved Codex conversations offline (codeman history read) and refuses everything else, so installing it globally costs nothing for unrelated sessions.
Pick one install route. Codeman injects the skill into each new session's folder itself, on by default since 1.50.0 (App Settings, Agents & CLIs, Codeman Agent Skill), and codeman skill install writes a user-level copy; a Claude Code that has one of those AND this plugin lists the skill twice, as codeman and codeman:codeman. Both work, the second is just noise: turn that setting off, or skip the plugin, if it bothers you.
This directory is a mirror of skills/codeman in the main repository, kept byte-identical by scripts/sync-plugin.mjs and pinned by a test. Edit the source there, never here. npm run check:plugin (repo root, needs the claude CLI) checks the mirror and validates both manifests. Source, issues and the rest of Codeman: https://github.com/Ark0N/Codeman