Back to guides
Coding agents·September 21, 2026·9 min read

Qwen Code alternatives: choose by workflow and API control

Most people searching for Qwen Code alternatives do not need one. The client is alive, Apache-2.0 and free — what ended on 2026-04-15 was the free hosted inference, not the CLI. This page splits the two readers who land here, then maps each real reason for leaving to the client that fits it, with the project-status checks, endpoint-protocol walls and migration losses that decide whether the move is worth making.

Last reviewed on .

Most people searching for Qwen Code alternatives do not need one. The client is alive, Apache-2.0 and free, and it has the widest bring-your-own-endpoint surface of any terminal agent compared here — what ended on 2026-04-15 was the free hosted inference, not the CLI. That distinction decides everything below, because "I need a different endpoint" is usually an argument for staying.

Two different readers land on this query, so take the exit that fits. If you arrived because someone recommended Qwen Code as the free Claude Code alternative, the free part is gone: Qwen Code's own authentication documentation says "The Qwen OAuth free tier was discontinued on 2026-04-15" and that OAuth "is no longer offered as a selectable entry in the /auth dialog" (read September 21, 2026). Your real comparison is Qwen Code vs Claude Code and Qwen Code pricing, which carry the Alibaba plan figures this page deliberately does not restate. If you already run Qwen Code and want out, the rest of this page is the choice tree.

First check whether you actually need to leave

The health check comes back clean. On September 21, 2026 the GitHub API reported QwenLM/qwen-code as not archived, Apache-2.0, 28,047 stars, with code pushed that same day, and the npm registry served @qwen-code/qwen-code 0.24.3 published at 14:36 UTC — hours before this page was written. Read the registry rather than any version printed on a page, this one included.

The project describes itself two ways, and the difference matters to a leaver. The README headline reads "The open-source AI coding agent for your terminal, editor, desktop, browser, and chat", while the repository description field still says it "lives in your terminal". Treating Qwen Code as terminal-only understates what you are giving up.

Its lineage also rules out the tidiest-looking swap. The README's acknowledgments state the project "was originally based on Google Gemini CLI v0.8.2" and that "Starting from Qwen Code v0.1, we stopped syncing with upstream and began independent development". Shared ancestry, no ongoing parity — Gemini CLI is not a drop-in replacement, and no Gemini CLI quota or setting carries across.

Now the part that dissolves most exit plans. Qwen Code's /auth menu offers three routes: Alibaba ModelStudio, a built-in third-party list (DeepSeek, Grok, MiniMax, Z.AI, Kimi, Idealab, ModelScope, OpenRouter, Requesty), and a Custom Provider described as "a local server, proxy, or unsupported provider — supports OpenAI, Anthropic, Gemini, and other compatible endpoints". Four protocols — openai, anthropic, gemini and vertex-ai, with the OpenAI one carrying a per-model wireApi of chat-completions or responses — configured by environment variables or once in ~/.qwen/settings.json under modelProviders, where each model entry takes its own baseUrl. The published environment overrides are narrower than that: the docs list OPENAI_BASE_URL and ANTHROPIC_BASE_URL but no base-URL variable for the two Google protocols, so redirect those through modelProviders. No other client in the endpoint table below is documented as speaking all four.

Three documented gates inside Qwen Code get mistaken for reasons to leave, and none of them is one. Credential precedence puts a selected modelProviders entry above the --openai-base-url and --openai-api-key flags, which is the ordering most people guess backwards. modelProviders edits are picked up by a running session without a restart, while providerProtocol — the setting that maps a custom provider id to a protocol — is documented as read once at startup and requiring one, so a change that seems ignored often just needs a restart. And the built-in web_search tool is gated on the endpoint host, not on what you paid: Qwen Code's web search documentation lists it as off for "Third-party providers (OpenRouter, DeepSeek, ModelScope, …), custom endpoints on other hosts, local models" and also off for the paid Coding Plan, whose "endpoint is not verified for this API". The documented remedy is an external MCP search server, not a different client. One thing genuinely cannot be fixed by swapping an endpoint: the Qwen OAuth models were hard-coded, so the discontinued free tier cannot be revived through modelProviders.

Real reasons to leave, and where each one goes

