Requested on Reddit: https://www.reddit.com/r/ClaudeCode/comments/1vasnh5/comment/p0rx918/
Codeman currently supports five session modes (claude, shell, opencode, codex, gemini). GitHub Copilot CLI would be a sixth external CLI backend, following the same resolver pattern the last three used (design notes in docs/opencode-integration.md).
Rough scope, based on how Codex and Gemini were added:
- CLI resolver (
src/utils/copilot-cli-resolver.ts): locate the Copilot CLI binary across install methods, mirroring the existing codex-cli-resolver / gemini-cli-resolver.
- SessionMode: add
'copilot' to SessionMode, gate Claude-specific behavior off via isExternalCliMode() (Ralph tracker, token/CLI-info parsing, prompt-based readiness) so readiness falls back to output stabilization like the other external TUIs.
- Env prefix allowlist: decide the prefix set for
ALLOWED_ENV_PREFIXES in schemas.ts. Copilot auth leans on GitHub tokens, and a broad GITHUB_*/GH_* allowlist has wider blast radius than CODEX_*-style prefixes, so this needs the same deliberate-scoping discussion GOOGLE_* got for Gemini.
- tmux-only spawn: like the other external CLIs, no direct PTY fallback, so secrets flow via socket-scoped
tmux setenv and never appear on the spawn command line.
- Frontend: run-mode entry in
session-ui.js (remember the {success,data} envelope unwrap) plus the mode badge/icon.
If you'd use this, a 👍 or a note about your setup (how you install/run Copilot CLI, subscription vs API) helps prioritize.
Requested on Reddit: https://www.reddit.com/r/ClaudeCode/comments/1vasnh5/comment/p0rx918/
Codeman currently supports five session modes (
claude,shell,opencode,codex,gemini). GitHub Copilot CLI would be a sixth external CLI backend, following the same resolver pattern the last three used (design notes indocs/opencode-integration.md).Rough scope, based on how Codex and Gemini were added:
src/utils/copilot-cli-resolver.ts): locate the Copilot CLI binary across install methods, mirroring the existingcodex-cli-resolver/gemini-cli-resolver.'copilot'toSessionMode, gate Claude-specific behavior off viaisExternalCliMode()(Ralph tracker, token/CLI-info parsing, prompt-based readiness) so readiness falls back to output stabilization like the other external TUIs.ALLOWED_ENV_PREFIXESinschemas.ts. Copilot auth leans on GitHub tokens, and a broadGITHUB_*/GH_*allowlist has wider blast radius thanCODEX_*-style prefixes, so this needs the same deliberate-scoping discussionGOOGLE_*got for Gemini.tmux setenvand never appear on the spawn command line.session-ui.js(remember the{success,data}envelope unwrap) plus the mode badge/icon.If you'd use this, a 👍 or a note about your setup (how you install/run Copilot CLI, subscription vs API) helps prioritize.