Qwen CodeとClaude Codeの違いを比較する — OSSエージェントの使い分け
Qwen CodeとClaude Codeを、モデル接続・提供面・サブエージェント・権限モード・MCPの5軸で比較します。複数プロトコルに対応するOSS側の仕様と、移行時のつまずき所も扱います。
Qwen Codeは、QwenLMが公開しているOSSのコーディングエージェントです。Claude Codeと同じくターミナルで動き、サブエージェント、Skills、MCP、Hooksなどをそろえています。最大の違いは、接続するモデルを固定しない点です。Claude CodeはClaudeモデルを前提に作られていますが、Qwen CodeはOpenAI互換・Anthropic・Gemini・Qwenの各プロトコルを実行時に切り替えられます。
この記事では、乗り換えや併用を考える人向けに、両者を5つの軸で並べます。数値や機能の有無は、Qwen Code側はREADMEとドキュメント、Claude Code側はdocsで確認できたものだけを書いています。
Qwen CodeとClaude Codeの違いは何か
要点は次の3つです。
- モデルの自由度: Qwen Codeは複数プロトコルを切り替えられる。Claude CodeはClaudeモデルを使う
- 提供面: Qwen Codeはチャット連携(Telegram・DingTalk・WeChat・Feishu)とデーモンモードを持つ。Claude CodeはSlack連携やRoutines、Teleportを持つ
- 思想: Qwen CodeはClaude Codeとの機能互換を明示的に目指し、Claude Codeのサブエージェント定義をそのまま置ける
Qwen Code自身のREADMEは「Claude Codeを知っていれば、Qwen Codeも知っている」と書き、機能比較表を載せています。ただしこの表は提供元が作ったものです。以降は、表の各行を両方のドキュメントで確かめ直した内容を書きます。
出自と位置づけ
Qwen CodeはGoogle Gemini CLI v0.8.2を土台に始まったプロジェクトです。READMEでも、v0.1以降は上流との同期をやめ、独立した開発に移ったと説明されています。Gemini CLIとClaude Codeの比較はClaude Code vs Gemini CLIにまとめています。
もう1つの特徴は、フレームワークとQwenモデルの両方がOSSとされている点です。READMEは「ベンダーロックインなし」を掲げます。一方で、初回起動時の接続メニューにはAlibaba ModelStudioが「推奨設定」として先頭に出ます。DeepSeek、MiniMax、Z.AI、Kimi、OpenRouterなどは「サードパーティプロバイダー」として並び、ローカルサーバーやプロキシは「カスタムプロバイダー」で接続します。
マルチプロトコル対応 — モデル接続の違い
ここが両者の分かれ目です。
Qwen Codeはsettings.jsonのmodelProvidersで、プロバイダーごとにモデルを宣言します。宣言したモデルは/modelで実行時に切り替えられます。組み込みのプロバイダーIDはopenai・anthropic・gemini・vertex-ai・qwen-oauthです。OpenAI互換のエンドポイントなら、OpenRouterのような集約サービスやOllama・vLLMなどのローカルモデルもつなげます。
設定は次のような形です(公式ドキュメントの例に沿った形)。
{
"modelProviders": {
"openai": [
{
"id": "my-model",
"envKey": "OPENAI_API_KEY",
"baseUrl": "https://api.openai.com/v1"
}
]
},
"model": { "name": "my-model" }
}OpenAI互換のモデルには、wireApiでChat CompletionsとResponses APIのどちらを使うかも指定できます。編集したmodelProvidersは、実行中のセッションにも再起動なしで反映されるとドキュメントにあります。
Claude Code側は事情が違います。設定のANTHROPIC_BASE_URLは、リクエストの送り先を変えるだけで、どのモデルが答えるかは変えません。Claudeモデルを使いつつ経路を変える手段が、次の3つです。
- Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundryなどのサードパーティプロバイダー
- LLMゲートウェイ
- カスタムの
ANTHROPIC_BASE_URL
Bedrock・Vertex・Foundryの機能差はClaude Codeの機能比較で扱っています。
整理するとこうなります。
| 観点 | Qwen Code | Claude Code |
|---|---|---|
| 接続できるプロトコル | Qwen CodeOpenAI互換・Anthropic・Gemini・Vertex AI・Qwen OAuth | Claude CodeClaudeモデル向け(経路はBedrock等・ゲートウェイで選択) |
| モデルの切り替え | Qwen Code/modelで実行時に切り替え | Claude Code/modelでClaudeのモデルやエイリアスを選択 |
| ローカルモデル | Qwen CodeOpenAI互換API経由でOllama・vLLMに対応 | Claude Code対象外(Claudeモデルが前提) |
「ローカルモデルで動かしたい」「複数社のモデルを1つのCLIで試したい」が理由なら、Qwen Codeが候補に入ります。Claudeモデルの品質や機能を使い切りたい場合は、Claude Codeのほうが前提と合っています。
提供面の違い
READMEは、Qwen Codeの使い方を5つに整理しています。ターミナル、デスクトップ、Web、エディター、チャットです。
| 面 | Qwen Code | Claude Code |
|---|---|---|
| ターミナル | Qwen Codeqwen | Claude Codeclaude |
| デスクトップ | Qwen CodemacOS・Windows・Linux向けアプリ | Claude CodeDesktopアプリ(Codeタブ) |
| Web | Qwen Codeqwen serve --open(実験的) | Claude Codeブラウザ版のClaude Code |
| エディター | Qwen CodeVS Code・Zed・JetBrains | Claude CodeVS Code・JetBrains |
| チャット | Qwen CodeTelegram・DingTalk・WeChat・Feishuなど | Claude CodeSlackで@Claudeにメンション |
Qwen CodeのWeb UIは実験的な位置づけです。デーモンモード(qwen serve)も実験的で、HTTPとSSE(ACP)でクライアントをつなぎます。他のエージェントからQwen Codeへコーディング作業を委譲する「Qwen Code Claw」というエコシステムも、READMEに載っています。
Claude Code側にあってQwen Codeの表に無いものもあります。クラウドで動くRoutinesや、Web・モバイルで始めた作業をターミナルに引き取るclaude --teleportです。どちらの製品でも、面ごとに使える条件が違うため、導入前に自分の使う面を確認しておくと安全です。
サブエージェント・Skills・メモリー
構造はほぼ並行しています。
サブエージェントは、どちらもYAMLフロントマター付きのMarkdownで定義します。置き場所は、Qwen Codeが.qwen/agents/(プロジェクト)と~/.qwen/agents/(ユーザー)、Claude Codeが.claude/agents/と~/.claude/agents/です。
Qwen Codeは、Claude Codeのフロントマターの一部を読めるようにしています。permissionMode・maxTurns・color・mcpServers・hooksが対象で、permissionModeはapprovalModeに変換されます。ドキュメントは、Claude Codeのエージェントファイルを.qwen/agents/に置いても、対応するフィールドが同じように解釈されると説明しています。値が不正な任意フィールドは、エラーにならず黙って無視されます。
---
name: rigorous-reviewer
description: 上限つきの丁寧なコードレビュー
permissionMode: plan
maxTurns: 50
tools:
- read_file
- grep_search
- glob
---
指摘は、バグにつながるものだけを報告してください。上の例は、公式ドキュメントの互換フィールドの例に沿った形です。ツール名は製品ごとに違います。Qwen Codeのread_fileやgrep_searchと、Claude CodeのReadやGrepは同じ名前ではないので、ファイルを流用するときはtoolsの見直しが要ります。
Qwen Codeにだけある仕組みとして、claude-codeとcodexという組み込みエージェントがあります。別途インストールしたClaude CodeやCodexへ作業を委譲するもので、Claude Code側はACPアダプター(claude-agent-acp)経由で動きます。委譲先は自分のモデル設定と認証を使い、実行環境が無ければQwen自身のモデルへのフォールバックはしません。つまりClaude Codeを、別のエージェントの中から呼ぶ構成が組めます。
Skillsは、どちらもSKILL.mdを含むディレクトリで、個人用とプロジェクト用の置き場所があります。Qwen Codeは~/.qwen/skills/と.qwen/skills/、Claude Codeは~/.claude/skills/と.claude/skills/です。
Qwen Codeには、既存の資料からSkillを作る/learnがあります。/learnが作ったものは.qwen/skills/learned-skill-<name>/SKILL.mdに置かれ、フロントマターにsource: learnedが付きます。共有や利用の前に生成内容を確認するよう、ドキュメントに書かれています。自動生成されるAuto Skillは、30日間使われなければ「古い」と印が付き、auto-skill-*ディレクトリだけが自動整理の対象になります。
メモリーは、指示ファイルと自動メモリーの2階建てです。Qwen Codeの指示ファイルはQWEN.mdで、リポジトリにAGENTS.mdがあればそちらも読みます。自動メモリーは既定でオンで、~/.qwen/projects/<project>/memory/にMarkdownで保存されます。Claude CodeもCLAUDE.mdと自動メモリーを持ち、AGENTS.mdを単独または併用で読めます。
ここで注意したいのは、CLAUDE.mdをQwen Codeがそのまま読むかどうかです。確認できた範囲では、Qwen Codeのメモリーの説明はQWEN.mdとAGENTS.mdしか挙げていません。共通の指示はAGENTS.mdに寄せておくと、両方で読まれるので移行が軽くなります。
権限モードの違い
権限の設計は似ていますが、既定の起点が違います。
Qwen Codeの承認モードは5段階です。
- Plan: 読み取り専用で、編集もシェル実行もしない
- Ask Permissions: 編集もシェルも手動承認
- Auto-Edit: 編集は自動承認、シェルは手動承認
- Auto: 分類器(LLM)が安全な操作を自動承認し、危険な操作をブロックする
- YOLO: すべて自動承認
Autoが出荷時の既定と説明されています。
Claude Codeの権限モードはdefault(Manual)・acceptEdits・plan・auto・bypassPermissionsなどです。defaultModeで起動時のモードを決められ、permissions.disableAutoModeなどで管理者が特定のモードを禁止できます。名前は違っても、分類器を挟む中間モードがある点は共通です。
なお、Qwen Codeのモードの名前と挙動は、バージョンとともに変わっています。以前の「Default」は「Ask Permissions」に改名され、設定値tools.approvalMode: "default"は互換のために残されました。Claude Codeの権限を含む複数ツールの比較はAIコーディングエージェント 権限モデル比較にあります。
MCP・headless・SDK
MCPは両方に対応しています。Qwen Codeはqwen mcp addで、stdio・HTTP・SSEの3種のトランスポートを登録できます。
qwen mcp add --transport http my-server http://localhost:3000/mcp
claude mcp add --transport http my-server http://localhost:3000/mcp上の2行は、同じHTTPのMCPサーバーを、それぞれのCLIに登録する例です。書式が近いので、サーバー定義の使い回しは難しくありません。MCP対応を含む5ツールの比較はAIコーディングエージェントのMCP対応状況にあります。
headlessはqwen -p "..."とclaude -p "..."です。どちらもスクリプトやCIから呼べ、--continueや--resumeで前のセッションを引き継げます。Qwen Codeは--output-format stream-jsonでストリーム出力もできます。
SDKは、Qwen CodeがTypeScript・Python・Javaを用意します。PythonとJavaはドキュメント上でalpha扱いです。Claude Code側の入口はAgent SDKで、claude -pはそのCLI版として案内されています。
使い分けの早見表
| 状況 | 向く選択肢 | 理由 |
|---|---|---|
| Claudeモデルの機能をそのまま使いたい | 向く選択肢Claude Code | 理由Claude前提で作られている |
| 複数社のモデルやローカルモデルを試したい | 向く選択肢Qwen Code | 理由実行時にプロトコルを切り替えられる |
| Bedrock等の社内契約でClaudeを使う | 向く選択肢Claude Code | 理由サードパーティプロバイダーに対応 |
| チャットツール(Telegram等)から操作したい | 向く選択肢Qwen Code | 理由チャット連携が標準で載る |
| Slack連携やRoutinesで自動化したい | 向く選択肢Claude Code | 理由docsに手順がある |
| 既存のClaude Codeサブエージェントを流用 | 向く選択肢条件次第 | 理由.qwen/agents/に置けるがtools名は見直す |
条件の分かれ目は「どのモデルを使うか」です。モデルを変えると、同じ指示でも出力の傾向は変わります。この記事は機能の比較であり、コード生成の品質を比べたものではありません。
数値の読み方 — READMEの評価表について
Qwen CodeのREADMEには、SWE-bench Verified(500件)での評価表があります。Qwen 3.7 Maxを使い、Qwen Codeの7つのバージョンを各3回走らせた結果で、平均スコアは76.40%から77.80%の範囲です。
この数字は、Qwen CodeとQwenモデルの組み合わせに対する提供元の自己評価です。Claude Codeとの比較値ではありません。モデルやハーネスの条件が違うため、Claude Codeの数値と横に並べる根拠にはなりません。エージェントの選定に使うなら、自分のリポジトリで同じタスクを流して比べるのが確実です。
移行時にひっかかりやすい点
- 設定ディレクトリが違う:
.claude/と.qwen/は別です。サブエージェントやSkillsは、置き直しが必要です - 指示ファイルの名前:
CLAUDE.mdはQWEN.mdの代わりにはなりません。共通化するならAGENTS.mdが候補です - ツール名の差: フロントマターの
toolsは、製品ごとのツール名に合わせます - インストール: Qwen Codeは、スタンドアロンのインストーラー、npm(Node.js 22以上が必要)、Homebrewの3通りがあります。ネイティブWindowsでは、
claude-code委譲エージェントは起動できません(macOS・Linuxのみ、WSLを含む) - 認証: 初回起動または
/authでプロバイダーとAPIキーを設定します
npm install -g @qwen-code/qwen-code@latest
cd /path/to/your-project
qwenまとめ
Qwen CodeはClaude Codeに近い機能をOSSで備え、モデルを固定しない点で差別化しています。サブエージェント定義の互換フィールドや、Claude Codeを委譲先に呼べる仕組みまであり、併用の余地も広いです。一方、Claudeモデルの品質やSlack連携・Routinesなどが前提なら、Claude Codeが素直に合います。
同じOSS系の比較では、75以上のプロバイダーに接続できるOpenCodeとの違いをClaude CodeとOpenCodeの比較で扱っています。まずは小さなリポジトリで両方を動かし、モデル接続と権限の挙動を見比べるところから始められます。