What is the difference between Qwen Code and Gemini CLI?
Qwen Code is an open source terminal agent from the Qwen team that began as a fork of Gemini CLI and now works with many model providers; Gemini CLI is Google's open source terminal agent built around Gemini models. They look alike, but in 2026 they differ on who can use them, which models they call, and how they handle approvals, context files and extensions.
Both are Apache 2.0 licensed, both read and edit your project and run commands, and both support MCP, Agent Skills and a headless mode. Everything below comes from the official docs as read on 26 October 2026. For single-tool guides, see Qwen Code and Gemini CLI.
How are Qwen Code and Gemini CLI related?
The Qwen Code repository says the project was originally based on Google Gemini CLI v0.8.2, and adds: "Starting from Qwen Code v0.1, we stopped syncing with upstream and began independent development." So the two share a codebase history and a lot of their command style, but changes in one no longer flow into the other.
That shows in the details. Qwen Code uses QWEN.md and .qwen/ folders where Gemini CLI uses GEMINI.md and .gemini/. Qwen Code has five approval modes to Gemini CLI's four, and its own provider menu.
How does Qwen Code work?
The README calls it "The open-source AI coding agent for your terminal, editor, desktop, browser, and chat." It needs Node.js 22 or newer for the npm install, or you can use the standalone installer:
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash
# or
npm install -g @qwen-code/qwen-code@latest
brew install qwen-code
cd your-project
qwen
The README says it "Supports OpenAI, Anthropic, Gemini, and Qwen APIs" and "Any third-party provider or local model (Ollama / vLLM)." Older tutorials mention a free sign-in, but the authentication page now says: "The Qwen OAuth free tier was discontinued on 2026-04-15." Run /auth and choose QwenCloud, Alibaba ModelStudio, a built-in third-party provider (DeepSeek, Grok, MiniMax, Z.AI, Kimi, Idealab, ModelScope, OpenRouter or Requesty), or a Custom Provider.
How does Gemini CLI work?
The Gemini CLI repository calls it "An open-source AI agent that brings the power of Gemini directly into your terminal."
npx @google/gemini-cli # run without installing
npm install -g @google/gemini-cli
brew install gemini-cli
cd your-project
gemini
You sign in with a Google account, a Gemini API key (GEMINI_API_KEY) or Vertex AI. Before you do, check your account type. The README says free individual access and Google AI Pro and Ultra (Google One) "moved to Antigravity CLI on June 18, 2026," and that Gemini CLI is designed for Gemini Code Assist Standard and Enterprise licenses and Code Assist for GitHub on Google Cloud. Google's announcement adds that requests from Google AI Pro and Ultra subscribers stopped too, while organizations on a Gemini Code Assist Standard or Enterprise license keep access and "Gemini CLI will remain accessible via paid Gemini and Gemini Enterprise Agent Platform API keys." The README also says Gemini CLI is not tuned for the Gemini 4 series, such as Gemini 4 Argon.
How do Qwen Code and Gemini CLI compare side by side?
| Qwen Code | Gemini CLI | |
|---|---|---|
| Maker | Qwen team | |
| License | Apache 2.0 | Apache 2.0 |
| Command | qwen |
gemini |
| Origin | Forked from Gemini CLI v0.8.2, independent since v0.1 | The original |
| Who can use it (Oct 2026) | Anyone with a QwenCloud or ModelStudio plan or key, another provider, or a local model | Code Assist Standard or Enterprise, paid Gemini API keys, Vertex AI |
| Models | Qwen plus OpenAI, Anthropic and Gemini compatible APIs, local models | Gemini models |
| Approval modes | plan, default (Ask Permissions), auto-edit, auto, yolo |
default, auto_edit, yolo, plan |
| Context file | QWEN.md, also reads AGENTS.md |
GEMINI.md, other names through context.fileName |
| Agent Skills | .qwen/skills/, .agents/skills/ |
.gemini/skills/, .agents/skills/ |
| Extensions | Own format, plus Gemini CLI extensions and Claude Code plugins | Gemini CLI extensions |
| MCP | mcpServers in settings.json, qwen mcp add |
mcpServers in settings.json, gemini mcp add |
| Headless | qwen -p, --output-format text, json, stream-json |
gemini -p, --output-format text, json, stream-json |
How do approval modes and sandboxing compare?
Qwen Code has five approval modes, cycled with Shift+Tab (Tab on Windows) or set with /approval-mode:
- Plan: read-only analysis, no edits or shell commands.
- Ask Permissions (
default): asks before file edits and shell commands. - Auto-Edit: approves file edits, still asks for shell commands.
- Auto: "An LLM classifier evaluates each shell command, network call, and out-of-workspace edit," approving safe ones and blocking risky ones.
- YOLO: approves every tool call.
The docs say headless runs default to Ask Permissions. Check which mode your interactive session starts in with /approval-mode before you let it loose on a repo you care about.
Gemini CLI sets the mode with --approval-mode, which the CLI reference says defaults to default, with auto_edit, yolo and plan as the other choices. The old --yolo flag is marked deprecated. Gemini CLI also has a separate sandbox, -s or --sandbox, which defaults to false; the sandbox docs describe macOS Seatbelt and Docker or Podman containers.
The headline difference is Qwen Code's classifier-based Auto mode, which Gemini CLI does not have, and Gemini CLI's documented container sandbox.
How do context files, skills and extensions compare?
Context files. Qwen Code's memory docs describe ~/.qwen/QWEN.md, a project QWEN.md and .qwen/QWEN.local.md, and say: "If your repository already has an AGENTS.md file for other AI tools, Qwen reads that too." Gemini CLI reads GEMINI.md from ~/.gemini/, your workspace and parent folders. To have it read AGENTS.md too, add it to context.fileName:
{
"context": {
"fileName": ["AGENTS.md", "GEMINI.md"]
}
}
The GEMINI.md guide covers the rest.
Skills. Qwen Code's skills page lists .qwen/skills/ and .agents/skills/ for projects and the same under your home folder, with .qwen/ winning on a name clash. It does not read .gemini/skills/. Gemini CLI's skills docs list .gemini/skills/ with .agents/skills/ as an alias that takes precedence, and say its skills are "Based on the Agent Skills open standard." Put shared skills in .agents/skills/ and both find them. See Gemini CLI skills and Agent Skills.
Extensions. Gemini CLI extensions bundle "prompts, MCP servers, custom commands, themes, hooks, sub-agents, and agent skills," installed with gemini extensions install <github-url>. Qwen Code's extension docs say "Qwen Code fully supports extensions from the Gemini CLI Extensions Gallery," converting each gemini-extension.json on install, and add that it "also supports plugins from the Claude Code Marketplace." If you built a Gemini CLI setup around extensions, much of it can move to Qwen Code.
MCP. Both keep servers under mcpServers in settings.json (~/.qwen/ or .qwen/ for Qwen Code, ~/.gemini/ or the project for Gemini CLI) and both have an mcp add command. The Gemini CLI MCP guide has examples.
Which should you pick?
Start with access, because the 2026 changes decide a lot.
Qwen Code tends to fit when:
- You want one agent that can switch between Qwen, OpenAI, Anthropic, Gemini compatible and local models.
- You are a former free Gemini CLI user who wants a familiar tool on a provider you choose.
- You want a classifier-based Auto mode between asking for everything and YOLO.
- You want to reuse Gemini CLI extensions or Claude Code plugins.
Gemini CLI tends to fit when:
- Your company has a Gemini Code Assist Standard or Enterprise license, or you pay for Gemini API keys or Vertex AI.
- You want Google's own agent for Gemini models.
- You want a documented Seatbelt or container sandbox you switch on with one flag.
If you are on a free or Google AI Pro or Ultra plan and want to stay with Gemini, Google points you to Antigravity CLI instead. For how Gemini CLI stacks up against OpenAI's agent, see Codex vs Gemini CLI.
Keep your prompts and skills portable
Since both tools read .agents/skills/ and AGENTS.md, the files are the part worth keeping in one place. Kipt keeps prompts and Agent Skills as Markdown in a private GitHub repo you own, with {{name}} blanks and Cmd+K search, and can import skills from a GitHub link, a folder or a .zip. The free SKILL.md generator turns a prompt you reuse into a skill folder in your browser.