A coordinator can leave text for a worker without typing into its pane. - Store (src/web/agent-inbox.ts): read until ack by id, seen only for the receiver, 16 KiB/message, 512 KiB + 200 messages per inbox, full = 409 CONFLICT (never drops the oldest), 12 h TTL from each message's createdAt. - Routes (routes/inbox-routes.ts): POST/GET /api/sessions/:id/inbox (?wait= parks while nothing is unseen), POST .../inbox/ack (receiver only, 403 otherwise), GET /api/agent-inbox/summary (owner-scoped counts, not in toState()). Caller = resolveParentSessionId(). - Inbox waiters are the wait registry's third kind: same caps, ended by cancelAll/cancelEverything. - Opt-in snapshot (agentInboxPersistEnabled, synced, default off): agent-inbox.json via dataPath(), 0600 tmp+rename, off deletes it, boot prune only after a successful restore. Dropped on delete, kept on detach. - CLI: codeman agent post | inbox [--wait] | ack, INBOX column in ls. - waitCapacityResponse/abortOnClientHangUp moved to route-helpers.ts unchanged. - Docs: api-reference, README, CLAUDE.md, architecture-invariants, skill + plugin mirror. Co-Authored-By: Claude Opus 5.5 (1M context) <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 only inside a Codeman-managed session (CODEMAN_MUX=1) and refuses everywhere else, so installing it globally costs nothing for unrelated sessions.
Pick one install route. Codeman can inject the skill into each case itself (App Settings, 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.
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