Repository navigation
Conversation
…man skill Measured on 1.47.0 with the same "spawn a shell worker, echo, read, delete" task: DeepSeek Harness and OpenCode already pass end to end; Codex 0.162 failed three ways, fixed here. - Start Codex 0.162+ with --no-daemon (new noDaemonFlag gate, fail-closed). The shared app-server daemon stopped every launch on an "incompatible feature settings" dialog when another version's daemon was running, and ran commands with another session's CODEMAN_* environment. - Evaluate registry version gates against the gated CLI's own version (resolveSessionCliVersion) instead of claude's for every entry. - Add the opt-in synced setting App Settings > Codex > Allow network access (codexNetworkAccess, default off): --config sandbox_workspace_write.network_access=true, filled as a launch default and clamped off for non-granted owners like the bypass switch. - Skill: carry on with the curl path when `codeman` is not on PATH, re-run a sandbox-blocked call once through the CLI's approval path, name the new setting. Wiki and registry docs updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is about
Codeman injects its
codemanagent skill into every agent CLI's workspace (agentSkillEnabled), so an agent can start worker sessions, prompt them, wait for them, read their output and delete them over Codeman's HTTP API. This PR makes that work from Codex, and records that OpenCode and DeepSeek Harness already work.What I measured first (2026-11-01, prod 1.47.0)
For each CLI I started a throwaway session in a scratch case and gave it the same task: "use the codeman skill: spawn one shell worker, send it
echo SKILLTEST-OK, read its output, delete the worker".SKILLTEST-OK, deleted, 35 sOPENCODE_CONFIG_CONTENT)Codex failures:
codex app-server --managed-daemon. On this machine a 0.166 daemon was running, so every new Codex pane stopped on an "Background server has incompatible feature settings" dialog before the composer appeared. Commands also run with the environment of whichever client started the daemon, so$CODEMAN_SESSION_ID/$CODEMAN_API_URLinside Codex belong to another session (the skill's self-check 404s and its self-delete guard protects the wrong id).curlto127.0.0.1:3000failed with exit 7 /connect EPERM. The skill told the agent to stop and ask for Bypass approvals and sandbox, which removes the sandbox entirely.codeman: command not found. The skill advertisescodeman agent spawnas the one-command path, and on an install without thecodemanlink on PATH Codex gave up instead of using the skill'scurlpath.Changes
--no-daemonfor Codex 0.162+ (registry data in the codex entry ofstock.ts, behind a newnoDaemonFlagversion gate, fail-closed). Each Codex pane runs its own app server, which is what one pane per session means anyway. Older or unknown Codex versions get nothing, since an unknown flag makes Codex exit. Unconditional for Codex because the dialog breaks launches whether or not the skill is on.session-cli-registry-bridge.tsresolved every gate withgetClaudeCliVersion(), because claude was the only CLI with a gate. A codex gate would have passed on any claude 2.x. It now uses the existingresolveSessionCliVersion(entry.id), which still routes claude to its own probe policy, so claude launches are unchanged. New test:test/cli-registry-gate-version.test.ts(both resolvers mocked to different versions).codexNetworkAccess, synced, default OFF). Starts Codex with--config sandbox_workspace_write.network_access=true. It is alaunchDefaultsentry, so it reaches every local Codex launch (browser, skill quick-start,codeman agent spawn, MCPstart_session), and aprivilegedParamsentry, so a non-granted owner in multi-user mode gets it forced off (the clamp runs after the defaults are filled; tested). Off keeps every launch byte-identical.skills/codeman/SKILL.md, plugin mirror synced):codeman: command not foundnow says to carry on with thecurlpath; a blocked call says to re-run the same command once through the CLI's own approval path, then names the new setting, with bypass as the fallback; the daemon note says Codeman now prevents it.Codeman-Skill.md(When the agent is Codex, plus a line that OpenCode and DeepSeek Harness need nothing extra),Settings-Reference.md, and thegatesfield indocs/cli-registry.md.Verified after the change
On an isolated beta instance (
CODEMAN_INSTANCE, own data dir and tmux socket, port 5293) built from this branch:POST /api/quick-startcodex session launched ascodex --no-daemon --config sandbox_workspace_write.network_access=true, sessioncliVersionprobed from codex itself (0.162.0), no daemon dialog.codex --no-daemon, nothing filled intocodexConfig, no daemon dialog./status: "workspace with network access, Ask for approval"), withcodemanremoved from PATH as on a source-checkout install: Codex fell back to thecurlpreamble and created, prompted and deleted a shell worker with zero approval prompts.PUT /api/settings.npm run typecheck,npm run lint,npm run format:check,npm run check:frontend-syntax, and the fullnpm testgate.Question for the owner
The network flag only applies where Codex runs the folder in its workspace-write sandbox, which Codex does for a project you trusted (its own "Auto" preset is workspace-write plus on-request approvals). In a folder Codex runs read-only, such as a new quick-start case that is not a git repository, Codex keeps the network closed and asks per command. Should "Allow network access" also pass
--sandbox workspace-writeso those scratch cases work without approvals? I recommend no: that also grants write access to a folder Codex itself chose not to trust, under a label that only says "network". The alternative is a separate, explicitly named setting.Not in this PR
codemanis not on PATH (a server run from a source checkout withoutinstall.sh's~/.local/bin/codemanlink),codeman agentstays unavailable to pi and shell workers; the skill'scurlpath covers the other CLIs.