Not in the top 1,000 by GitHub stars
Ark0N/Codeman
Self-hosted mission control for AI coding agents: run Claude Code, OpenCode, Pi, Codex, and Antigravity & Gemini CLI 24/7, from any device, watch every subagent live
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/codeman/skills/codeman/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ecf28fa3beda → f1f7eec4d6a5
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
skills/codeman/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
ecf28fa3beda → f1f7eec4d6a5
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Verified commit f1f7eec4d6a54c73822d118262712535eea5fd28
git clone --filter=blob:none --no-checkout https://github.com/Ark0N/Codeman.git .hotskills/ark0n-codeman && git -C .hotskills/ark0n-codeman checkout --detach f1f7eec4d6a54c73822d118262712535eea5fd28
# Copy each selected skill directory from .hotskills/ark0n-codeman into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/Ark0N/Codeman.git .hotskills/ark0n-codeman && git -C .hotskills/ark0n-codeman checkout --detach f1f7eec4d6a54c73822d118262712535eea5fd28
# Copy each selected skill directory from .hotskills/ark0n-codeman into .agents/skills/<skill-name>/Heat
6.2- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
How it works
codeman
When your agent uses it
Drive Codeman, the session manager this agent is running inside, over its HTTP API, from any agent CLI (Claude Code, Codex, Gemini CLI, OpenCode, Antigravity, Grok Build, DeepSeek Harness, OMP): list sessions, start worker sessions in any installed CLI, send them prompts, block until they finish (wait / wait-output / send-and-wait), read their output, and clean up; where available, message claude workers directly (Claude Code cross-session messaging). Use when asked to orchestrate or parallelize work across Codeman sessions, get a second opinion from another CLI or model, watch another session, start and manage workers, or retrieve saved local Codex history by file/native ID or root and descendants with topic/date filters. Live API operations require a Codeman-managed session (CODEMAN_MUX=1). Offline history reads do not require a server or managed session.
What it loads into context
Frontmatter
214 tokensAlways available to the agent
SKILL.md
15,723 tokensWhen the skill is activated
Reference documents
51,364 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 0. Guard and bootstrap
- 1. The fast path: N workers, one Bash call
- 2. What do you want to do?
- 3. Rules digest
- 4. Safety rules
- 5. Recipes → [reference/verbs.md](reference/verbs.md)
- 6. Setup and auth
Scripts executed separately
preamble.sh
Files
../../../../.claude-plugin/marketplace.jsonasset994 bytes../../.claude-plugin/plugin.jsonasset700 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytespreamble.shruns22,287 bytesreference/endpoints.mddoc60,075 bytesreference/history.mddoc5,099 bytesreference/inspection-and-staging.mddoc9,284 bytesreference/messaging.mddoc32,017 bytesreference/recipes.mddoc39,717 bytesreference/verbs.mddoc49,808 bytes
Read SKILL.md
# Driving Codeman from inside a session
For **saved Codex conversation history**, use `codeman history read` and
[reference/history.md](reference/history.md). This is a read-only local command:
route to it **before §0**, including outside a managed session. It needs no API
URL, credentials or running server. All live API operations below retain §0.
You are an agent running inside a Codeman-managed terminal session. Codeman is the
server that spawned you; its HTTP API can start, prompt, watch, and delete other
sessions.
**Read as far as your job needs and no further.** §0 is the bootstrap, run once. §1 is
the whole fast path: spawn N workers, task them, collect answers. **If §1 covers your
job, run it and stop there.** The sections after it are for jobs it does not cover, andView the complete source on GitHubcodeman
When your agent uses it
Drive Codeman, the session manager this agent is running inside, over its HTTP API, from any agent CLI (Claude Code, Codex, Gemini CLI, OpenCode, Antigravity, Grok Build, DeepSeek Harness, OMP): list sessions, start worker sessions in any installed CLI, send them prompts, block until they finish (wait / wait-output / send-and-wait), read their output, and clean up; where available, message claude workers directly (Claude Code cross-session messaging). Use when asked to orchestrate or parallelize work across Codeman sessions, get a second opinion from another CLI or model, watch another session, start and manage workers, or retrieve saved local Codex history by file/native ID or root and descendants with topic/date filters. Live API operations require a Codeman-managed session (CODEMAN_MUX=1). Offline history reads do not require a server or managed session.
What it loads into context
Frontmatter
214 tokensAlways available to the agent
SKILL.md
15,723 tokensWhen the skill is activated
Reference documents
51,364 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 0. Guard and bootstrap
- 1. The fast path: N workers, one Bash call
- 2. What do you want to do?
- 3. Rules digest
- 4. Safety rules
- 5. Recipes → [reference/verbs.md](reference/verbs.md)
- 6. Setup and auth
Scripts executed separately
preamble.sh
Files
SKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytesSKILL.mdcore57,444 bytespreamble.shruns22,287 bytesreference/endpoints.mddoc60,075 bytesreference/history.mddoc5,099 bytesreference/inspection-and-staging.mddoc9,284 bytesreference/messaging.mddoc32,017 bytesreference/recipes.mddoc39,717 bytesreference/verbs.mddoc49,808 bytes
Read SKILL.md
# Driving Codeman from inside a session
For **saved Codex conversation history**, use `codeman history read` and
[reference/history.md](reference/history.md). This is a read-only local command:
route to it **before §0**, including outside a managed session. It needs no API
URL, credentials or running server. All live API operations below retain §0.
You are an agent running inside a Codeman-managed terminal session. Codeman is the
server that spawned you; its HTTP API can start, prompt, watch, and delete other
sessions.
**Read as far as your job needs and no further.** §0 is the bootstrap, run once. §1 is
the whole fast path: spawn N workers, task them, collect answers. **If §1 covers your
job, run it and stop there.** The sections after it are for jobs it does not cover, andView the complete source on GitHubSkills included
- codeman
- codeman
Repository facts
- License
- MIT
- Created
- Jan 21, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 130
- Open issues
- 11
- Project activity
- Active
Rank over the last 12 weeks
Now #1,000 · best #694 · down 189 in 30 days
- #839 on Oct 22
- #848 on Oct 23
- #805 on Oct 24
- #988 on Oct 25
- #996 on Oct 28
- #1,000 since Oct 29
65 earlier periods
- #788 on Aug 2
- #737 on Aug 7
- #729 on Aug 8
- #732 on Aug 9
- #760 on Aug 10
- #759 on Aug 11
- #756 on Aug 12
- #757 on Aug 13
- #737 on Aug 14
- #710 on Aug 15
- #730 on Aug 16
- #737 on Aug 17
- #746 on Aug 18
- #730 on Aug 19
- #724 on Aug 20
- #728 on Aug 21
- #694 on Aug 22
- #731 on Aug 23
- #759 on Aug 25
- #746 on Aug 26
- #756 on Aug 27
- #779 on Aug 28
- #711 on Aug 29
- #719 on Aug 30
- #752 on Aug 31
- #771 on Sep 1
- #750 on Sep 2
- #760 on Sep 3
- #738 on Sep 4
- #719 on Sep 5
- #749 on Sep 6
- #785 on Sep 8
- #769 on Sep 9
- #779 on Sep 10
- #751 on Sep 11
- #747 on Sep 12
- #751 on Sep 13
- #776 on Sep 14
- #766 on Sep 15
- #776 on Sep 16
- #761 on Sep 18
- #739 on Sep 19
- #750 on Sep 20
- #778 on Sep 21
- #798 on Sep 22
- #788 on Sep 23
- #756 on Sep 24
- #732 on Sep 26
- #763 on Sep 27
- #786 on Sep 28
- #811 on Sep 29
- #759 on Oct 2
- #787 on Oct 5
- #854 on Oct 8
- #814 on Oct 9
- #795 on Oct 10
- #797 on Oct 11
- #825 on Oct 13
- #837 on Oct 14
- #822 on Oct 15
- #834 on Oct 16
- #809 on Oct 17
- #796 on Oct 18
- #839 on Oct 19
- #862 on Oct 21
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 24 notes
plugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codeman/skills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codeman/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 16 dangerous shell commandsin 6 files: codeman/SKILL.md:120 codeman/SKILL.md:120 codeman/preamble.sh:213 and 3 more
- 126 network referencesin 12 files: codeman/SKILL.md:146 codeman/SKILL.md:146 codeman/preamble.sh:27 and 9 more
- No hidden or obfuscated text
- 22 instruction override signalsin 8 files: codeman/reference/endpoints.md:844 codeman/reference/messaging.md:393 codeman/reference/verbs.md:208 and 5 more
- 2 executable scriptsin 2 files: codeman/preamble.sh:1 codeman/preamble.sh:1
- 6 references to secretsin 6 files: codeman/SKILL.md:130 codeman/preamble.sh:9 codeman/reference/endpoints.md:27 and 3 more
- No requests to vote in Hot
Show all 172 signals by file
.claude-plugin/marketplace.json
- Network accessline 3
"owner": { "name": "Ark0N", "url": "https://github.com/Ark0N" - Network accessline 4
"name": "Ark0N", "url": "https://github.com/Ark0N" }, - Network accessline 5
"url": "https://github.com/Ark0N" - Network accessline 14
"author": { "name": "Ark0N", "url": "https://github.com/Ark0N" - Network accessline 15
"name": "Ark0N", "url": "https://github.com/Ark0N" }, - Network accessline 16
"url": "https://github.com/Ark0N" - Network accessline 17
}, "homepage": "https://getcodeman.com", "category": "productivity", - Network accessline 18
"homepage": "https://getcodeman.com",
plugins/codeman/.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Ark0N", "url": "https://github.com/Ark0N" - Network accessline 6
"name": "Ark0N", "url": "https://github.com/Ark0N" }, - Network accessline 7
"url": "https://github.com/Ark0N" - Network accessline 8
}, "homepage": "https://getcodeman.com", "repository": "https://github.com/Ark0N/Codeman", - Network accessline 9
"homepage": "https://getcodeman.com", - Network accessline 10
"repository": "https://github.com/Ark0N/Codeman",
plugins/codeman/skills/codeman/SKILL.md
- Instruction override signalline 71
- **Every call fails at once with "couldn't connect" or "connection refused".** Your CLI's sandbox blocks network access, even to this machine. Codex's default sandbox does; it needs **Bypass approvals and sandbox** (Codeman App Setting - Instruction override signalline 73
does; it needs **Bypass approvals and sandbox** (Codeman App Settings, Codex). - Dangerous shell operationline 120
# half-written file self-heals here instead of costing you a round trip to rm it. - Access to secretsline 130
[Credential-related source omitted] - Network accessline 146
# user can find and delete it long after your workers are gone (§5.14). Same deal: set # once, cosmetic, never fails a spawn, and it labels only directories Codeman creates. CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" - - Network accessline 147
# once, cosmetic, never fails a spawn, and it labels only directories Codeman creates. CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") CID=codeman-agent-1 # FIXED liter - Network accessline 148
CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") - Network accessline 151
# Fail-CLOSED session delete. The DELETE lives INSIDE the guard on purpose: the older # `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 152
# `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 227
# seq is the epoch second -- look like a stale duplicate and vanish silently. "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' | - Network accessline 228
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" - Network accessline 229
-d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 250
spawn_worker() { local name="${1:?spawn_worker needs a case name}" mode="${2:-claude}" q sid cp r # parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 251
local name="${1:?spawn_worker needs a case name}" mode="${2:-claude}" q sid cp r # parentSessionId doubles the CURL header, so a spawn_worker copied off the shared # curl (or a body someone rebuilt from this recipe) still carries its li - Network accessline 252
# parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 253
# curl (or a body someone rebuilt from this recipe) still carries its lineage. - Network accessline 259
# Spawn by hand (§5.1) when you want a worker that asks. q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER - Network accessline 260
q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" - Network accessline 261
-d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Dangerous shell operationline 334
rm -rf "$d" - Network accessline 379
# cannot deliver `stop` answer 400 (before writing anything) instead of # resolving on a flap, which is the answer that sends you to markers (§5.5). body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 380
# resolving on a flap, which is the answer that sends you to markers (§5.5). body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ '{input:($p+"\r"),useMux:true,clientId:$c,seq:$s,wait:"stop,exit",waitTimeout:20000}') - Network accessline 381
body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 406
n=$((n+1)) "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Network accessline 407
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" - Network accessline 408
-d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Dangerous shell operationline 417
rm -f "$tmp" - Dangerous shell operationline 446
. "$PRE"; [ "${CODEMAN_PREAMBLE:-}" = 1.44.0 ] || { echo "preamble at $PRE is stale or truncated: rm it and re-run this block"; exit 1; } - Dangerous shell operationline 521
done; rm -rf "$D" - Network accessline 662
The server has no self-protection: a session that DELETEs its own id succeeds and dies silently (verified live). **Always delete through `delete_session "$SID"` from §0; never write a bare `curl -X DELETE` and never reintroduce the - Network accessline 663
dies silently (verified live). **Always delete through `delete_session "$SID"` from §0; never write a bare `curl -X DELETE` and never reintroduce the `is_self … || curl -X DELETE …` shape.** That older form failed open: with the - Network accessline 664
§0; never write a bare `curl -X DELETE` and never reintroduce the - Network accessline 665
`is_self … || curl -X DELETE …` shape.** That older form failed open: with the
plugins/codeman/skills/codeman/preamble.sh
- Executable scriptline 1
Executable file - Access to secretsline 9
[Credential-related source omitted] - Network accessline 27
CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") - Network accessline 30
# Fail-CLOSED session delete. The DELETE lives INSIDE the guard on purpose: the older # `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 31
# `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 107
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 108
-d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 131
# parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 132
# curl (or a body someone rebuilt from this recipe) still carries its lineage. - Network accessline 139
q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Network accessline 140
-d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Dangerous shell operationline 213
rm -rf "$d" - Network accessline 260
body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 285
n=$((n+1)) "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Network accessline 286
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" - Network accessline 287
-d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Dangerous shell operationline 296
rm -f "$tmp"
plugins/codeman/skills/codeman/reference/endpoints.md
- Network accessline 26
**Use Basic, not the cookie.** Send `-u user:password` on every call. A successful Basic auth also mints a 24 h `codeman_session` cookie, but that is the browser's path: curl throws it away unless you keep a jar, and re-sending Basic costs - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 28
curl throws it away unless you keep a jar, and re-sending Basic costs nothing. There is - Network accessline 101
[Credential-related source omitted] - Network accessline 103
CURL=(curl -sk "${AUTH[@]}") # -k: harmless on http, required on https (self-signed cert) - Network accessline 569
- ⚠<U+FE0F> **It consumes an SSE slot.** `MAX_SSE_CLIENTS` is 100 process-wide, shared with every open browser tab; over the cap the server answers a plain-text `503 Too many SSE connections`. A curl you forget to bound holds its slot until it - Network accessline 570
every open browser tab; over the cap the server answers a plain-text `503 Too many SSE connections`. A curl you forget to bound holds its slot until it exits. - Network accessline 571
`503 Too many SSE connections`. A curl you forget to bound holds its slot until it - Network accessline 835
| Symptom | Cause / fix | |---------|-------------| | every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | - Network accessline 836
|---------|-------------| | every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | | `GET .../sessions/$CODEMAN_SESSION_ID` 404s | Docker case: the env id is truncated to 8 chars; - Network accessline 837
| every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | - Instruction override signalline 844
| new claude worker ignores its first prompt | it was showing the first-run trust dialog and Codeman's auto-accept did not fire (it is bounded by a 90 s window and a keystroke cap); use the readiness recipe in SKILL.md, wait for `shift+tab` - Instruction override signalline 845
| a brand-new claude worker's pane is DEAD (`status 1`) seconds after the spawn | something pressed Enter at the first-run trust dialog. Since claude-cli 2.1.252 its options are unnumbered, reversed, and the highlighted default is `No, exit - Instruction override signalline 846
| readiness burns its whole budget, then the worker answers fine anyway | you matched `bypass`, which is the statusline of ONE permission mode. Codeman spawns `--dangerously-skip-permissions` by default, but the server's `claudeMode` settin
plugins/codeman/skills/codeman/reference/messaging.md
- Instruction override signalline 393
side as bypassing-permissions or prompting, and a CLASS MISMATCH holds the message behind an approval dialog in the receiving session (default expiry ~5 min, then dropped). Codeman's default spawn is `--dangerously-skip-permissions`, - Instruction override signalline 394
behind an approval dialog in the receiving session (default expiry ~5 min, then dropped). Codeman's default spawn is `--dangerously-skip-permissions`, bypass on both ends, which DELIVERS (verified live; `from-mode="bypass"` rides on e - Instruction override signalline 395
dropped). Codeman's default spawn is `--dangerously-skip-permissions`, bypass on
plugins/codeman/skills/codeman/reference/recipes.md
- Dangerous shell operationline 350
jq -c '.data.wait | {signal, waitedMs}' "$D/1" "$D/2"; rm -rf "$D" - Network accessline 688
- Always go through `delete_session`. It refuses an empty id, refuses when `$SELF` is unset or too short to prove the target is not you, and prefix-checks in both directions. A hand-written `curl -X DELETE`, or the old - Network accessline 689
unset or too short to prove the target is not you, and prefix-checks in both directions. A hand-written `curl -X DELETE`, or the old `is_self "$id" || curl -X DELETE …`, has none of that: an undefined `is_self` exits - Network accessline 690
directions. A hand-written `curl -X DELETE`, or the old - Network accessline 691
`is_self "$id" || curl -X DELETE …`, has none of that: an undefined `is_self` exits
plugins/codeman/skills/codeman/reference/verbs.md
- Network accessline 129
hint, which the web UI draws as a line from your tab to each worker's tab. The §0 preamble already sets the header on `"${CURL[@]}"`, so you get this for free. For a request that builds its own body, or one you send without the shared curl - Network accessline 130
preamble already sets the header on `"${CURL[@]}"`, so you get this for free. For a request that builds its own body, or one you send without the shared curl array, pass it explicitly instead: - Network accessline 131
request that builds its own body, or one you send without the shared curl array, pass it - Instruction override signalline 208
| how Codeman spawned it | statusline reads | `shift+tab` | `bypass` | |------------------------|------------------|-------------|----------| | `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes | - Instruction override signalline 209
|------------------------|------------------|-------------|----------| | `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes | | `--permission-mode auto` | `auto mode on` | yes | no | - Instruction override signalline 210
| `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes |
skills/codeman/SKILL.md
- Instruction override signalline 71
- **Every call fails at once with "couldn't connect" or "connection refused".** Your CLI's sandbox blocks network access, even to this machine. Codex's default sandbox does; it needs **Bypass approvals and sandbox** (Codeman App Setting - Instruction override signalline 73
does; it needs **Bypass approvals and sandbox** (Codeman App Settings, Codex). - Dangerous shell operationline 120
# half-written file self-heals here instead of costing you a round trip to rm it. - Access to secretsline 130
[Credential-related source omitted] - Network accessline 146
# user can find and delete it long after your workers are gone (§5.14). Same deal: set # once, cosmetic, never fails a spawn, and it labels only directories Codeman creates. CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" - - Network accessline 147
# once, cosmetic, never fails a spawn, and it labels only directories Codeman creates. CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") CID=codeman-agent-1 # FIXED liter - Network accessline 148
CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") - Network accessline 151
# Fail-CLOSED session delete. The DELETE lives INSIDE the guard on purpose: the older # `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 152
# `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 227
# seq is the epoch second -- look like a stale duplicate and vanish silently. "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' | - Network accessline 228
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" - Network accessline 229
-d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 250
spawn_worker() { local name="${1:?spawn_worker needs a case name}" mode="${2:-claude}" q sid cp r # parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 251
local name="${1:?spawn_worker needs a case name}" mode="${2:-claude}" q sid cp r # parentSessionId doubles the CURL header, so a spawn_worker copied off the shared # curl (or a body someone rebuilt from this recipe) still carries its li - Network accessline 252
# parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 253
# curl (or a body someone rebuilt from this recipe) still carries its lineage. - Network accessline 259
# Spawn by hand (§5.1) when you want a worker that asks. q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER - Network accessline 260
q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" - Network accessline 261
-d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Dangerous shell operationline 334
rm -rf "$d" - Network accessline 379
# cannot deliver `stop` answer 400 (before writing anything) instead of # resolving on a flap, which is the answer that sends you to markers (§5.5). body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 380
# resolving on a flap, which is the answer that sends you to markers (§5.5). body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ '{input:($p+"\r"),useMux:true,clientId:$c,seq:$s,wait:"stop,exit",waitTimeout:20000}') - Network accessline 381
body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 406
n=$((n+1)) "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Network accessline 407
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" - Network accessline 408
-d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Dangerous shell operationline 417
rm -f "$tmp" - Dangerous shell operationline 446
. "$PRE"; [ "${CODEMAN_PREAMBLE:-}" = 1.44.0 ] || { echo "preamble at $PRE is stale or truncated: rm it and re-run this block"; exit 1; } - Dangerous shell operationline 521
done; rm -rf "$D" - Network accessline 662
The server has no self-protection: a session that DELETEs its own id succeeds and dies silently (verified live). **Always delete through `delete_session "$SID"` from §0; never write a bare `curl -X DELETE` and never reintroduce the - Network accessline 663
dies silently (verified live). **Always delete through `delete_session "$SID"` from §0; never write a bare `curl -X DELETE` and never reintroduce the `is_self … || curl -X DELETE …` shape.** That older form failed open: with the - Network accessline 664
§0; never write a bare `curl -X DELETE` and never reintroduce the - Network accessline 665
`is_self … || curl -X DELETE …` shape.** That older form failed open: with the
skills/codeman/preamble.sh
- Executable scriptline 1
Executable file - Access to secretsline 9
[Credential-related source omitted] - Network accessline 27
CURL=(curl -sk "${AUTH[@]}" -H "X-Codeman-Parent-Session: $SELF" -H "X-Codeman-Agent-Origin: codeman-skill") - Network accessline 30
# Fail-CLOSED session delete. The DELETE lives INSIDE the guard on purpose: the older # `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 31
# `is_self "$SID" || curl -X DELETE ...` shape failed OPEN, because an undefined - Network accessline 107
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 108
-d "$(jq -nc --arg k "$([ "$k" = confirm ] && printf '\r' || printf '\033[B')" \ - Network accessline 131
# parentSessionId doubles the CURL header, so a spawn_worker copied off the shared - Network accessline 132
# curl (or a body someone rebuilt from this recipe) still carries its lineage. - Network accessline 139
q=$("${CURL[@]}" -X POST "$API/api/v1/quick-start" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Network accessline 140
-d "$(jq -nc --arg n "$name" --arg m "$mode" --arg p "$SELF" --arg a "${CODEMAN_WORKER_ADVISOR:-}" \ - Dangerous shell operationline 213
rm -rf "$d" - Network accessline 260
body=$(jq -nc --arg p "$p" --arg c "$CID-$sid" --argjson s "$seq" \ - Network accessline 285
n=$((n+1)) "${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' \ -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Network accessline 286
"${CURL[@]}" -X POST "$API/api/v1/sessions/$sid/input" -H 'Content-Type: application/json' -d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" - Network accessline 287
-d "$(jq -nc --arg c "$CID-$sid" --argjson s "$(date +%s)" \ - Dangerous shell operationline 296
rm -f "$tmp"
skills/codeman/reference/endpoints.md
- Network accessline 26
**Use Basic, not the cookie.** Send `-u user:password` on every call. A successful Basic auth also mints a 24 h `codeman_session` cookie, but that is the browser's path: curl throws it away unless you keep a jar, and re-sending Basic costs - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 28
curl throws it away unless you keep a jar, and re-sending Basic costs nothing. There is - Network accessline 101
[Credential-related source omitted] - Network accessline 103
CURL=(curl -sk "${AUTH[@]}") # -k: harmless on http, required on https (self-signed cert) - Network accessline 569
- ⚠<U+FE0F> **It consumes an SSE slot.** `MAX_SSE_CLIENTS` is 100 process-wide, shared with every open browser tab; over the cap the server answers a plain-text `503 Too many SSE connections`. A curl you forget to bound holds its slot until it - Network accessline 570
every open browser tab; over the cap the server answers a plain-text `503 Too many SSE connections`. A curl you forget to bound holds its slot until it exits. - Network accessline 571
`503 Too many SSE connections`. A curl you forget to bound holds its slot until it - Network accessline 835
| Symptom | Cause / fix | |---------|-------------| | every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | - Network accessline 836
|---------|-------------| | every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | | `GET .../sessions/$CODEMAN_SESSION_ID` 404s | Docker case: the env id is truncated to 8 chars; - Network accessline 837
| every curl fails with a certificate error | you dropped `-k`; `CODEMAN_API_URL` is HTTPS with a self-signed cert | - Instruction override signalline 844
| new claude worker ignores its first prompt | it was showing the first-run trust dialog and Codeman's auto-accept did not fire (it is bounded by a 90 s window and a keystroke cap); use the readiness recipe in SKILL.md, wait for `shift+tab` - Instruction override signalline 845
| a brand-new claude worker's pane is DEAD (`status 1`) seconds after the spawn | something pressed Enter at the first-run trust dialog. Since claude-cli 2.1.252 its options are unnumbered, reversed, and the highlighted default is `No, exit - Instruction override signalline 846
| readiness burns its whole budget, then the worker answers fine anyway | you matched `bypass`, which is the statusline of ONE permission mode. Codeman spawns `--dangerously-skip-permissions` by default, but the server's `claudeMode` settin
skills/codeman/reference/messaging.md
- Instruction override signalline 393
side as bypassing-permissions or prompting, and a CLASS MISMATCH holds the message behind an approval dialog in the receiving session (default expiry ~5 min, then dropped). Codeman's default spawn is `--dangerously-skip-permissions`, - Instruction override signalline 394
behind an approval dialog in the receiving session (default expiry ~5 min, then dropped). Codeman's default spawn is `--dangerously-skip-permissions`, bypass on both ends, which DELIVERS (verified live; `from-mode="bypass"` rides on e - Instruction override signalline 395
dropped). Codeman's default spawn is `--dangerously-skip-permissions`, bypass on
skills/codeman/reference/recipes.md
- Dangerous shell operationline 350
jq -c '.data.wait | {signal, waitedMs}' "$D/1" "$D/2"; rm -rf "$D" - Network accessline 688
- Always go through `delete_session`. It refuses an empty id, refuses when `$SELF` is unset or too short to prove the target is not you, and prefix-checks in both directions. A hand-written `curl -X DELETE`, or the old - Network accessline 689
unset or too short to prove the target is not you, and prefix-checks in both directions. A hand-written `curl -X DELETE`, or the old `is_self "$id" || curl -X DELETE …`, has none of that: an undefined `is_self` exits - Network accessline 690
directions. A hand-written `curl -X DELETE`, or the old - Network accessline 691
`is_self "$id" || curl -X DELETE …`, has none of that: an undefined `is_self` exits
skills/codeman/reference/verbs.md
- Network accessline 129
hint, which the web UI draws as a line from your tab to each worker's tab. The §0 preamble already sets the header on `"${CURL[@]}"`, so you get this for free. For a request that builds its own body, or one you send without the shared curl - Network accessline 130
preamble already sets the header on `"${CURL[@]}"`, so you get this for free. For a request that builds its own body, or one you send without the shared curl array, pass it explicitly instead: - Network accessline 131
request that builds its own body, or one you send without the shared curl array, pass it - Instruction override signalline 208
| how Codeman spawned it | statusline reads | `shift+tab` | `bypass` | |------------------------|------------------|-------------|----------| | `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes | - Instruction override signalline 209
|------------------------|------------------|-------------|----------| | `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes | | `--permission-mode auto` | `auto mode on` | yes | no | - Instruction override signalline 210
| `--dangerously-skip-permissions` (default) | `bypass permissions on` | yes | yes |
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 158 facts
- Instruction override signal in prose of the SKILL.mdcodeman/SKILL.md:71High confidence
- Instruction override signal in prose of the SKILL.mdcodeman/SKILL.md:73High confidence
- Dangerous shell operation in code of the SKILL.mdcodeman/SKILL.md:120High confidence
- Access to secrets in code of the SKILL.mdcodeman/SKILL.md:130High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:146High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:147High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:148High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:151High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:152High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:227High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:228High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:229High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:250High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:251High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:252High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:253High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:259High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:260High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:261High confidence
- Dangerous shell operation in code of the SKILL.mdcodeman/SKILL.md:334High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:379High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:380High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:381High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:406High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:407High confidence
- Network access in code of the SKILL.mdcodeman/SKILL.md:408High confidence
- Dangerous shell operation in code of the SKILL.mdcodeman/SKILL.md:417High confidence
- Dangerous shell operation in code of the SKILL.mdcodeman/SKILL.md:446High confidence
- Dangerous shell operation in code of the SKILL.mdcodeman/SKILL.md:521High confidence
- Network access in prose of the SKILL.mdcodeman/SKILL.md:662Low confidence
- Network access in prose of the SKILL.mdcodeman/SKILL.md:663Low confidence
- Network access in prose of the SKILL.mdcodeman/SKILL.md:664Low confidence
- Network access in prose of the SKILL.mdcodeman/SKILL.md:665Low confidence
- Executable script in a comment of a file that runscodeman/preamble.sh:1Low confidence
- Access to secrets in a comment of a file that runscodeman/preamble.sh:9Low confidence
- Network access in code of a file that runscodeman/preamble.sh:27High confidence
- Network access in a comment of a file that runscodeman/preamble.sh:30Low confidence
- Network access in a comment of a file that runscodeman/preamble.sh:31Low confidence
- Network access in code of a file that runscodeman/preamble.sh:107High confidence
- Network access in code of a file that runscodeman/preamble.sh:108High confidence
- Network access in a comment of a file that runscodeman/preamble.sh:131Low confidence
- Network access in a comment of a file that runscodeman/preamble.sh:132Low confidence
- Network access in code of a file that runscodeman/preamble.sh:139High confidence
- Network access in code of a file that runscodeman/preamble.sh:140High confidence
- Dangerous shell operation in code of a file that runscodeman/preamble.sh:213High confidence
- Network access in code of a file that runscodeman/preamble.sh:260High confidence
- Network access in code of a file that runscodeman/preamble.sh:285High confidence
- Network access in code of a file that runscodeman/preamble.sh:286High confidence
- Network access in code of a file that runscodeman/preamble.sh:287High confidence
- Dangerous shell operation in code of a file that runscodeman/preamble.sh:296High confidence
and 108 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/codeman/skills/codeman/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/codeman/skills/codeman/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/codeman/skills/codeman/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/codeman/skills/codeman/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.