Why you are leavingDestinationWhat it costs you
You want a free daily quota againGemini CLI — 60 requests/min and 1,000 requests/day on a personal Google accountBYOK narrows to the Google wire format, and the free quota is tied to OAuth sign-in, so you cannot have both
You want local modelsCrush, by Charm — its README documents model auto-discovery for the ollama, llamacpp, lmstudio, litellm and omlx provider typesFSL-1.1-MIT rather than an OSI licence, and its config file is executable code
You want to keep running Qwen models elsewhereCharm Hyper listed seven Qwen ids; Qwen Code's own docs name OpenRouter and Fireworks AIA catalog listing is not a guarantee that these are the same model versions Alibaba sells
You want delegated, autonomous runsOpenHands — MIT, free to self-host, bring your own keyA different operating model, and this page checked only the self-hosted path
You want an editor, not a terminalCline or Kilo — both take Base URL, API key and model id with no paid plan gateYou give up the terminal-native workflow Qwen Code is built around
Protocol reasonsClaude Code needs the Anthropic Messages format; Codex CLI needs ResponsesCodex CLI has removed Chat Completions for custom providers — see the endpoint table below

Two of those rows carry a caveat worth reading before you commit. Gemini CLI's free tier is stated twice by Google with different numbers: the repository README says the Gemini API-key path gives "1000 requests/day with Gemini 3 (mix of flash and pro)", while geminicli.com's quota page says Gemini API Key (Unpaid) gets "250 maximum model requests / user / day" on Flash only. Both read September 21, 2026; this page prints both rather than choosing. The paid rows on that same page — Google AI Pro at 1,500 and Ultra at 2,000 requests per user per day, Code Assist Standard at 1,500 and Enterprise at 2,000 — say requests are limited per minute but publish no per-minute number.

And Crush's config is not a passive file. Its README states "Both crushrc and crush.json are trusted code; crushrc runs in a full shell". That is Crush's own wording about its own files, and it is a real difference from a JSON settings file you can paste from a forum post.

Check the destination's status before you commit

Several of the projects that appear in "Qwen Code alternatives" listicles have changed repository owner or changed hands since they were written, and two of them are shut down. All statuses below come from the GitHub API and each project's own documentation on September 21, 2026; where a rename has no dated first-party announcement, the row says so rather than putting a year on it.

ProjectWhere it lives nowLicenceStatus
Qwen CodeQwenLM/qwen-codeApache-2.0Live — pushed the day this was checked
Gemini CLIgoogle-gemini/gemini-cliApache-2.0Live — 107,111 stars, pushed September 21
OpenCodesst/opencode now redirects to anomalyco/opencodeMITLive. No dated first-party rename announcement was found
Crushcharmbracelet/crushFSL-1.1-MITLive. The archived opencode-ai/opencode is Crush's former name, not the live OpenCode
Clinecline/clineApache-2.0Live, and no longer editor-only: npm cline 3.0.62 ships from an apps/cli directory
Kilo (was Kilo Code)Kilo-Org/kilocode, now branded Kilo at kilo.aiMITLive; acquired by Anaconda, announced July 15, 2026
OpenHandsAll-Hands-AI/OpenHands now redirects to OpenHands/OpenHandsMITLive — 88,727 stars
gooseblock/goose now redirects to aaif-goose/gooseApache-2.0Live. Block donated it to the Linux Foundation's Agentic AI Foundation; docs moved to goose-docs.ai
Roo CodeRooCodeInc/Roo-CodeApache-2.0Archived. Its docs say "The Roo Code Extension was shut down on May 15th". Do not adopt it
Zoo CodeZoo-Code-Org/Zoo-CodeApache-2.0Live community fork that Roo's docs point to — 1,878 stars, one recent push. Cadence evidence, not durability
iFlow CLIiflow-ai/iflow-cliNone declaredShut down. iFlow's platform docs tell users to migrate to Qoder. The notice is still written in the future tense for a date five months past
Continuecontinuedev/continueApache-2.0Not archived by GitHub's flag, but its README says it is "no longer actively maintained and is read-only"; continue.dev announces the Cursor acquisition
AiderAider-AI/aiderApache-2.0Slowing, not dead: last commit to main May 22, 2026, newest PyPI release (aider-chat 0.86.2) February 12, 2026. No maintainer statement about the project's future was found

