Skip to content

Support GitHub Copilot CLI as a session backend #198

Description

@Ark0N

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions