If you are leaving GitHub Copilot CLI over model choice or the Copilot bill, weigh Copilot CLI on your own key before you weigh a different client: GitHub's authenticate documentation states that "If you use your own LLM provider API keys (BYOK), GitHub authentication is not required", and the BYOK how-to marks only two environment variables required. For the exit reasons that path does not fix — a client whose source you can read, an organisation that has switched Copilot off, a workflow built around a different vendor — the choice tree below matches a reason to a candidate.
One warning before any of it. Search results for this query are dominated by generic "GitHub Copilot alternatives" round-ups about inline completion in an editor, and by two dead predecessors. Make sure you are replacing the product you actually run.
First check: which "Copilot CLI" are you leaving?
| Name | What it is | Status, checked September 21, 2026 |
|---|---|---|
| GitHub Copilot CLI | The agentic terminal client, npm @github/copilot, binary copilot | Live. github/copilot-cli is not archived; npm serves 1.0.87, published September 21, 2026, and the package first appeared September 25, 2025 |
gh copilot extension | The old gh copilot suggest / explain helper | Retired. github/gh-copilot is archived; GitHub announced deprecation on September 25, 2025 and said it would stop functioning on October 25, 2025 |
@githubnext/github-copilot-cli | The 2022–23 technical preview | Deprecated on npm — "Package no longer supported" — last version 0.1.36, January 11, 2024 |
| Copilot in the IDE | Inline code completion, a different feature of the same plans | Live, and billed differently: GitHub states that code completions are not billed in AI credits, while Copilot CLI is |
The command string is the trap. Since the January 21, 2026 changelog, gh copilot prompts to install Copilot CLI on first run and then executes it, forwarding any args and flags. The same words therefore invoke different software before and after that date, so a tutorial that describes gh copilot suggest or explain is describing the archived extension, not what you get today.
Why people leave, and whether BYOK already fixes it
| Reason for leaving | Does Copilot CLI's own BYOK cover it? | If not, look at |
|---|---|---|
| You want a different model or vendor | On paper, yes. The BYOK how-to documents three provider types, and openai — the default — covers "any other OpenAI Chat Completions API-compatible endpoint" | Nothing, unless your model fails the gate below |
| You do not want a Copilot subscription | Documented as yes, with a contradiction to settle — see the note under this table | Nothing, once you know which page covers your path |
| You want source you can read and patch | No. The repository ships no source — its tracked files are a README, a changelog, an install script and a licence; npm lists "SEE LICENSE IN LICENSE.md" and the GitHub API reports NOASSERTION | Codex CLI, opencode, Qwen Code, Gemini CLI, Cline, Aider |
| Your organisation switched Copilot off | Unclear. The README says an organisation owner or enterprise administrator can disable the CLI for seats obtained that way; the documented local-BYOK policy switch names IDEs, and no CLI-scoped statement exists in either direction | A client with no vendor account requirement: Codex CLI, opencode, Crush, Qwen Code |
You rely on /delegate or GitHub Code Search | No — those are the sign-in features. The April 7, 2026 announcement makes signing in optional under BYOK and lists them as what it adds back | Staying signed in, or a client with its own search integration |
| You need full network isolation | Partly. COPILOT_OFFLINE=true stops GitHub contact, but GitHub warns that if the base URL "points to a remote endpoint, your prompts and code context are still sent over the network to that provider" | A local runtime, which the same openai provider type covers |
The subscription question is where GitHub contradicts itself, so read both sides. The authenticate page says GitHub authentication is not required under BYOK and is required for every other use; the BYOK concept page says local BYOK keys are handled client-side and the mechanism is "suitable for air-gapped environments or users without Copilot subscriptions". The README still lists "An active Copilot subscription" as a prerequisite and has simply not been amended. Two gates are worth knowing before you commit: the how-to requires that a BYOK model "support tool calling (also called function calling) and streaming" and recommends at least a 128k context window, and the config-directory reference states that a ~/.copilot/providers.json declaring any provider or model "takes precedence over the legacy COPILOT_PROVIDER_* environment variables" — a file the BYOK how-to never mentions, and for which GitHub publishes no schema, describing it only as "a JSON object with providers and models keys". Do not copy a providers.json shape from a forum; this page invents none.
One more thing the plan pages settle. The individual-plans page says "All plans include Copilot CLI", and the usage-based-billing page lists Copilot CLI among the features that consume AI credits, prices a credit at $0.01, meters input, output and cached tokens at each model's own price, and states that included credits "do not carry over between months" and that the allowance resets "at 00:00:00 UTC on the first day of each calendar month". Whether BYOK traffic escapes that meter is not something GitHub states for the CLI: the "do not count against Copilot premium request quotas" sentences appear on the Copilot SDK BYOK page, a different surface, while the CLI-scoped billing page carves out no exception. Treat the concept page's "removes dependency on GitHub's Copilot API" as the strongest CLI-scoped statement available and verify against your own usage page.
| Copilot plan | Published monthly price | Stated AI credits per month |
|---|---|---|
| Copilot Free | $0 | "An allowance of GitHub AI Credits" — the number is not published; 2,000 code completions per month, auto model selection only |
| Copilot Pro | $10 | 1,000 base + 500 flex = 1,500 |
| Copilot Pro+ | $39 | 3,900 base + 3,100 flex = 7,000 |
| Copilot Max | $100 | 10,000 base + 10,000 flex = 20,000 |
| Copilot Business | $19 per granted seat | 1,900 per user |
| Copilot Enterprise | $39 per granted seat | 3,900 per user |
Prices and credit allowances from the individual-plans page, checked September 21, 2026; only monthly prices are published there and no annual figure appears. Separately, the usage-based-billing page states that a paid Copilot plan qualifies for "a 10% discount on model costs while using auto model selection".
The alternatives, grouped by what you want to change
| Client | Repository state, checked September 21, 2026 | How it reaches a third-party endpoint | Suits you when |
|---|---|---|---|
| Claude Code | anthropics/claude-code, active; the GitHub API reports no licence | ANTHROPIC_BASE_URL to a gateway, in Anthropic-shaped formats only | You have settled on Claude and want the closest equivalent workflow |
| OpenAI Codex CLI | openai/codex, Apache-2.0, active | ~/.codex/config.toml, [model_providers.<id>] with name and base_url, optional env_key and wire_api | You want the provider declared in a file you can commit and review |
| opencode | anomalyco/opencode, MIT, active — the repository moved owner from sst | opencode.json under provider.<id> with an adapter package and options.baseURL; keys stored separately in auth.json | You switch providers often and want per-model configuration |
| Crush | charmbracelet/crush, active; the GitHub API reports the licence as NOASSERTION rather than an SPDX identifier, so do not assume it is open source | Provider type values including openai-compat and anthropic, with base_url | You want a single binary and an explicit compatibility type |
| Qwen Code | QwenLM/qwen-code, Apache-2.0, active | /auth inside the session; the README advertises OpenAI, Anthropic, Gemini and Qwen protocols, switchable at runtime | You want to change protocol without editing configuration files |
| Gemini CLI | google-gemini/gemini-cli, Apache-2.0, active | Google account, GEMINI_API_KEY or Vertex AI. Its authentication documentation documents no OpenAI-compatible custom endpoint | You want a published free daily allowance — this is not the BYOK route |
| Cline | cline/cline, Apache-2.0, active; now ships npm i -g cline beside its editor extensions | Its own provider settings, which this page did not verify | You want the same agent in the terminal and in your editor |
| Aider | Aider-AI/aider, Apache-2.0, not archived; last commit May 22, 2026, last release v0.86.0 August 9, 2025, last PyPI upload 0.86.2 February 12, 2026 | OPENAI_API_BASE with an openai/-prefixed model id | Terminal pair programming, if that cadence is acceptable to you |
Two corrections to the round-ups. Several still call Aider the best open-source choice without printing a date; the dates above are the fair way to decide, and nothing official calls the project retired — though every other repository in that table pushed code on the day of this check. And Claude Code is narrower than a generic gateway client by design — its gateway documentation states that Anthropic "doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway", and that setting only ANTHROPIC_BASE_URL without a gateway credential does not replace a saved claude.ai login. Copilot CLI's BYOK is documented as the opposite shape: GitHub's authenticate page says GitHub authentication is not required on that path — though the README has not been amended to match, as the note above sets out. Also note that GitHub's own base-URL examples are inconsistent — http://localhost:11434 for Ollama, https://api.openai.com/v1 for OpenAI, https://api.anthropic.com for Anthropic — so there is no universal shape to assume for a gateway.
What migrates, and what stays behind
| What you have | How Copilot CLI uses it | Does it carry? |
|---|---|---|
AGENTS.md | Read as a repository instruction file | Best portability on this list — several agents read the same file |
CLAUDE.md | Read as an instruction file; @-style imports expanded since 1.0.66, June 30, 2026 | Carries to Claude Code directly |
.github/copilot-instructions.md | Copilot's own instruction file, beside $HOME/.copilot/copilot-instructions.md | Copilot-specific — fold it into AGENTS.md before you leave |
Repository .claude/settings.json | Read since 1.0.12, March 26, 2026, as an additional repository config source, beside .claude/settings.local.json | Belongs to Claude Code already |
User-level ~/.claude agents, skills, commands | Deliberately stopped loading in 1.0.36, April 24, 2026 | Nothing to move — it was already inert |
.mcp.json at the repository root | The only repository MCP source since 1.0.22, April 9, 2026 | Your most portable asset after AGENTS.md |
~/.copilot directory | Holds settings.json, permissions-config.json, providers.json, session-state/ and session-store.db; COPILOT_HOME relocates the whole path | Copilot's own formats; none of the clients above documents reading them |
| Session history | --share, --share-gist and /share html export transcripts; 1.0.85 added session and memory import for a JSONL interchange format on September 16, 2026 | The exports are transcripts meant for reading and sharing; the changelog names no counterpart tool that imports them |
Changelog entries above read from the raw changelog with their version headers on September 21, 2026. The practical order is: commit an AGENTS.md that carries what your Copilot instruction file says, confirm your MCP servers are in .mcp.json rather than an editor-specific file, then inventory what is actually in play.
# Inventory what Copilot CLI is actually reading before you replace it.
ls ~/.copilot # settings.json, permissions-config.json, providers.json, session-store.db
echo "${COPILOT_PROVIDERS_CONFIG:-~/.copilot/providers.json}" # a declaration here beats every COPILOT_PROVIDER_* export
ls AGENTS.md CLAUDE.md .mcp.json .github/copilot-instructions.mdThat third line matters more than it looks. If a stale providers.json exists, it beats the exports you are about to write — in either direction — so check it before you conclude that a configuration change had no effect. Then run one bounded task on your current setup and the same task on the candidate, and compare the diff you accept rather than the transcript you enjoy reading.
Rollback is cheap, and worth stating before you start. Nothing here removes Copilot CLI: the npm package stays installed, and unsetting the COPILOT_PROVIDER_* variables — after confirming no providers.json overrides them — returns the client to GitHub-hosted routing, provided you still hold a plan that permits it. Keep whatever access you have until the replacement has finished a real task on your own repository.
A worked cost estimate for the API route
These are illustrative token arithmetic, not measured task costs and not a bill ceiling. Assume one session that sends 400,000 uncached input tokens and receives 30,000 output tokens, with no cache reads or external tools. Rates are live Kunavo catalog prices per million tokens.
| Model | Input / output per 1M | Estimate for the assumed session |
|---|---|---|
| Claude Haiku 4.5 | $0.40 / $2.00 | $0.220 |
| Gemini 3.8 Flash | $0.525 / $2.625 | $0.289 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.406 |
| Claude Sonnet 4.6 | $1.20 / $6.00 | $0.660 |
Resist converting that into a Copilot comparison directly. GitHub bills Copilot CLI in AI credits at $0.01 each and states that a $10 budget covers 1,000 credits, but the credits a session consumes depend on GitHub's own per-model token prices, which this page did not collect. The two meters are not comparable without them, and the honest move is to run the same task on both and read each account's recorded usage. Remember too that the cheapest listed rate and the lowest cost to finish a task are different claims: a cheaper model that needs three attempts can cost more than one that needs a single pass.
Kunavo's catalog amount is a billing floor rather than a cap: when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost multiplied by the applicable markup. The minimum top-up is $10 in prepaid credit, which funds a balance rather than buying a plan or a seat — see billing details.
If you decide the answer is Copilot CLI on your own key, the Copilot CLI setup guide covers the variables and the providers.json precedence trap. If you decide on a different client, start at Codex CLI, opencode, Crush, Qwen Code, Cline, Aider or Claude Code, and create a Kunavo account when you are ready to fund a key. These are published configuration references, not compatibility tests — none of these clients has been runtime-tested here.
For the head-to-head rather than the exit decision, Copilot CLI vs Claude Code compares the two on plans, billing shape and the BYOK boundary. OpenAI-compatible API covers what the compatible path does and does not include, and opencode alternatives and Aider alternatives run the same choice tree from a different starting client.
FAQ
What is the best alternative to GitHub Copilot CLI?
There is no single winner, because the four common reasons to leave have different answers. If you want a different model or no Copilot plan, Copilot CLI's own BYOK path may be the answer: GitHub's authentication documentation states that GitHub authentication is not required when you use your own LLM provider API keys. If you want a client whose source you can read and patch, Copilot CLI cannot be it — its repository ships no source and npm lists the licence as "SEE LICENSE IN LICENSE.md" — so look at OpenAI Codex CLI, opencode, Qwen Code, Gemini CLI, Cline or Aider, all of which carry an OSI licence on GitHub. If you have settled on Claude and want the nearest workflow, Claude Code. If your organisation disabled Copilot entirely, pick a client with no vendor account requirement at all, such as Codex CLI or opencode. Checked September 21, 2026.
Is there a free alternative to GitHub Copilot CLI?
Several clients cost nothing to install, but the model tokens are still billed somewhere. Verified on GitHub on September 21, 2026: openai/codex, QwenLM/qwen-code, google-gemini/gemini-cli, cline/cline and Aider-AI/aider are Apache-2.0, and anomalyco/opencode is MIT. Charmbracelet's Crush is free to download but the GitHub API reports its licence as NOASSERTION rather than an SPDX identifier, so do not assume it is open source. The one route with a genuinely published free allowance is Gemini CLI, whose own quota and pricing documentation gives maximum requests per user per day by authentication method — on a Google account, 1,000 with Gemini Code Assist (Individual), 1,500 on Google AI Pro and 2,000 on Google AI Ultra; on a Gemini API key, 250 on the unpaid free tier. Those are daily caps, so do not compare them against Copilot's monthly credit allowances.
Does GitHub Copilot CLI work without a GitHub account?
GitHub's own pages disagree, and the disagreement is about which path you take. The authenticate documentation says: "If you use your own LLM provider API keys (BYOK), GitHub authentication is not required. Authentication is required for any other GitHub Copilot CLI usage." The BYOK concept page adds that local BYOK "removes dependency on GitHub's Copilot API, making it suitable for air-gapped environments or users without Copilot subscriptions." The repository README, however, still lists "An active Copilot subscription" under prerequisites and has not been amended for BYOK. Signing in remains optional under BYOK and unlocks extra features, including /delegate and GitHub Code Search per the April 7, 2026 changelog post. All three pages checked September 21, 2026.
What replaced gh copilot suggest and gh copilot explain?
The agentic GitHub Copilot CLI replaced them. GitHub announced the deprecation of the gh-copilot extension on September 25, 2025 and said it would stop functioning on October 25, 2025; the github/gh-copilot repository is archived. The confusing part is the command string: since the January 21, 2026 changelog entry, running gh copilot prompts to install Copilot CLI on first run and then executes it, forwarding any args and flags. So the same words invoke a different product before and after that date, which is why older tutorials describing suggest and explain aliases do not match what you get today. Checked September 21, 2026.
Which Copilot CLI alternative can use any OpenAI-compatible endpoint?
Copilot CLI itself can, on paper: its BYOK provider type openai is documented as covering "OpenAI, Ollama, vLLM, Foundry Local, and any other OpenAI Chat Completions API-compatible endpoint", and it is the default type. Among the alternatives, OpenAI Codex CLI declares a provider in ~/.codex/config.toml under [model_providers.<id>] with name and base_url, opencode declares one in opencode.json under provider.<id> with an adapter package and options.baseURL, Crush has an explicit openai-compat provider type beside openai, and Qwen Code advertises OpenAI, Anthropic, Gemini and Qwen protocols switchable at runtime through its /auth command. Claude Code is the exception: it takes a gateway through ANTHROPIC_BASE_URL in Anthropic-shaped formats and has no OpenAI-compatible path. Gemini CLI's official authentication documentation documents no custom OpenAI-compatible endpoint at all. Documentation checked September 21, 2026; none of it was runtime-tested.
Do my AGENTS.md and MCP servers survive a switch away from Copilot CLI?
Mostly yes, and those two are the assets worth moving first. Copilot CLI reads AGENTS.md and CLAUDE.md as instruction files and has expanded @-style imports in them since version 1.0.66 on June 30, 2026, and AGENTS.md is read by several other agents too. Repository MCP servers are also portable in practice: since version 1.0.22 on April 9, 2026 Copilot CLI reads only .mcp.json at the repository level, having dropped .vscode/mcp.json and devcontainer.json as sources. What does not travel is everything under ~/.copilot — settings.json, permissions-config.json, providers.json and session-store.db are Copilot's own formats, documented only as Copilot CLI's config directory, and none of the clients on this page documents reading them. Note also that user-level ~/.claude agents, skills and commands were deliberately stopped from loading in version 1.0.36 on April 24, 2026, so there is nothing to move there. Changelog read September 21, 2026.
Is Aider still a good Copilot CLI alternative?
Competing round-ups still label Aider the best open-source option, but the honest answer is the activity record rather than a label. Checked September 21, 2026: Aider-AI/aider is Apache-2.0 and is not archived, and no official statement says the project is retired. The last commit to the default branch is dated May 22, 2026, the most recent GitHub release is v0.86.0 from August 9, 2025, and the most recent PyPI upload of aider-chat is 0.86.2 from February 12, 2026. For contrast, the other seven repositories on this page all pushed code on the day of this check. Decide with those dates in front of you; this page states them rather than issuing a verdict.
Checked September 21, 2026 against live sources: the GitHub API for github/copilot-cli, github/gh-copilot and all eight alternative repositories; the npm registry for @github/copilot; GitHub's BYOK how-to, BYOK concept page, authenticate page, config-directory reference, individual-plans page and usage-based-billing page; the raw Copilot CLI README and changelog; Anthropic's gateway and gateway-compatibility documentation; and each alternative's own configuration documentation — Codex CLI's config reference, opencode's providers page, the Crush and Qwen Code READMEs, Aider's OpenAI-compatible page, and Gemini CLI's authentication and quota-and-pricing documents. Nothing on this page was runtime-tested, no client here has been run against Kunavo, and claims about providers.json precedence, tool calling and streaming are documented behaviour rather than observed behaviour. Kunavo token rates come from the live catalog and every dollar example is illustrative token arithmetic.