Two naming traps sit in this table. OpenCode is two projects: the archived Go repo at opencode-ai/opencode says the work "has continued under the name Crush, developed by the original author and the Charm team", so it is Crush's old identity — while the live OpenCode is the TypeScript project at opencode.ai, published to npm as opencode-ai. Checking npm alone cannot tell them apart. And Crush here always means Charm's coding agent, not liljencrantz/crush, which is a command-line shell with no connection to AI. For Roo's status in full see Roo Code vs Cline.

What moves with you, and what does not

ArtifactWhere it lives in Qwen CodeDoes it move?
Portable instructionsAGENTS.md, which Qwen Code reads alongside QWEN.mdBest case. OpenCode looks for AGENTS.md then CLAUDE.md by traversing up from the current directory
Project instructions~/.qwen/QWEN.md, QWEN.md in the repo root, .qwen/QWEN.local.mdCopy the content into the destination's own context file, or move it into AGENTS.md first
Conditional rules.qwen/rules/, gated by a paths: glob in frontmatterNo. No other client documented here reads .qwen/rules/, and the path-gating mechanism has no equivalent to migrate to
Skills.qwen/skills/<name>/SKILL.mdUnverified. Several clients ship a "skills" concept; no cross-compatibility statement was found in any of them
Conversation history/export html, md, json or jsonlTreat as lost. The export exists and md/json/jsonl are self-contained, but no importer for them was found in any destination's docs
Session state on diskgeneral.chatRecording, ~/.qwen/file-history/ backups, .qwen/PROJECT_SUMMARY.mdClient-private. --continue and --resume depend on it and do not follow you
API keyAn env var or an envKey reference in modelProvidersYes — re-enter the same key in the destination's own config

A four-step move that keeps a rollback. First, consolidate the instructions you care about into AGENTS.md in the repo root while still in Qwen Code, since it already reads that file. Second, export one live session with /export md for your own reference, not for import. Third, configure the destination against the same endpoint and key and run one bounded task. Fourth — the rollback — leave ~/.qwen/ untouched. Nothing in the steps above deletes it, so qwen still starts with your providers, rules and history if the new client disappoints. Keep both installed for a week before you uninstall anything.

The endpoint question, client by client

If you are leaving to reach a specific provider, check the destination accepts your protocol first. This is where the biggest surprise lives: Codex CLI no longer accepts Chat Completions, which is the route most Qwen Code users are on.

ClientHow you point it at a custom endpointProtocol it must speakPlan gate
Qwen CodemodelProviders in ~/.qwen/settings.json, or OPENAI_BASE_URL and friendsChat Completions, Responses, Anthropic or GeminiNone
Gemini CLIGOOGLE_GEMINI_BASE_URL, documented as applying "when using gemini-api-key authentication"; HTTPS unless localhostGoogle GenAI only — no OpenAI-compatible mechanism appears anywhere in its configuration referenceThe free quota is tied to Google OAuth, not to a custom endpoint
OpenCodeopencode.json with provider.<id>.npm set to @ai-sdk/openai-compatible and options.baseURLOpenAI-compatibleNone — OpenCode Zen is "completely optional" per its own docs
Crushprovider add <id> --type openai-compat --base-url … --api-key … in a crushrcOpenAI-compatible, plus anthropic, ollama, llamacpp, lmstudio, litellm, omlxNone. The gate here is that the config file is executable code
Codex CLI[model_providers.<id>] in ~/.codex/config.toml with base_url, env_key, wire_apiResponses only. The source's WireApi enum has one variant and "chat" errors with "wire_api = "chat" is no longer supported"Project-scoped config cannot override model_provider; forced_login_method can pin auth
Claude CodeANTHROPIC_BASE_URL plus a credential variableAnthropic MessagesAnthropic's gateway page says a gateway credential replaces the claude.ai subscription for that session, and that it "doesn't support routing Claude Code to non-Claude models through any gateway"
ClineSelect "OpenAI Compatible", then Base URL, API Key and Model IDOpenAI-compatibleNone — BYOK sits in the free Open Source tier
KiloProvider settings, per kilo.aiOpenAI-compatibleNone — kilo.ai/pricing lists "Auto Free, BYOK, or local" at "$0/mo" with "No hosted credit required"
OpenHandsLLM Provider, Model and API Key, with Base URL under Advanced settings, or config.tomlOpenAI-compatibleNone on the MIT self-host — its docs put LLM Provider, LLM Model, API Key and Base URL in Settings with no plan gate named

