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.

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
829GitHub stars
4stars in 7 days
2skills in this repository
940commits in 30 days

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

Aug 2, 2026Nov 5, 2026829

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 tokens

Always available to the agent

SKILL.md

15,723 tokens

When the skill is activated

Reference documents

51,364 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 0. Guard and bootstrap
  2. 1. The fast path: N workers, one Bash call
  3. 2. What do you want to do?
  4. 3. Rules digest
  5. 4. Safety rules
  6. 5. Recipes → [reference/verbs.md](reference/verbs.md)
  7. 6. Setup and auth

Scripts executed separately

  • preamble.sh

Files

  • ../../../../.claude-plugin/marketplace.jsonasset994 bytes
  • ../../.claude-plugin/plugin.jsonasset700 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • SKILL.mdcore57,444 bytes
  • preamble.shruns22,287 bytes
  • reference/endpoints.mddoc60,075 bytes
  • reference/history.mddoc5,099 bytes
  • reference/inspection-and-staging.mddoc9,284 bytes
  • reference/messaging.mddoc32,017 bytes
  • reference/recipes.mddoc39,717 bytes
  • reference/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, and
View the complete source on GitHub

Skills 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

  1. #839 on Oct 22
  2. #848 on Oct 23
  3. #805 on Oct 24
  4. #988 on Oct 25
  5. #996 on Oct 28
  6. #1,000 since Oct 29
65 earlier periods
  1. #788 on Aug 2
  2. #737 on Aug 7
  3. #729 on Aug 8
  4. #732 on Aug 9
  5. #760 on Aug 10
  6. #759 on Aug 11
  7. #756 on Aug 12
  8. #757 on Aug 13
  9. #737 on Aug 14
  10. #710 on Aug 15
  11. #730 on Aug 16
  12. #737 on Aug 17
  13. #746 on Aug 18
  14. #730 on Aug 19
  15. #724 on Aug 20
  16. #728 on Aug 21
  17. #694 on Aug 22
  18. #731 on Aug 23
  19. #759 on Aug 25
  20. #746 on Aug 26
  21. #756 on Aug 27
  22. #779 on Aug 28
  23. #711 on Aug 29
  24. #719 on Aug 30
  25. #752 on Aug 31
  26. #771 on Sep 1
  27. #750 on Sep 2
  28. #760 on Sep 3
  29. #738 on Sep 4
  30. #719 on Sep 5
  31. #749 on Sep 6
  32. #785 on Sep 8
  33. #769 on Sep 9
  34. #779 on Sep 10
  35. #751 on Sep 11
  36. #747 on Sep 12
  37. #751 on Sep 13
  38. #776 on Sep 14
  39. #766 on Sep 15
  40. #776 on Sep 16
  41. #761 on Sep 18
  42. #739 on Sep 19
  43. #750 on Sep 20
  44. #778 on Sep 21
  45. #798 on Sep 22
  46. #788 on Sep 23
  47. #756 on Sep 24
  48. #732 on Sep 26
  49. #763 on Sep 27
  50. #786 on Sep 28
  51. #811 on Sep 29
  52. #759 on Oct 2
  53. #787 on Oct 5
  54. #854 on Oct 8
  55. #814 on Oct 9
  56. #795 on Oct 10
  57. #797 on Oct 11
  58. #825 on Oct 13
  59. #837 on Oct 14
  60. #822 on Oct 15
  61. #834 on Oct 16
  62. #809 on Oct 17
  63. #796 on Oct 18
  64. #839 on Oct 19
  65. #862 on Oct 21

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codeman/skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/codeman/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

and 108 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/codeman/skills/codeman/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/codeman/skills/codeman/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/codeman/skills/codeman/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.