feat: add GitHub Copilot CLI as supported ACP backend#264
feat: add GitHub Copilot CLI as supported ACP backend#264Reese-max wants to merge 2 commits intoopenabdev:mainfrom
Conversation
Add first-class support for GitHub Copilot CLI via its native `--acp` mode, following the same pattern as the existing Gemini integration. - Add `Dockerfile.copilot` with Copilot CLI installed via npm - Add Copilot to the backend table in README - Add Helm install example and manual config.toml example - Auth: `gh auth login` or `copilot auth` Copilot CLI ships built-in ACP support (`copilot --acp`) — no third-party adapter needed. Config: [agent] command = "copilot" args = ["--acp"]
There was a problem hiding this comment.
Pull request overview
Adds first-class support for running GitHub Copilot CLI as an ACP backend (via native copilot --acp), alongside the existing CLI backends.
Changes:
- Add a new runtime Docker image (
Dockerfile.copilot) that bundles Copilot CLI +ghfor authentication. - Update
README.mdto list Copilot as a supported backend and document Helm/manual configuration examples.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| README.md | Documents Copilot as a supported ACP backend and adds Helm/manual config examples. |
| Dockerfile.copilot | Introduces a dedicated container image that installs Copilot CLI and gh and runs openab. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| # GitHub Copilot (native ACP — requires copilot CLI in PATH) | ||
| [agent] | ||
| command = "copilot" | ||
| args = ["--acp"] | ||
| working_dir = "/home/node" | ||
| env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } |
There was a problem hiding this comment.
In the manual config.toml examples, the Gemini block now ends right after args = ["--acp"], so working_dir / env are no longer shown for Gemini even though the following working_dir line appears intended for the Gemini example. This makes the sample config misleading; please keep Gemini’s working_dir (and env if needed) within the Gemini example block, and start the Copilot example as a separate, complete snippet.
| # GitHub Copilot (native ACP — requires copilot CLI in PATH) | |
| [agent] | |
| command = "copilot" | |
| args = ["--acp"] | |
| working_dir = "/home/node" | |
| env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } | |
| working_dir = "/home/node" | |
| env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } | |
| # GitHub Copilot (native ACP — requires copilot CLI in PATH) | |
| [agent] | |
| command = "copilot" | |
| args = ["--acp"] | |
| working_dir = "/home/node" |
| command = "copilot" | ||
| args = ["--acp"] | ||
| working_dir = "/home/node" | ||
| env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } |
There was a problem hiding this comment.
The Copilot config.toml example includes env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" }, which appears to be copied from the Gemini section and is unrelated to Copilot auth. This will confuse users and may lead to incorrect setups; remove it or replace it with Copilot-relevant environment/auth guidance.
| env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" } |
| RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| # Install GitHub Copilot CLI (native ACP support via --acp) | ||
| RUN npm install -g @githubnext/github-copilot-cli --retry 3 |
There was a problem hiding this comment.
The image installs @githubnext/github-copilot-cli without a version pin, making builds non-reproducible and potentially introducing breaking changes when the upstream package updates. Consider pinning to a known-good version (similar to the pinned dependencies in Dockerfile.claude / Dockerfile.codex) to improve release stability.
| RUN npm install -g @githubnext/github-copilot-cli --retry 3 | |
| ARG GITHUB_COPILOT_CLI_VERSION=0.0.82 | |
| RUN npm install -g @githubnext/github-copilot-cli@${GITHUB_COPILOT_CLI_VERSION} --retry 3 |
- Dockerfile: @githubnext/github-copilot-cli → @github/copilot@1 (the old package is deprecated; the new Copilot CLI v1.x ships native --acp support) - README: fix Gemini config example that lost its working_dir and env fields when the Copilot block was inserted - README: simplify auth to "gh auth login (GitHub OAuth)"
|
Note for maintainer: - { suffix: "-copilot", dockerfile: "Dockerfile.copilot", artifact: "copilot" }I couldn't push this change because OAuth tokens can't modify workflow files (requires |
|
Closing — will resubmit after more thorough review and CI matrix fix. |
Summary
Add first-class support for GitHub Copilot CLI via its native
--acpmode, following the same pattern as the existing Gemini integration.Changes
Dockerfile.copilotREADME.mdHow it works
No third-party adapter needed — Copilot CLI ships built-in ACP support.
Configuration
Helm
Manual config.toml
Auth
Tested capabilities
usage_updatenotificationsconfigOptions(filtered model list)