Kunavo's own endpoint, https://api.kunavo.com/v1, serves /v1/chat/completions, /v1/responses and /v1/messages. On protocol alone that covers Qwen Code, OpenCode, Crush, Cline, Kilo and OpenHands on the chat route, Claude Code on the messages route, and Codex CLI only on the responses route. It does not cover Gemini CLI, which needs the Google GenAI wire format. Kunavo serves no embedding, text-to-speech or speech-to-text model, so an agent configured with a separate embedding setting needs another provider for that step.

Say plainly what that is and is not: none of these clients has been runtime-tested against Kunavo. Every row above is documentation-level protocol compatibility read from each project's own published configuration reference on September 21, 2026, and a published setup guide is not a test. Keep a working route available while you try a new one.

A worked cost estimate for the destination

Whichever client you land on, the model bill follows you, and it is the number worth modelling before the move. The figures below are illustrative token arithmetic, not measured task costs and not a bill ceiling. Assume one working session that sends 400,000 uncached input tokens and receives 25,000 output tokens — a rough shape for an agent that reads widely and edits narrowly, stated as an assumption rather than a measurement. Rates are live Kunavo catalog prices per million tokens.

ModelInput / output per 1MEstimate for one sessionEstimate at 20 such sessions
Claude Haiku 4.5$0.40 / $2.00$0.210$4.20
Gemini 3.8 Flash$0.525 / $2.625$0.276$5.51
GPT-5.6 Terra$0.70 / $4.20$0.385$7.70
Claude Sonnet 4.6$1.20 / $6.00$0.630$12.60

Scale by your own session count before treating this as a budget, and note that cheapest listed price and lowest cost to finish the task are different claims — a cheap 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 times the applicable markup. Cache charges and external tools sit outside this example. The minimum top-up is $10 in prepaid credit — a funding minimum, not a task fee or a subscription. See billing details.

One commercial boundary, stated rather than buried: Kunavo's catalog contains no Qwen text model. If your reason for moving is to keep running Qwen more cheaply, this is not the route — the route it is good for is one prepaid balance for Claude, GPT and Gemini inside whichever terminal agent you land on.

Where to go next

Staying put is the common outcome, and it is well supported: the Qwen Code setup guide covers pointing it at an OpenAI-compatible endpoint, and Qwen Code pricing carries the Alibaba plan figures. If you are actually moving, start from the setup page for your destination — OpenCode, Crush, Cline, OpenHands or goose — then create a Kunavo account when you are ready to fund a key. For deeper comparisons of individual destinations, see OpenCode alternatives, Crush vs OpenCode, OpenHands vs OpenCode and Gemini CLI quota. The protocol question in general is covered in OpenAI-compatible API.

FAQ

What are the best Qwen Code alternatives?

There is no single winner, because the reason for leaving decides the answer. If you want a free daily quota again, Gemini CLI publishes 60 requests per minute and 1,000 requests per day for a personal Google account. If you want local models, Crush's README documents model auto-discovery for its ollama, llamacpp, lmstudio, litellm and omlx provider types; Cline and Kilo document Ollama and LM Studio providers too, so start from the runtime you actually run. If you want delegated autonomous runs, OpenHands is MIT and free to self-host. If you want an editor rather than a terminal, Cline and Kilo both take an OpenAI-compatible endpoint with no paid plan required. OpenCode takes any OpenAI-compatible endpoint, but the endpoint table below shows no client here matching all four of the wire formats Qwen Code's own docs list. Checked September 21, 2026 against each project's own documentation.

Is Qwen Code still free?

The client is free and always has been: QwenLM/qwen-code is Apache-2.0 with no paid tier and no seats. What is no longer free is the hosted inference that used to come with it. Qwen Code's own authentication documentation states that the Qwen OAuth free tier was discontinued on 2026-04-15, that existing cached tokens may continue working briefly but new requests will be rejected, and that Qwen OAuth is no longer offered as a selectable entry in the /auth dialog. Model access is now bought separately through Alibaba ModelStudio, a listed third-party provider, or any endpoint you configure yourself. Read September 21, 2026.

Is Qwen Code dead or abandoned?

No. On September 21, 2026 the GitHub API reported QwenLM/qwen-code as not archived, Apache-2.0, 28,047 stars, with code pushed that same day, and the npm registry served @qwen-code/qwen-code 0.24.3 published hours earlier. The thing that shut down was the free Qwen OAuth tier on 2026-04-15, not the client. A different Gemini-CLI-derived terminal agent did shut down: iFlow CLI's own platform documentation carries a notice that service stops on 2026-04-17 and tells users to migrate to Qoder. Those are two separate projects and iFlow's fate is not evidence about Qwen Code.

Which Qwen Code alternative gives me a free daily quota?

Gemini CLI is the closest thing, but its two official sources disagree and you should see both. The repository README states, twice, a free tier of 60 requests per minute and 1,000 requests per day with a personal Google account signed in through OAuth. For the separate Gemini API-key path, the README says 1,000 requests per day with Gemini 3 as a mix of flash and pro, while geminicli.com's quota-and-pricing page says Gemini API Key (Unpaid) gets 250 maximum model requests per user per day and is restricted to the Flash model. Both were read on September 21, 2026. Confirm the figure in your own account rather than budgeting from either page. Note the trade-off: the 60-per-minute, 1,000-per-day tier is the OAuth one, and Gemini CLI's configuration reference documents GOOGLE_GEMINI_BASE_URL as applying when using gemini-api-key authentication — so a custom endpoint and that OAuth quota are not the same path.

Can I keep running Qwen models if I switch clients?

Yes, through a provider that carries them rather than through the client. Qwen Code's own documentation names OpenRouter and Fireworks AI as replacements for the discontinued OAuth tier, and both are reachable from any OpenAI-compatible client. Crush's own provider, Charm Hyper, served 23 model ids on September 21, 2026, seven of them Qwen ids including qwen3.8-max, qwen3.8-flash and qwen3.7-plus. That is a catalog listing and not a benchmark, a price or an availability guarantee, and it does not establish that those ids are the same model versions Alibaba sells. Kunavo is not an answer to this question: its catalog holds no Qwen text model, so routing through Kunavo is a way to run Claude, GPT and Gemini inside a terminal agent, never a cheaper Qwen.

Does my QWEN.md move to another agent?

Partly. Qwen Code reads AGENTS.md alongside QWEN.md, so instructions you keep in AGENTS.md are the portable ones: OpenCode's documentation says it looks for AGENTS.md and CLAUDE.md by traversing up from the current directory, then a global file, then Claude Code's own file. Gemini CLI's context-file documentation shows the same move: its context.fileName setting accepts an array, and the documented example is ["AGENTS.md", "CONTEXT.md", "GEMINI.md"], so it reads AGENTS.md once you configure it — documented, not tested here. What does not move is everything under .qwen: rules in .qwen/rules/ with their paths: globs, skills under .qwen/skills/, and conversation history. Qwen Code can export a session as HTML, Markdown, JSON or JSONL, but no importer for those files was found in any destination client's documentation, so plan to lose the transcript.

Checked September 21, 2026: the GitHub API for each repository named above; the npm registry for Qwen Code and Cline; Qwen Code's auth, model-providers, memory, rules, skills, commands and web-search documentation on main; Gemini CLI's README, configuration reference and context-file page plus geminicli.com's quota page; OpenCode's rules and providers docs; Crush's README and licence file; Codex CLI's provider and config source; Charm Hyper's public model list; PyPI for Aider; Roo Code's documentation site; continue.dev; OpenHands' LLM docs; cline.bot's pricing page; Anthropic's LLM-gateway page; and kilo.ai's pricing page. Statements about iFlow CLI's shutdown date, goose's move to the Agentic AI Foundation and Kilo's acquisition rest on those organizations' own announcements as recorded in this round's research on the same date. No client on this page was runtime-tested against Kunavo. Kunavo token rates come from the live catalog and every dollar figure is illustrative token arithmetic.