はじめに
「Claude Code や Codex は使っているけれど、Qwen Code って何が違うの?」「無料で使えるって聞いたけど本当?」――そんな疑問を持っている方に向けた記事です。
Qwen Code(クウェン・コード)は、中国 Alibaba グループの Qwen チームが開発している、ターミナルで動く AI コーディングエージェント(AI に指示してコードを読ませたり直させたりする道具)です。見た目も使い方も Claude Code や Codex CLI とよく似ていて、実際に比べると できることはほぼ同じ でした。違いは機能の数ではなく、「特定の会社の AI に縛られず、どの会社の AI でも自分の PC の AI でも使う前提で作られている」 という立ち位置です。
この記事では、次の3つをまとめて扱います。
- 公式ドキュメントとソースコードを全部読んで拾った、Qwen Code の 全コマンド(スラッシュコマンド・CLI のサブコマンド・起動オプション)の一覧と、Claude Code・Codex CLI で同じことができるかの対応表
- このMacで実際に Qwen Code を動かした結果(インストール、ローカルの AI モデルでのバグ修正、承認の流れ、Arena、Web 画面など)
- 実際に使うとしたらどうか、本当に Qwen Code にしかない機能はあるのか(Claude Code・Codex でも同じことを試して確かめました)

図1:3つのツールの一番大きな違いは「どのモデルとつなぐ前提か」。Claude Code・Codex も設定すれば他のモデルにつなげますが、Qwen Code は形式の違う API を1つの設定に並べることが標準です
想定読者:Claude Code か Codex CLI をさわったことがある方、これから AI コーディングツールを選ぶ方。プログラミング経験は少しあれば読めるように、専門用語には説明を添えます。
この記事の確認範囲
| 項目 | 内容 |
|---|---|
| Qwen Code | 0.24.6(npm の最新版。2026年9月26日リリース、タグ v0.24.6) |
| 読んだ資料 | GitHub QwenLM/qwen-code の docs/users/(利用者向け73ファイル)と docs/developers/ の主要ページ、公式サイト(qwenlm.github.io/qwen-code-docs、日本語版あり)、README、ソースコード(コマンド定義・ツール定義・設定スキーマ)。main ブランチは 2026年9月27日のコミット 76c3dc5 |
| 比較対象 | Claude Code 2.1.280、Codex CLI 0.156.1(このMacに入っている版。ヘルプと公式ドキュメントで確認) |
| 検証マシン | MacBook Pro(Apple M5 Max・メモリ128GB)、Node.js 22.23 |
| 使ったモデル | LM Studio の Qwen3.8 27B(MLX 4bit)と、llama.cpp の Qwen3.5 4B(GGUF Q4_K_M)。どちらもこのMacの中だけで動かしています |
| 検証日 | 2026年9月27日 |
「ドキュメントに書いてあること」「ソースで確かめたこと」「このMacで動かして見たこと」は、本文で区別して書きます。特に、ドキュメントと実際の動きが食い違っていた箇所は、その都度明記しています。
Qwen Code とは
Gemini CLI から生まれて、独自に育ったツール
Qwen Code は、もともと Google の Gemini CLI(v0.8.2)をもとに作られました。README には「v0.1 からは本家との同期をやめ、独自に開発している」と書かれています。ソースコードの一部には今も Copyright 2025 Google LLC の表記や GEMINI_ で始まる環境変数の名残があり、設定ファイルの形(settings.json の入れ子構造)や mcpServers の書き方は Gemini CLI とよく似ています。
一方で、使い勝手はかなり Claude Code 寄りです。README 自身が「Claude Code を知っているなら、もう Qwen Code も分かる」と書いていて、権限ルールの書き方(Bash(git *) など)、フックのイベント名(PreToolUse など)、サブエージェントの定義ファイルまで Claude Code の形式をそのまま読めるように作られています。ロードマップのページには、目標として「Claude Code の機能に追いつくこと」と書かれているほどです。
ライセンスは Apache-2.0 のオープンソースで、本体は無料です。お金がかかるのは、つなぐ AI モデルの利用料だけです。
使える場所はターミナルだけではない
Qwen Code には、ターミナルのほかに次の入口があります(README とドキュメントより)。
| 入口 | 内容 | この記事での確認 |
|---|---|---|
| ターミナル | qwen コマンド | 実機で確認 |
| Web 画面 | qwen serve --open でブラウザに「Web Shell」を開く(実験的) | 実機で確認 |
| エディター | VS Code 拡張(ベータ)、Zed・JetBrains(ACP という共通の接続方式) | 文書で確認 |
| デスクトップアプリ | macOS / Windows / Linux 版を GitHub で配布 | 文書で確認 |
| チャット | Telegram・WeChat・DingTalk・Feishu などのボットとして動かす | 文書で確認 |
| プログラムから | ヘッドレス実行(画面なしの1回実行)、TypeScript / Python / Java の SDK | ヘッドレスは実機で確認 |
料金と認証:無料枠は終わっている
最初に大事な注意です。Qwen Code の古い紹介記事や動画では「Qwen のアカウントでログインすれば1日2,000回まで無料」と説明されていることがありますが、この Qwen OAuth の無料枠は2026年4月15日で終了 しています。公式の認証ドキュメント(auth.md)とトラブルシューティングにそう明記されていて、起動時の /auth の選択肢からも消えています(ただし --auth-type qwen-oauth や qwen auth の案内文には名前が残っています。以前ログインした人の古いトークンは短期間だけ使える場合がある、とドキュメントにあります)。
いま選べるのは次の3系統です。

図2:/auth で選べる接続方法。どれを選んでも settings.json の modelProviders に入り、あとから /model で切り替えられます
| 選択肢 | 中身 | 向いている人 |
|---|---|---|
| Alibaba ModelStudio | Coding Plan(個人向け月額・キーは sk-sp- で始まる)/ Token Plan(チーム向け従量課金)/ Standard API Key | Qwen 公式の最新モデル(qwen3.7-plus など)を使いたい人 |
| Third-party Providers | DeepSeek・Grok・MiniMax・Z.AI・Kimi・Idealab・ModelScope・OpenRouter・Requesty | すでに他社の API キーを持っている人 |
| Custom Provider | ローカルのサーバーや、OpenAI / Anthropic / Gemini 互換の任意の接続先 | 自分の PC で動かしたい人、社内の API を使う人 |
料金の具体的な金額はドキュメントには載っておらず、Alibaba Cloud のページへのリンクだけです。この記事では料金の比較はせず、費用ゼロで試せるローカルモデル で検証しました。
実際に、設定ファイルがない状態で qwen を起動すると、最初にこの画面が出ました。

実画面:設定がないと最初に接続方法の選択画面が出ます。ここで Esc で戻ると、Third-party Providers と Custom Provider も選べます
なお、qwen auth という CLI コマンドは削除されていて、打つと「/auth を使ってください」という案内と、環境変数での設定方法の一覧が出るだけでした。
$ qwen auth
⚠ qwen auth has been removed.
Interactive → run qwen and use /auth to configure providers
CI / Headless → set provider environment variables, for example OPENAI_API_KEY + OPENAI_BASE_URL + OPENAI_MODEL
Coding Plan → set BAILIAN_CODING_PLAN_API_KEY and use the Coding Plan base URL for your region
...(中略)...
Check auth status → /doctor
インストールとローカルモデルでの始め方(実機)
1. インストール
Node.js 22 以上が必要です。公式が案内している方法は3つあります。
# 方法1:npm(この記事で使った方法)
npm install -g @qwen-code/qwen-code@latest
# 方法2:Homebrew
brew install qwen-code
# 方法3:単体インストーラー(Node.js 不要)
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash
入ったか確かめます。
qwen --version
# 0.24.6
2. 【実機で発見】npm 版は検索用の部品に実行権限が付いていない
最初に質問を送ったとき、画面にこんな警告が出ました。
Ripgrep not available: spawn /opt/homebrew/lib/node_modules/@qwen-code/qwen-code/vendor/ripgrep/arm64-darwin/rg EACCES. Falling back to built-in grep.
Qwen Code は、ファイルの中身を高速に検索するために ripgrep(rg)という道具を同梱しています。ところが npm で配られている 0.24.6 のパッケージを調べると、この rg に 実行権限が付いていません(パッケージの中身を tar -tvzf で見ると -rw-r--r--)。そのため遅い代わりの検索に切り替わっていました。次のコマンドで直ります。
# npm でグローバルに入れた場合(Apple シリコンの Mac の例)
chmod +x "$(npm root -g)/@qwen-code/qwen-code/vendor/ripgrep/arm64-darwin/rg"
直したあと、/doctor の診断で「Ripgrep available」と表示されることを確認しました。Intel Mac や Linux は x64-darwin や x64-linux などのフォルダーになります。
3. ローカルのモデルにつなぐ
このMacには LM Studio(AI モデルを手元で動かすアプリ)で Qwen3.8 27B が入っていたので、それを使いました。LM Studio のサーバーを起動してモデルを読み込みます。
lms server start # OpenAI 互換のサーバーを http://localhost:1234 で起動
lms load qwen/qwen3.8-27b -y --identifier qwen3.8-27b
次に、Qwen Code の設定ファイル ~/.qwen/settings.json を作ります。公式の model-providers.md にある LM Studio の例をもとにしています。
{
"env": {
"LMSTUDIO_API_KEY": "lm-studio"
},
"modelProviders": {
"openai": [
{
"id": "qwen3.8-27b",
"name": "Qwen3.8 27B (LM Studio / ローカル)",
"envKey": "LMSTUDIO_API_KEY",
"baseUrl": "http://localhost:1234/v1",
"generationConfig": {
"timeout": 600000,
"streamIdleTimeoutMs": 600000,
"contextWindowSize": 262144
}
}
]
},
"security": { "auth": { "selectedType": "openai" } },
"model": { "name": "qwen3.8-27b" }
}
ポイントは3つです。
modelProviders.openaiは「OpenAI と同じ形式で話せるサーバー」の一覧です。LM Studio・Ollama・vLLM・llama.cpp はどれもこの形式で話せます- ローカルのサーバーは API キーを確認しないので、
"lm-studio"のようなダミー値で大丈夫です。キーそのものはenvに置き、envKeyで名前を指します security.auth.selectedTypeとmodel.nameを書いておくと、起動時の/auth画面を飛ばせます- 検証では、利用統計の送信(既定でオン)を止める
"privacy": { "usageStatisticsEnabled": false }も追加しました
さらに、llama.cpp の llama-server で Qwen3.5 4B を 8080 番で動かし、2つ目のモデルとして追加しました。llama.cpp の例は公式ドキュメントにはありませんが、同じ書き方で問題なく動きました。
llama-server -m Qwen3.5-4B-Q4_K_M.gguf --port 8080 -c 131072 --jinja --alias qwen3.5-4b
{
"id": "qwen3.5-4b",
"name": "Qwen3.5 4B (llama.cpp / ローカル)",
"envKey": "LLAMACPP_API_KEY",
"baseUrl": "http://127.0.0.1:8080/v1",
"generationConfig": { "contextWindowSize": 131072 }
}
ドキュメントのとおり、modelProviders を書き足すと Qwen Code を再起動しなくても /model の一覧に反映されました。

図3:この記事の検証環境。API キーもネット接続も要りません
4. 起動してみる
プロジェクトのフォルダーで qwen と打つと、対話画面が開きます。

実画面:起動直後。画面の文字は OS の言語設定に合わせて自動で日本語になりました。初回だけ「LLM 分類器が各ツール呼び出しを評価します」という自動モードの説明が出ます
気づいた点を挙げます。
- 画面が日本語:メニュー・ヒント・確認画面が日本語で表示されました(
/language ui ja-JPで明示もできます)。Claude Code と Codex CLI は画面が英語です(ただし返答は、3つとも日本語で頼めば日本語で返ってきます) - 既定の承認モードは「自動モード」:下の行に「自動モード (Shift + Tab で切り替え)」と出ています。詳しくは後の「承認モード」で説明します
- 1回の質問で送られる量が多い:
-o jsonで「1+1は?」を1回だけ実行すると、本体への入力は約1.4万トークンでした(指示文・ツールの説明・スキルの一覧など。対話画面の/contextの見積もりでは、指示文4.5k・組み込みツール11.2k・スキル2.3k トークンと表示)。加えて、応答のあとに「自動メモリ」が裏で約1.2万トークンの処理を走らせていました。クラウドの API ではこの分も料金になります
5. 引数つきの qwen "質問" はその場で終わる(Claude Code と逆)
1つ、Claude Code に慣れていると戸惑う点があります。qwen "質問" のように引数で質問を渡すと、答えを出して終了する1回実行 になります。対話を続けたいときは -i を付けます。
qwen "このリポジトリの構成を説明して" # 1回だけ答えて終わる(非対話)
qwen -i "このリポジトリの構成を説明して" # 最初の質問を送ったうえで対話を続ける
Claude Code は claude "質問" で対話が始まり、1回実行は claude -p です。Qwen Code にも -p はありますが、ヘルプでは「非推奨(位置引数を使ってください)」と表示されます。
1回実行の結果は JSON でも受け取れます。1+1は? と聞いたときの実測は次のとおりでした。
qwen "1+1は?数字だけ答えて" -o json
# 回答までの時間:約3.7秒(本体)/ 自動メモリの処理を含めた終了まで:約35秒
1回実行でも自動メモリの処理が終わるまで待つため、スクリプトで大量に呼ぶ場合は memory.enableManagedAutoMemory を false にするか、--bare(最小構成で起動)を検討するとよいでしょう。
基本操作:3つの記号と承認モード
入力欄の3つの記号
Qwen Code の入力欄の基本は、Claude Code・Codex CLI とほぼ同じです。

図4:入力欄の記号とキーの比較
| 記号 | 意味 | 例 |
|---|---|---|
/ | コマンドやスキルを呼ぶ | /help、/model、/review |
@ | ファイルやフォルダーの中身を渡す | @src/cart.js このコードを説明して |
! | シェル(ターミナル)のコマンドを直接実行。! だけ打つとシェルモード | !git status |
! で実行したコマンドには、環境変数 QWEN_CODE=1 が設定されます。実機で !git diff --stat を打つと、結果が会話の中に表示され、入力欄の先頭が ! のままのシェルモードになりました(Esc で戻ります)。
【実機】@ファイルでバグを説明させる
検証用に、わざとバグを3つ入れた小さな Node.js のプロジェクト(demo-shop)を用意しました。買い物かごの小計と税込み合計を計算するだけのコードで、テストは3本ともわざと失敗します。
// src/cart.js(検証用。バグ入り)
export const TAX_RATE = 0.1;
export function subtotal(items) {
let sum = 0;
for (let i = 1; i < items.length; i++) { // ← 0 から数えていない
sum += items[i].price * items[i].qty;
}
return sum;
}
// 税込み合計(1円未満は切り捨て)
export function total(items, coupon = 0) {
const taxed = subtotal(items) * (1 + TAX_RATE);
return Math.round(taxed) - coupon; // ← 四捨五入になっている・マイナスになりうる
}
@src/cart.js このファイルにあるバグを、コードは直さずに箇条書きで説明して と送ると、ローカルの 27B モデルが約1分で3つとも言い当てました(先頭の商品が抜けるループ、切り捨てと四捨五入の食い違い、クーポンでマイナスになる問題)。さらに「入力が配列でないと落ちる」という4つ目の注意まで付けてくれました。
承認モード:5段階、既定は「自動モード」
AI がファイルを書き換えたりコマンドを実行したりする前に、人間に確認するかどうかを決めるのが 承認モード です。Qwen Code は5段階あり、Shift+Tab(Windows は Tab)で順に切り替わります。

図5:承認モードの比較。Codex は「段階」ではなく、隔離(サンドボックス)と承認の組み合わせで決めます
| 設定値 | 画面の表示(日本語) | ファイル編集 | コマンド実行 |
|---|---|---|---|
plan | プランモード | しない(読むだけ) | しない |
default | 許可を確認 | 毎回確認 | 毎回確認 |
auto-edit | 編集を自動承認 | 自動 | 確認 |
auto | 自動モード(既定) | AI の分類器が判定 | AI の分類器が判定 |
yolo | YOLO モード | 自動 | 自動 |
実機で Shift+Tab を押すと、自動モード → YOLO モード → プランモード → 許可を確認 → 編集を自動承認 → 自動モード の順に下の表示が変わりました。/approval-mode と打つと、同じ5つが説明つきの一覧で出ます(Tab で「このプロジェクトだけ」「自分の全プロジェクト」の保存先も選べます)。
既定値について注意:ドキュメントの中で既定の承認モードの書き方が食い違っています。承認モードのページには「Auto が既定」とも「Ask Permissions(default)が最初のモード」とも書かれ、クイックスタートには「常に許可を求める」とあります。ソースコードの設定定義では auto が既定値で、実機でも自動モードで起動しました。実際の既定は Auto と考えてください。
「許可を確認」モード(--approval-mode default)で README への追記を頼むと、次のような確認画面が出ました。変更内容の差分を見せたうえで、今回だけ許可・常に許可・拒否を選びます。

実画面:ファイル編集の確認。コマンド実行の確認では「このプロジェクトで npm test を常に許可」「このユーザーで常に許可」も選べました
自動モードの中身と、ローカルモデルで起きたこと
既定の自動モードは、Claude Code の auto モードとほぼ同じ考え方です。ツールを使うたびに次の順で判定します(auto-mode.md とソースで確認)。
permissions.deny(拒否ルール)に当たれば即ブロック- 作業フォルダー内のファイル編集や、読むだけのツールは判定なしで許可
- それ以外(シェル・Web 取得・サブエージェント起動など)は AI の 分類器 が「止めるべきか」を判定

図6:自動モードの判定順と、ローカルモデルで起きた「時間切れ」
ここで実機ならではの問題にぶつかりました。自動モードのまま「npm test を実行して、失敗しているテストが全部通るように直して」と頼むと、npm test を実行する直前で止まり、この画面になったのです。

実画面:分類器が時間内に答えられず、手動の確認に切り替わった状態
原因をソース(packages/core/src/permissions/classifier.ts)で調べると、分類器の1段目には 10秒の制限時間 があり、時間切れになると安全のため手動確認に切り替える作りでした。分類器は「高速モデル(fast model)」を使い、未設定ならメインのモデルを使います。今回は高速モデルを設定していなかったので、手元の 27B モデルが長い判定用プロンプトを10秒で読み切れなかったわけです。
この制限時間は、ドキュメントには載っていませんが設定で延ばせます(設定スキーマに permissions.autoMode.classifier.timeouts があります)。
{
"permissions": {
"autoMode": {
"classifier": {
"timeouts": { "stage1Ms": 120000, "stage2Ms": 300000 }
}
}
}
}
これを入れてやり直すと、分類器が npm test を安全と判定して自動で実行し、最後まで止まらずに進みました。クラウドの速いモデルなら10秒で足りるはずなので、これは ローカルモデルで自動モードを使うときの注意点 です。軽いモデルを /model --fast で分類器用に指定する方法もあります。
【実機】自動モードでバグを直させる
制限時間を延ばしたあとの一部始終です。

録画:テストの確認 → npm test(失敗3件)→ src/cart.js の修正 → npm test(成功3件)まで、自動モードで約100秒
Qwen Code が行った修正は次の3点で、どれも正解でした。念のため自分でも npm test を実行し、3件とも通ることを確認しています。
- for (let i = 1; i < items.length; i++) {
+ for (let i = 0; i < items.length; i++) {
...
- const taxed = subtotal(items) * (1 + TAX_RATE);
- return Math.round(taxed) - coupon;
+ const taxed = Math.floor(subtotal(items) * (1 + TAX_RATE));
+ return Math.max(0, taxed - coupon);
作業フォルダー内の編集は「近道」で自動許可され、npm test は分類器の判定で自動実行されました。終わったあと /diff を開くと、変更をファイルごとに確認できます(←/→ で「今の差分」と「会話のターンごとの差分」を切り替えられます)。

実画面:/diff でファイルを選んで Enter を押すと、行ごとの差分が出ます
Qwen Code の全コマンド一覧と、Claude Code・Codex での対応
ここからが本題の一覧です。Qwen Code のコマンドは次の4種類に分かれます。
- 組み込みのスラッシュコマンド(
/modelなど) - 同梱スキル(スラッシュで呼べる、最初から入っている手順書。
/reviewなど) - CLI のサブコマンド(ターミナルで打つ
qwen mcp addなど) - 起動オプション(
qwen --model ...など)
一覧の作り方
公式ドキュメントのコマンド表(commands.md)だけでは足りないため、次の3つを突き合わせました。
- ドキュメント(commands.md ほか全ページ)
- ソースコードのコマンド登録箇所(
BuiltinCommandLoader.ts)と各コマンドの定義 - 実機の
/help画面(一覧を全ページめくって記録)
実機の /help には「Built-in Commands (67)」「Bundled Skills (18)」と表示されました。コマンド名の後ろには、どの実行方法で使えるかの印が付いています。[interactive] は対話画面だけ、[all] は1回実行や他のアプリからでも使える、[i] [acp] は対話画面とエディター連携で使える、という意味です。

実画面:/help の「commands」タブ(組み込み67個)。Tab で「custom-commands」タブ(同梱スキル・自作コマンド・MCP のプロンプト)に切り替わります
表の記号の意味は次のとおりです。
- ○:同じ名前か、ほぼ同じ働きのコマンドがある(名前が違う場合は併記)
- △:近い機能はあるが、形が違う(設定ファイル・CLI のサブコマンド・キー操作で行うなど)
- ×:同等のものが見当たらない
Claude Code 2.1.280・Codex CLI 0.156.1 の一覧は、それぞれのヘルプ・公式ドキュメント・(Codex は)ソースコードで確認しました。
① 会話とセッションの管理
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/clear(別名 /reset /new) | 会話を消して新しく始める | ○ /clear | ○ /clear /new |
/resume(別名 /continue) | 過去の会話を選んで再開 | ○ /resume | ○ /resume |
/delete | 過去の会話を削除 | △ claude rm(バックグラウンド分) | ○ /delete |
/rename(別名 /tag)[--auto] | 会話に名前を付ける。--auto で AI が命名 | ○ /rename | ○ /rename |
/branch | 今の会話を新しいセッションに分岐 | ○ /branch | ○ /fork |
/fork <指示> | 会話全体を引き継いだ「分身」をバックグラウンドで動かす | ○ /fork /subtask | △ /fork(会話の複製) |
/rewind(別名 /rollback) | 会話を前のターンまで巻き戻す | ○ /rewind | △ Esc 2回で直前の発言を編集 |
/restore [ID] | ツール実行前のチェックポイントにファイルを戻す | ○ /rewind(コードも戻せる) | × |
/compress(別名 /summarize) | 会話を要約してコンテキストを空ける | ○ /compact | ○ /compact |
/compress-fast | AI を使わずに古いツール出力を削って圧縮 | × | × |
/summary [パス] | プロジェクトの要約を .qwen/PROJECT_SUMMARY.md に保存 | × | × |
/recap | 今の会話を1行で要約 | ○ /recap | ○ /recap |
/export [md|html|json|jsonl] [パス] | 会話をファイルに書き出す | ○ /export(テキスト) | ○ /export(Markdown) |
/copy [N] [言語|code|latex|mermaid] | 応答やコードをクリップボードへ | ○ /copy | ○ /copy |
/history collapse-on-resume|expand-on-resume|expand-now | 再開時の履歴の折りたたみ表示を設定 | × | × |
/btw <質問>(?btw でも可) | 本題を止めずにちょっとした質問 | ○ /btw | ○ /side /btw |
実機メモ:/export md は作業フォルダーに qwen-code-export-日時.md を作りました。/btw は本題の会話に入らず、入力欄の上に枠で答えが出ました。

実画面:/btw の答えは枠で表示され、閉じると会話の履歴には残りません
② 画面と作業場所
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/help(別名 /?) | ヘルプ(ショートカット・全コマンド) | ○ /help | △ ? キー |
/theme | 配色テーマを選ぶ | ○ /theme | ○ /theme |
/vim | 入力欄の Vim モード | △ /config から | ○ /vim |
/editor | 外部エディターを選ぶ | △ Ctrl+G($EDITOR) | △ Ctrl+G |
/statusline [指示] | 画面下のステータス表示を設定。文章で指示すると AI が作る | ○ /statusline | ○ /statusline |
/terminal-setup | 改行キー(Shift+Enter など)の設定を入れる | ○ /terminal-setup | × |
/directory add|show(別名 /dir) | 作業フォルダーを追加・表示 | ○ /add-dir | △ --add-dir(起動時) |
/cd <パス> | 会話を保ったまま作業フォルダーを移動 | ○ /cd | ○ /cd |
/diff | 差分ビューア(今の差分/ターンごとの差分) | ○ /diff | ○ /diff |
/language ui|output <言語> | 画面の言語・返答の言語を設定(日本語 ja-JP あり) | △ /config の language(返答の言語) | × |
/voice [hold|tap|off|status] | 音声入力 | ○ /voice | ○ /voice |
③ モデルとツール
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/model [モデル] | モデルを切り替え。モデル 質問 でその1問だけ別モデル(同じ接続先のモデルに限る) | ○ /model | ○ /model |
/model --fast|--voice|--vision|--compaction|--image | 補助用モデル(候補表示・音声・画像の読み取り・圧縮・画像生成)を設定 | × | × |
/model --project|--global | モデルの選択をプロジェクト/全体に保存 | △ /model は既定として保存 | △ config.toml |
/effort [low〜max] | 推論の強さ。接続先ごとに自動で変換 | ○ /effort | △ /model の中で選ぶ |
/advisor [モデル|off|review] | 別モデルに第二の意見をもらう(読むだけ) | ○ /advisor | × |
/output-style [名前] | 返答の書き方(Concise・Explanatory・Learning など) | ○ /output-style | × |
/tools [desc] | 使えるツールの一覧 | △ /context の内訳 | × |
/mcp [desc|nodesc|schema] | MCP サーバーの管理画面 | ○ /mcp | ○ /mcp |
/import-config [all|claude-code|claude-desktop] | Claude Code / Claude Desktop の MCP 設定を取り込む | △ claude mcp add-from-claude-desktop | △ /import(Claude Code から) |
/extensions list|manage|install|explore | 拡張機能の管理 | ○ /plugin | ○ /plugins |
/reload-plugins | 拡張の変更を再読み込み | ○ /reload-plugins | × |
/skills | スキル一覧のパネル(検索・オン/オフ) | ○ /skills | ○ /skills |
/learn <パス|URL|文章> [重点] | 資料からプロジェクト用スキルを自動で作る(動画も可) | × | △ 同梱スキル $skill-creator(対話で作る) |
/curator [status|run|pin|unpin|restore] | 自動で作られたスキルの整理(古いものを保管へ) | × | × |
/hooks [list] | フックの一覧 | ○ /hooks | ○ /hooks |
/permissions | 許可・確認・拒否のルールを編集 | ○ /permissions | ○ /permissions(プリセット) |
/approval-mode [モード] | 承認モードを変更 | △ Shift+Tab・--permission-mode | ○ /permissions |
/plan [内容|exit] | プランモードに入る/抜ける | ○ /plan | ○ /plan |
④ 記憶(メモリ)
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/init | コードを解析して QWEN.md(指示ファイル)を作る | ○ /init(CLAUDE.md) | ○ /init(AGENTS.md) |
/memory | メモリの管理画面(自動メモリのオン/オフ、QWEN.md を開く) | ○ /memory | ○ /memories |
/remember <内容> | 覚えておくことを保存 | × | × |
/forget <内容> | 自動メモリから一致するものを消す | × | × |
/dream | 自動メモリの重複や古い項目を整理 | × | × |
/dream と /forget は、自動メモリが使える状態のときだけ表示されます。
⑤ エージェント・自動化
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/agents manage|create | サブエージェント(専門の助手)の管理・作成 | △ .claude/agents/ を直接編集 | △ /agents(進行状況の画面)・/subagents |
/arena start|stop|status|select | 複数モデルに同じ課題を解かせて比べる | △ 専用機能なし(タブと作業コピーで手作業) | △ codex cloud exec --attempts(同じ AI を複数回・クラウド) |
/goal [目標|set|edit|pause|resume|clear] | 目標を満たすまで自走させる(別の AI が達成を判定) | ○ /goal | ○ /goal |
/tasks | バックグラウンドの作業一覧 | ○ /tasks | △ /ps(裏で動くターミナル) |
/peers | 同じ PC の別セッションから届いたメッセージを審査 | △ セッション間メッセージの機能はある(審査用のコマンドはない) | △ codex queue(既存セッションへ指示を予約) |
/setup-github | GitHub Actions(qwen-code-action)を設定 | ○ /install-github-app | × |
⑥ 情報・設定・診断
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/status(別名 /about)・/status paths | バージョン・接続先・モデル・保存場所を表示 | ○ /status | ○ /status |
/stats(別名 /usage)[model|tools|skills|daily|monthly|export] | 使用量の統計。日別・月別、CSV/JSON 出力も | ○ /usage | ○ /usage |
/context [detail] | コンテキストの使用量の内訳 | ○ /context | △ /status |
/settings | 設定画面 | ○ /config | △ /experimental など個別 |
/config [キー[=値]] | 設定を「点区切りの名前」で読み書き | ○ /config key=value | △ -c オプション |
/auth(別名 /connect /login) | 接続先(プロバイダー)の設定 | ○ /login | △ codex login |
/doctor [memory|cpu-profile|rollback] | 環境の診断。メモリ・CPU の分析、単体版の巻き戻しも | ○ /doctor | △ codex doctor |
/docs | ドキュメントをブラウザで開く | × | × |
/ide [status|install|enable|disable] | エディター連携の管理 | ○ /ide | △ /ide(エディターの選択範囲などを取り込むだけ) |
/insight | 会話履歴からプログラミングの傾向をまとめる | ○ /insights | × |
/bug <内容> | 不具合を報告 | ○ /bug /feedback | ○ /feedback |
/update | 更新を確認してインストール | △ claude update | △ codex update |
/quit(別名 /exit) | 終了 | ○ /exit | ○ /quit /exit |
実機メモ:/doctor は「11 passed」(認証・設定・ツール34個・Ripgrep・Git など)と表示し、/status は接続先の URL・モデル・高速モデル・メモリ使用量(約243MB)まで見せてくれました。/context の内訳は、指示文 4.5k・組み込みツール 11.2k・メモリ 1.4k・スキル 2.3k トークンでした。

実画面:/context。会話が長くなったとき、どこで自動圧縮が始まるか(Auto threshold)も分かります
⑦ 条件付きのコマンドと、ドキュメントとの差
次のコマンドは、ドキュメントには載っているものの、条件を満たさないと一覧に出ません。
| コマンド | 出る条件 | Claude Code | Codex CLI |
|---|---|---|---|
/trust | 設定 security.folderTrust.enabled: true(フォルダーの信頼機能。既定はオフ) | △ 起動時の信頼確認 | △ config で信頼 |
/lsp | 起動時に --experimental-lsp | △ LSP はプラグインで | × |
/workflows [runId] | 設定 tools.workflowsEnabled か QWEN_CODE_ENABLE_WORKFLOWS=1 | ○ /workflows | × |
/log | Web 画面(Web Shell)でだけ使える、コミット履歴の表示 | × | × |
/commit [指示] | 0.24.6 には未収録。GitHub の main ブランチのドキュメントとソースにだけある | × | × |
/commit は、ドキュメントの表に載っているのに実機で打つと出てきませんでした。調べると、v0.24.6 のタグと main の差分で commands.md に /commit の行が追加されていました。GitHub のドキュメントは次のリリースの内容を先に含んでいることがある ので、見つからないコマンドはリリースノートと照らし合わせてください。
⑧ 同梱スキル(18個)
スキルは「特定の作業の手順書」で、/名前 で呼べるほか、AI が必要と判断すると自分で読み込みます。実機の /help の「Bundled Skills (18)」は次のとおりでした。
| スキル | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
/review [PR番号|パス] [--effort] [--comment] [--fix] | 多数のエージェントで並列にコードレビュー | ○ /code-review(/review) | ○ /review |
/simplify [重点] | 最近の変更を整理して直す | ○ /simplify | × |
/loop [間隔] [指示]|list|clear | 指示を定期的に繰り返す | ○ /loop | × |
/batch <作業> <ファイル> | 多数のファイルを並列で処理 | ○ /batch | × |
/batch-api <作業> | DashScope の Batch API(半額・非同期)で一括処理 | × | × |
/goal-draft [やりたいこと] | あいまいな目標を /goal 用の判定しやすい文にする | × | × |
/coordinate <目標> | 読むだけの作業者と書き手1人でチームを組ませる | △ Agent Teams | × |
/agent-delegation | サブエージェントへの指示の書き方の資料 | × | × |
/dataviz | グラフ・ダッシュボードのデザイン指針 | ○ /dataviz | × |
/new-app | 新しいアプリをゼロから作る手順 | × | × |
/qc-helper <質問> | Qwen Code の使い方を公式ドキュメントで答える | △ 専用ガイドのエージェント | × |
/computer-use | デスクトップアプリの操作 | △ デスクトップアプリ側 | × |
/browser-use | 自分の Chrome の操作(拡張機能が必要) | △ /chrome | × |
/extension-creator <パス> | Qwen Code の拡張機能を作る | △ claude plugin init | △ 同梱スキル $plugin-creator |
/stuck [PID] | 固まった・遅い Qwen Code を診断 | × | × |
/workflow-authoring | ワークフロー(複数エージェントを動かす台本)の書き方資料 | ○ /workflow-authoring | × |
/workflow-creator | 再利用できるワークフローを作る | × | × |
/zvec-grep-install | 意味検索の道具 zvec-grep を入れる | × | × |
このほか、自分で作るコマンドは ~/.qwen/commands/(全体)と .qwen/commands/(プロジェクト)に Markdown で置きます。サブフォルダーは : 区切りの名前になり(git/commit.md → /git:commit)、本文では {{args}}(引数)、!{コマンド}(実行結果の差し込み)、@{ファイル}(ファイルの差し込み)が使えます。MCP サーバーが提供するプロンプトもスラッシュコマンドになります。
【実機で発見】Codex 用のスキルが Qwen の組み込みコマンドを上書きする
一覧を作る途中で、このMacでは /help の件数が「Built-in Commands (65)」「Bundled Skills (16)」と、別の環境より少ないことに気づきました。原因は スキルの読み込み元 です。

図7:スキルの読み込み元。同じ名前なら上の段が勝ちます
ソース(packages/core/src/config/storage.ts)では、スキルの置き場所が ['.qwen', '.agents'] の2つになっていて、~/.qwen/skills と一緒に ~/.agents/skills も読みます。このフォルダーは Codex CLI の公式ドキュメントがユーザー用スキルの置き場所としている共通のフォルダーで、このMacには Codex や Cursor 向けに入れていたスキルのフォルダーが28個ありました(/help には27個が [User] として表示)。そのうち goal・loop・review・statusline が Qwen Code の同名コマンドより優先され、たとえば /goal の説明が「Set a goal that Codex will pursue to completion.」(Codex 用のスキルの説明)に置き換わっていました。

実画面:[User] と付いているのが ~/.agents/skills から読まれたスキル。組み込みの /goal ではなく Codex 用のスキルが動く状態です
.agents を読むことは公式ドキュメント(skills.md)には書かれていません。Codex や Cursor と併用している方は、/help の一覧で [User] の付いたコマンドを確認し、ぶつかる名前はスキル側のフォルダー名を変えるか、設定 skills.disabled で止めてください。逆に言えば、Codex 用に作ったスキルがそのまま Qwen Code でも使える ということでもあります。
CLI のサブコマンド(ターミナルで打つもの)
qwen --help の「Commands」は13個でした(review には /review スキルが内部で使う補助コマンドが40個ほどあり、利用者向けは qwen review run だけです)。
| サブコマンド | 何をする | 実機 | Claude Code | Codex CLI |
|---|---|---|---|---|
qwen [質問] | 起動。質問を付けると1回実行 | ✓ | ○ claude | ○ codex |
qwen mcp add|remove|list|reconnect|approve|reject | MCP サーバーの管理 | ✓ | ○ claude mcp | ○ codex mcp |
qwen extensions install|uninstall|list|update|enable|disable|link|new|settings|sources | 拡張機能の管理 | ✓ | ○ claude plugin | ○ codex plugin |
qwen sessions list|ps|controllers | 保存した会話・実行中の会話の一覧、外部から操作する鍵の発行 | ✓ | △ claude agents | △ codex resume --all |
qwen serve | ローカルの HTTP デーモン+Web 画面(実験的) | ✓ | △ claude remote-control | △ codex app-server |
qwen channel start|stop|status|reload|set|pairing|configure-weixin | チャットアプリとの連携 | 一部 | △ Channels(プレビュー) | △ Codex cloud に Slack・Linear から依頼 |
qwen board show|task|claim|done|ask|answer|decline|prune | エージェント同士の掲示板 | ✓ | × | × |
qwen batch run|collect|retry|cancel|list|check|clean | DashScope Batch API での一括処理 | × | × | × |
qwen review run [対象] [--json] [--fail-on request-changes] | コードレビューを非対話で(CI 向け) | × | △ claude ultrareview | ○ codex review |
qwen sandbox [--verify] [-- コマンド] | サンドボックスの状態確認・1コマンドの隔離実行 | ✓ | × | ○ codex sandbox |
qwen update | 更新 | ✓ | ○ claude update | ○ codex update |
qwen auth | 削除済み(案内を表示するだけ) | ✓ | ○ claude auth | ○ codex login |
qwen hooks(別名 hook) | 何もせず終了(対話画面の /hooks を使う) | ✓ | × | × |
【実機】MCP サーバーの「承認待ち」
MCP(AI に外部の道具をつなぐ共通規格)の動きを見るために、依存パッケージなしで書いた「税込み価格を返すだけ」の小さな MCP サーバー(tax-server.mjs)を用意し、プロジェクト用に登録しました。
$ qwen mcp add --scope project tax-demo node ../mcp-demo/tax-server.mjs
MCP server "tax-demo" added to project settings. (stdio)
$ qwen mcp list
Configured MCP servers:
● tax-demo: node ../mcp-demo/tax-server.mjs (stdio) - Pending approval
$ qwen mcp approve tax-demo
Approved MCP server "tax-demo" (bound to its current config).
$ qwen mcp list
✓ tax-demo: node ../mcp-demo/tax-server.mjs (stdio) - Connected
プロジェクトのフォルダーに置かれた MCP の設定は、qwen mcp approve で承認するまで接続されませんでした(ドキュメントでは説明が薄く、ソースの approve.ts に「gated MCP server」とあります)。他人のリポジトリを開いたとたんに知らないサーバーが動く、という事故を防ぐ仕組みです。なお qwen mcp add の既定の保存先は、開発者向けドキュメントには「project」と書かれていますが、ソースと利用者向けドキュメントでは「user」です。
承認後に「tax-demo の add_tax ツールで 1980 円の税込み価格を出して」と1回実行で頼むと、tool_search(必要なツールをあとから読み込む仕組み)でツールを見つけ、MCP のツールを呼んで「税込み 2178 円」と答えました。なお承認モードのドキュメントには「ヘッドレス(1回実行)の既定は Ask Permissions」とありますが、このときの統計(-o json の stats)では MCP ツールの呼び出しが auto_accept と記録されていて、設定どおり自動モードの判定で通っていました。
【実機】エージェント同士の掲示板 qwen board
qwen board は、別々に動いているエージェント(Qwen Code でも Codex でも)が、同じ PC のファイルを通してタスクや質問をやり取りする仕組みです(実験的)。人間がコマンドで試すとこうなります。
$ qwen board task "税計算の丸め方を確認する" --board shop --as qwen
t-1d01a480-… 税計算の丸め方を確認する
$ qwen board claim t-1d01a480-… --board shop --as codex
t-1d01a480-… claimed by codex
$ qwen board ask codex "切り捨てで合ってる?" --board shop --as qwen
a-94193665-… -> codex
$ qwen board answer a-94193665-… "はい、1円未満切り捨てです" --board shop --as codex
$ qwen board done t-1d01a480-… --board shop --as codex --note "Math.floor に統一"
$ qwen board show --board shop
board: shop
? a-94193665-… [answered] qwen -> codex: 切り捨てで合ってる?
- t-1d01a480-… [completed] codex: 税計算の丸め方を確認する
--as は名札のようなもので、認証ではありません。記録は ~/.qwen/boards/ に保存されます。
そのほかのサブコマンドの実機結果
$ qwen sessions ps
NAME KIND PID AGE DIRECTORY
demo-shop-87 tui 57893 10s …/lab/demo-shop
$ qwen sandbox
Tool execution sandbox: none
Configure tools.executionSandbox in User or System settings.
$ qwen update
Qwen Code 0.24.6 is up to date!
$ qwen extensions new ../ext-demo commands # 拡張機能のひな形を作る
$ qwen extensions link ../ext-demo # 開発中の拡張を登録(確認に Y で答える)
$ qwen extensions list
✓ commands-example (1.0.0)
Commands:
/fs:grep-code
qwen extensions install には「Claude Code のマーケットプレイスのプラグイン」「Gemini CLI の拡張」「Qoder のプラグイン」「Agent Plugins v1」「npm パッケージ」をそのまま指定でき、Qwen Code 用に自動で変換してくれます(extension/introduction.md)。ただし、これも Qwen Code だけではありません。Codex のプラグインも、Claude 互換のマーケットプレイスやプラグイン(.claude-plugin/plugin.json)と Agent Plugins 1.0 をそのまま扱えます(Codex の公式ドキュメント)。Qwen Code は、これに加えて Gemini CLI の拡張と Qoder のプラグインも入れられます。
起動オプション(フラグ)の全一覧と対応表
qwen --help に出るオプションを、用途ごとにまとめました。非推奨のものも含めています。位置引数の行を △ にしているのは、「引数を付けるとそのまま1回実行になる」という Qwen Code の動きが、他の2つでは別のフラグ・サブコマンドに分かれているためです。
| Qwen Code | 何をする | Claude Code | Codex CLI |
|---|---|---|---|
位置引数 [質問] | 1回実行(対話は -i) | △ claude -p | △ codex exec |
-p, --prompt(非推奨) | 1回実行 | ○ -p | ○ codex exec |
-i, --prompt-interactive | 最初の質問を送って対話を続ける | ○ claude "質問" | ○ codex "質問" |
-m, --model | モデルを指定 | ○ --model | ○ -m |
--fallback-model | 混雑時(429/503/529)の代わりのモデル(最大3つ) | ○ --fallback-model | × |
--advisor | 第二の意見用のモデル | ○ --advisor | × |
--auth-type | 接続の種類(openai・openai-responses・anthropic・gemini・vertex-ai・qwen-oauth) | △ 環境変数 ANTHROPIC_BASE_URL で接続先を変更 | △ -c model_provider |
--openai-api-key / --openai-base-url | OpenAI 互換の接続先を直接指定 | × | △ --oss / --local-provider |
-c, --continue | このフォルダーの直近の会話を再開 | ○ -c | ○ codex resume --last |
-r, --resume [ID] | 会話を選んで再開 | ○ -r | ○ codex resume |
--session-id | 会話の ID を指定 | ○ --session-id | × |
--fork-session | 再開した会話から分岐 | ○ --fork-session | ○ codex fork |
--chat-recording | 会話をディスクに記録するか | △ --no-session-persistence | △ codex exec --ephemeral |
-o, --output-format text|json|stream-json | 1回実行の出力形式 | ○ --output-format | △ codex exec --json |
--input-format text|stream-json | 標準入力の形式 | ○ --input-format | × |
--include-partial-messages | 途中経過も JSON で流す | ○ 同名 | × |
--json-schema | 最終回答を指定の JSON Schema に合わせる | ○ --json-schema | ○ codex exec --output-schema |
--json-fd / --json-file / --input-file | 画面を出したまま JSON を外に流す・外から入力(Dual Output) | × | × |
--system-prompt / --append-system-prompt | 指示文の置き換え・追記 | ○ 同名 | △ 設定ファイル |
--output-style | 返答の書き方 | × | × |
--approval-mode plan|default|auto-edit|auto|yolo | 承認モード | ○ --permission-mode | △ -a と -s |
-y, --yolo | すべて自動承認 | ○ --dangerously-skip-permissions | ○ --dangerously-bypass-approvals-and-sandbox |
--allowed-tools | 確認なしで使ってよいツール | ○ --allowedTools | × |
--exclude-tools / --core-tools | ツールを除外/限定 | ○ --disallowedTools / --tools | × |
-s, --sandbox / --sandbox-image(非推奨) | サンドボックス(Docker・Podman・macOS Seatbelt)で動かす | △ 設定の sandbox | ○ -s |
--mcp-config / --allowed-mcp-server-names | MCP の設定を渡す/使うサーバーを名前で限定 | ○ --mcp-config / △ --strict-mcp-config(他の設定を無視) | △ -c mcp_servers… |
-e, --extensions / -l, --list-extensions | 使う拡張の指定/一覧 | △ --plugin-dir | × |
--include-directories(別名 --add-dir) | 作業フォルダーを追加 | ○ --add-dir | ○ --add-dir |
--worktree [名前|#PR|URL] | git worktree(別の作業コピー)の中で始める | ○ -w | ○ --worktree |
--max-session-turns | ターン数の上限 | ○ --max-turns | × |
--max-wall-time / --max-tool-calls | 実行時間・ツール回数の上限(超えたら終了コード55) | △ --max-budget-usd(金額) | × |
--max-subagent-depth | サブエージェントの入れ子の深さ | × | × |
--disabled-slash-commands | 特定のスラッシュコマンドを無効化 | △ --disable-slash-commands(全部) | × |
--bare | 自動検出を止めた最小構成 | ○ --bare | × |
--safe-mode | 設定・スキル・フック・MCP を全部切って起動(切り分け用) | ○ --safe-mode | △ codex exec --ignore-user-config |
--acp | エディター連携(ACP)用に起動 | × | × |
--experimental-lsp | 言語サーバー(定義ジャンプなど)を使う | × | × |
--channel | 呼び出し元の識別(VSCode・SDK・CI など) | × | × |
--restore-ask-user-question | デーモンで再開時に、未回答の質問を出し直す | × | × |
--screen-reader | 読み上げソフト向けの表示 | ○ --ax-screen-reader | × |
--insecure | TLS 証明書の検証をしない(自己署名の社内環境向け) | × | × |
--openai-logging / --openai-logging-dir | API 呼び出しを記録 | × | × |
-d, --debug | デバッグ表示 | ○ --debug | × |
--proxy(非推奨) | プロキシ | × | × |
--telemetry と --telemetry-* 5個(計6個、非推奨) | 利用状況の計測 | × | × |
-v, --version / -h, --help | バージョン・ヘルプ | ○ | ○ |
【実機】画面なしで使う(ヘッドレス)
CI やスクリプトから使うときの動きも確かめました。
# ツールを1回も使わせない上限を付けて、ツールが必要な作業を頼む
$ qwen "npm test を実行して結果を教えて" --max-tool-calls 0
Run aborted: tool-call budget of 0 exceeded (--max-tool-calls); observed 1.
# 終了コード 55
# 返答を JSON Schema どおりの形で受け取る
$ qwen "src/cart.js を読み、関数名と役割を structured_output ツールで返して" \
--json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"}},"required":["name","role"]}}},"required":["functions"]}'
{"functions":[{"name":"subtotal","role":"商品 { name, price, qty } の配列から、単価×数量の合計(税抜き小計)を返す"},{"name":"total","role":"小計に TAX_RATE(10%) をかけた税込み金額(1円未満は切り捨て)からクーポン額を差し引き、下限を 0 に丸めて合計を返す"}]}
--json-schema は、最初「関数名と役割を答えて」とだけ頼んだときは、ローカルの 27B が表形式の文章で答えてしまい、「structured_output ツールを呼ばなかった」として 終了コード1 で失敗しました。プロンプトで「structured_output ツールで返して」と明示すると成功しました(約19秒)。形をそろえる仕組みはモデルがツールを正しく呼べることが前提なので、ローカルの中規模モデルでは指示を明確にするのが確実です。
-o stream-json では、system(init)→ assistant(考え中・ツール呼び出し)→ user(ツールの結果)→ result の順に、1行1つの JSON が流れてきました。
設定ファイル・指示ファイル・拡張の仕組みを比べる
3つのツールは「どこに何を書くか」も似ていて、少しずつ違います。
| 項目 | Qwen Code | Claude Code | Codex CLI |
|---|---|---|---|
| 設定ファイル | ~/.qwen/settings.json、.qwen/settings.json(JSON) | ~/.claude/settings.json、.claude/settings.json、.claude/settings.local.json | ~/.codex/config.toml、.codex/config.toml(TOML) |
| 設定の場所を変える | 環境変数 QWEN_HOME | CLAUDE_CONFIG_DIR | CODEX_HOME |
| 指示ファイル | QWEN.md(+ .qwen/QWEN.local.md)。AGENTS.md も読む | CLAUDE.md(+ CLAUDE.local.md)。無ければ AGENTS.md | AGENTS.md(+ AGENTS.override.md) |
| 条件付きルール | .qwen/rules/*.md(paths: で対象ファイルを限定) | .claude/rules/*.md | × |
| スキル | .qwen/skills/・.agents/skills/(ユーザーは ~/ 側) | .claude/skills/ | .agents/skills/ |
| サブエージェント | .qwen/agents/*.md(Claude Code 形式の項目も読める) | .claude/agents/*.md | .codex/agents/*.toml |
| フック | 22 イベント。設定で書ける種類は command・http・prompt(function は SDK やスキル内部用) | 33 イベント。command・http・mcp_tool・prompt・agent | 12 イベント。command・mcp_tool |
| MCP の設定 | settings.json の mcpServers(+ .mcp.json) | ~/.claude.json・.mcp.json | config.toml の [mcp_servers] |
| 拡張 | 拡張機能(Gemini CLI・Claude Code・Qoder のものも入る) | プラグイン | プラグイン |
| 読ませない設定 | .qwenignore(.agentignore・.aiignore も) | 設定の deny ルール | × |
フックのイベントは、実機の /hooks 画面で22個を確認しました(PreToolUse・PostToolUse・PostToolUseFailure・PostToolBatch・Notification・UserPromptSubmit・UserPromptExpansion・SessionStart・Stop・MessageDisplay・SubagentStart・SubagentStop・PreCompact・PostCompact・SessionEnd・SessionDelete・PermissionRequest・PermissionDenied・StopFailure・TodoCreated・TodoCompleted・InstructionsLoaded)。名前の多くは Claude Code と同じで、フックの条件にも Bash・Read・Write のような Claude Code の道具名がそのまま使えます。環境変数 CLAUDE_PROJECT_DIR も設定されるので、Claude Code 用に書いたフックの台本を流用しやすくなっています。
組み込みのサブエージェントは、実機の /agents manage で6つでした:general-purpose・Explore・statusline-setup・review-agent・claude-code・codex。最後の2つは、別に入れた本物の Claude Code・Codex に作業を任せるためのものです(後述)。

実画面:/agents manage。claude-code と codex が最初から組み込まれています
Qwen Code にしかない機能はあるのか
「Qwen Code にしかない機能」を探して、Claude Code 2.1.280・Codex CLI 0.156.1 の公式ドキュメントと実機で1つずつ確かめました。結論から言うと、Claude Code・Codex では実現できない「大きな違い」は見つかりませんでした。 目立つ機能の多くは、他の2つにも同じ機能があるか、手作業や設定で同じことができます。Qwen Code の強みは「できること」ではなく、「特定の会社の AI に縛られない前提で作られていて、それを1つのコマンドや設定で手軽にできる」点です。

図8:Qwen Code の目立つ機能と、他の2つでの同じことのやり方
| Qwen Code の機能 | Claude Code では | Codex CLI では | 判定 |
|---|---|---|---|
| 他社の AI・パソコンの中の AI につなぐ | ANTHROPIC_BASE_URL で接続先を変えられる(実機で成功。ただし公式は Claude 向けで、他のモデルは想定外) | --oss --local-provider lmstudio|ollama が公式対応、config.toml の model_providers で他の接続先も(実機で成功) | どれでもできる。Qwen Code は複数の形式を並べて途中で切り替えるのが標準 |
複数の AI を競わせる(/arena) | 専用機能はない。タブを分けて別々の作業コピー(-w)で同じ課題を渡せば手作業でできる | codex cloud exec --attempts 1-4 で同じ AI に複数回解かせる(クラウド)。別の AI 同士なら手作業 | 手作業ならできる。Qwen Code は準備・比較表・取り込みまで1コマンド |
ブラウザの画面から操作(qwen serve) | Remote Control(claude.ai/code から手元のセッションを操作)、クラウド版 | Codex cloud(Web)、codex remote-control | どれでもできる。Qwen Code は自分の PC で画面を立ち上げる |
チャットアプリから指示(qwen channel) | Channels(Telegram・Discord・iMessage、リサーチプレビュー) | Codex cloud に Slack・GitHub・Linear から依頼 | 近いものがある。WeChat・DingTalk・Feishu など中国系は Qwen Code だけ |
| Claude Code・Codex を部下として呼ぶ | OpenAI 公式のプラグイン「codex-plugin-cc」で Claude Code から Codex を呼べる | ― | Qwen Code だけではない |
同じ PC の別セッションとメッセージ(/peers) | 公式の「cross-session messaging」で他のセッションに送れる | codex queue で既存のセッションに指示を予約 | Qwen Code だけではない |
| 画面が日本語 | 画面は英語。ただし日本語で頼めば日本語で答え、返答の言語を固定する language 設定もある | 画面は英語。日本語で頼めば日本語で答える | 返答は3つとも日本語。違うのはメニューや確認画面の文字だけ |
Batch API で大量処理を半額に(/batch-api) | なし | なし | Qwen Code だけ(Alibaba Cloud の DashScope 専用) |
以下、実際に試したものを詳しく書きます。
1. Claude Code・Codex もローカルの AI につながった(実機)
「どの会社の AI でもつなげる」は Qwen Code だけの特徴ではないか確かめるため、Qwen Code の検証と同じ LM Studio の Qwen3.8 27B に、Claude Code と Codex をつないで、同じバグ(足し算の関数が引き算になっている math.js)を直させました。
# Claude Code:接続先を LM Studio(Anthropic 互換の窓口 /v1/messages)に変える
ANTHROPIC_BASE_URL=http://localhost:1234 ANTHROPIC_API_KEY=lm-studio \
claude -p --bare --model qwen3.8-27b --permission-mode acceptEdits \
"math.js の add 関数のバグを直して。直したら内容を1行で報告して"
# → 26秒で修正完了。「unrecognized_model」(知らないモデル)という診断が1行出た
# Codex:公式の --oss オプションで LM Studio を使う
codex exec --oss --local-provider lmstudio -m qwen3.8-27b -s workspace-write \
"math.js の add 関数のバグを直して。直したら内容を1行で報告して"
# → 83秒で修正完了(自分で add(2,3)=5 を実行して確認までした)
どちらも a-b を a+b に直し、日本語で報告しました。Claude Code の公式ドキュメントは、接続先の変更を「Claude を社内の中継サーバー経由で使う」ためのものとして説明していて、Claude 以外のモデルは想定していません。Codex は LM Studio と Ollama を公式に対応しています。つまり違いは「できる・できない」ではなく、Qwen Code は OpenAI・Anthropic・Gemini の3つの形式を1つの設定に並べ、会話の途中で /model で切り替えることを最初から前提にしている 点です。
/model モデル名 質問 の形で1問だけ別のモデルに聞く機能もありますが、実機では「接続先が違うモデルには使えない」と断られました(LM Studio と llama.cpp のように別のサーバーのモデル同士では、先に /model で切り替える必要があります)。また /effort(推論の強さ)は、DeepSeek・Anthropic・Gemini など接続先ごとの書き方に自動で変換されます。
2. Arena:複数のモデルを同じ課題で競わせる(実機)
/arena start --models A,B "課題" で、複数のモデルがそれぞれ別の作業コピー(git worktree)で同じ課題に取り組み、終わったら結果を比べて良い方を本体に取り込めます。最大5モデルまでです。
なお、ドキュメント(arena.md)の例は /arena --models ... ですが、0.24.6 でこの形で打つと「/arena にはサブコマンドが必要です(start・stop・status・select)」と表示されました。start を付けるのが正しい書き方 です。
実機では、ローカルの2つのモデル(Qwen3.8 27B と Qwen3.5 4B)に、先ほどと同じ「バグを直して npm test を全部通して」を競わせました。

録画:/arena start → 2つのモデルが別々の作業コピーで作業 → 両方終わると比較表(Arena Comparison Summary)が出る
| Qwen3.8 27B | Qwen3.5 4B | |
|---|---|---|
| かかった時間 | 2分48秒 | 1分40秒 |
| ツールの呼び出し | 6回 | 14回 |
| 変更量 | +2 / −2 行 | +5 / −4 行 |
| テスト | 3件とも成功 | 3件とも成功 |
どちらも正解でしたが、27B は少ない手数で最小限の修正、4B は試行錯誤が多いぶん変更量も多め、という違いが数字で分かります。画面下のタブ(Main / 各モデル)を ←/→ で切り替えると、それぞれのモデルの作業の様子も見られます。比べたあと /arena select で勝った方を選ぶと、その差分が本体の作業フォルダーに取り込まれます(ドキュメント)。
1つ注意があります。最初は既定の自動モードのまま実行したところ、4B は数分で終わったものの、27B の方が「作業中」の表示のまま進まなくなりました(作業コピーの中ではテストがすでに通っていました)。作業コピーは使い捨てなので、qwen --approval-mode yolo で起動し直すと、2つとも最後まで自動で終わりました。
同じことは、Claude Code や Codex でもタブを2つ開き、それぞれ別の作業コピー(claude -w・codex --worktree)で同じ課題を渡せばできます。Arena の良さは、作業コピーの用意、比較表(時間・手数・変更量)、良い方の取り込みまでを1つのコマンドでまとめてやってくれる手軽さです。
3. Web 画面 qwen serve(実機・実験的)
qwen serve を実行すると、ローカルの HTTP サーバー(既定は http://127.0.0.1:4170)が立ち上がり、ブラウザで開ける「Web Shell」という画面が付いてきます。

実画面:ブラウザの Web Shell で質問したところ。ターミナルと同じエージェントが動き、承認モード(Classifier Approval)やモデルも画面下で切り替えられます
実機では qwen serve の起動から0.5秒ほどで http://127.0.0.1:4170 が開き、/health に {"status":"ok"} が返りました。Web Shell から質問すると、ターミナル版と同じくファイルを読んで答え(このときは Arena と同時に動かしていたため1分29秒)、ついでにループのバグも指摘してくれました。左側には Plugins・Channels・Scheduled Tasks・Goals の画面もあり、HTTP の API(REST と SSE)と TypeScript の SDK から同じセッションを操作することもできます。
注意点もあります。既定の「自分の PC からだけ受け付ける」状態では 認証がなく、同じ PC で動く他のプログラムからもコード実行を含むすべての操作ができます(起動時にもそう警告されます)。共有の PC では --require-auth とトークン(QWEN_SERVER_TOKEN)を必ず付けてください。スマートフォンからつなぐときは、--local-control(同じ LAN だけに共有し、取り消せるペアリング用トークンと QR コードを出す)を使うか、--hostname 0.0.0.0 で自動発行されるトークン入りの QR コードを使います。
ブラウザから操作すること自体は、Claude Code(Remote Control・クラウド版)や Codex(Codex cloud)でもできます。Qwen Code の Web Shell は、クラウドのアカウントを使わずに自分の PC の中で画面を立ち上げる点が違います。
4. Claude Code・Codex を「部下」として呼ぶ(Codex は実機)
組み込みのサブエージェント claude-code と codex は、別途インストールした本物の Claude Code(claude-agent-acp という接続用の部品が必要)や Codex CLI に作業を任せます。モデルと認証は各ツールのものを使います。
実機では、1回実行で「組み込みの codex サブエージェントに、src/cart.js の subtotal 関数を説明させて」と頼みました。Qwen Code は agent ツールを subagent_type: "codex" で呼び、このMacの Codex CLI(0.156.1、ChatGPT のアカウントでログイン済み)に仕事を渡しました。Codex の返事は「subtotal は商品の配列の2件目以降について、価格と数量を掛けた金額を合計して返す関数です。」で、ループのバグまで正確に読めています。Codex 側の処理は76秒、全体で約3分40秒でした。結果には「External executor token usage and cost are unavailable.」と添えられ、Codex 側で使ったトークン数は Qwen からは見えませんでした。Codex の設定ファイル(~/.codex/config.toml)が書き換わっていないことも確認しています。
ただし、これも Qwen Code だけではありません。OpenAI が公式に、Claude Code から Codex を呼び出してレビューや作業を任せるプラグイン(codex-plugin-cc)を公開しています。
5. そのほかの機能
| 機能 | 中身 | 他の2つとの関係 |
|---|---|---|
チャット連携(qwen channel) | Telegram・WeChat・QQ・DingTalk・WeCom・Feishu のボットとして動かす。GitHub・GitLab の通知にも反応 | Claude Code にも Channels(Telegram・Discord・iMessage)がある。中国系アプリは Qwen Code だけ |
Batch API(/batch-api・qwen batch) | 大量ファイルの翻訳などを DashScope の非同期 API にまとめて投げ、半額で処理 | 他の2つにはない(Alibaba Cloud 専用) |
Dual Output(--json-file など) | 対話画面を表示したまま、同じ出来事を JSON でファイルに流し、外部から入力も送れる | 開発者向けの細かい機能。Claude Code・Codex は画面なしの実行で JSON を流せる |
/learn・/curator | URL・フォルダー・文章・動画からスキルを自動作成し、使わないものは保管へ | Codex には対話でスキルを作る同梱スキル(skill-creator)がある |
| 画面の多言語化 | メニューを日本語を含む9言語に切り替え(/language ui ja-JP) | 返答は3つとも日本語で頼めば日本語。違いはメニューの文字だけ |
| 端末での図・数式の表示 | Mermaid と LaTeX を端末に描く | 小さな違い |
反対に、Qwen Code に無いもの
逆方向も同じ基準で確かめました。Claude Code・Codex にあって、Qwen Code 0.24.6 に無い(または大きく劣る)ものです。こちらも「どちらか1つにしかない」ものは少なく、多くは Claude Code と Codex の両方にあります。
| 機能 | Claude Code | Codex CLI | Qwen Code |
|---|---|---|---|
| クラウドで作業させる(手元の PC を使わない) | ○ クラウド版・--cloud・/teleport | ○ Codex cloud・codex apply | × |
| 自社の最新モデルに合わせた調整 | ○ Claude | ○ GPT | Qwen 系は公式の組み合わせ |
| OS レベルのサンドボックスが最初から効く | △ 設定で有効化(/sandbox) | ○ 既定で有効(信頼したフォルダーは作業フォルダーだけ書ける・ネット接続なし) | △ 既定でオフ(-s で Docker・Seatbelt) |
| 自分の Chrome を操作 | ○ /chrome | △ ブラウザ拡張(ChatGPT) | △ /browser-use(拡張機能が必要) |
| Slack などから依頼 | ○ Slack 連携 | ○ Codex cloud(Slack・Linear) | △ qwen channel(Telegram・中国系アプリ・GitHub・GitLab) |
| 定期実行をクラウドで | ○ /schedule | △ ChatGPT・Codex の Automations(スケジュール実行) | × (/loop は起動中の画面の中だけ) |
| クラウドでのコードレビュー | ○ /ultrareview | ○ Codex cloud のコードレビュー(GitHub など) | △ GitHub Action(qwen-code-action)。/review は手元で実行 |
Claude Code だけにある細かな機能としては、dontAsk モード(許可済み以外は自動で拒否)、/design・/artifacts、/import(Codex・Gemini CLI・Cursor の設定を取り込み)などがあります。Codex だけにある細かな機能としては、Starlark で書く実行ルール(.rules)と codex execpolicy check、/pets などがあります。
実際に使うならどうか

図9:使いたい AI から選ぶ。できることはほぼ同じなので、決め手は「どの AI で動かすか」
このMacで一通り使ってみた感想をまとめます。
良かったところ
- ローカルモデルでちゃんと仕事をする:27B のモデルで、3つのバグの発見から修正・テスト実行までを約100秒で終えました。コードが外に出ず、料金もかかりません
- Claude Code から移りやすい:コマンド名・権限ルール・フック・サブエージェントの書き方がほぼ同じで、
AGENTS.mdも読むため、既存のプロジェクトにそのまま入れられます - 画面が日本語:確認画面の選択肢まで日本語なので、英語が苦手な方でも操作に迷いにくいです(返答の日本語は他の2つも同じ)
- 比べるのが手軽:
/modelでの切り替えと/arenaで、「このタスクにはどのモデルで十分か」を手元で確かめられます(他の2つでも手作業ならできます)
気になったところ
- ローカルモデルの速さに合わせた調整が要る:自動モードの分類器の時間切れ、1回実行でも自動メモリの処理を待つ、
--json-schemaがツールを呼ばずに失敗する、といった点は、クラウドの速いモデルを前提にした作りから来ています - ドキュメントと実装のずれ:既定の承認モード、
/arenaの書き方、/commitの有無、qwen mcp addの既定の保存先、.agents/skillsを読むこと――いずれも実機やソースで確かめないと分かりませんでした。開発が速い(npm の記録では、2026年9月だけで 0.23.0 から 0.24.6 まで12回リリース)ぶん、ドキュメントが追いついていない印象です - 既定の安全設定がゆるめ:サンドボックスは既定でオフ、フォルダーの信頼機能も既定でオフ(知らないリポジトリの
.qwen/settings.jsonや.envもそのまま読まれる。ただしプロジェクトの MCP サーバーは、実機で見たとおりqwen mcp approveするまで接続されない)、利用統計の送信は既定でオン(送り先は Alibaba Cloud。プロンプトやコードは送らないと明記)です。気になる方はprivacy.usageStatisticsEnabled: falseとsecurity.folderTrust.enabled: trueを設定しておくと安心です
どんな人に向くか
- Qwen・DeepSeek・Kimi・GLM など、Claude・GPT 以外のモデルを、公式にサポートされた形で普段使いしたい人
- パソコンの中の AI と他社の AI を、1つの画面で切り替えながら使いたい人
- 複数のモデルを手軽に比べて、用途ごとに使い分けたい人
- Alibaba Cloud の定額プラン(Coding Plan)や、DingTalk・WeChat などの中国系チャットアプリと組み合わせたい人
逆に、Claude や GPT の最新モデルを使うなら、それぞれに合わせて作り込まれた Claude Code や Codex CLI をそのまま使うのが自然です。コードを外に出さずにパソコンの中の AI だけで使いたい場合も、Codex は --oss で公式に対応しているので、Qwen Code だけが選択肢というわけではありません。3つは排他的ではなく、スキルを Codex と共有したり、Qwen Code や Claude Code から Codex を呼んだりもできます。
トラブルシューティング

図10:この記事の検証で実際に起きたつまずきと対処
| 症状 | 原因 | 対処 |
|---|---|---|
| 起動するとログイン画面から進めない/「Qwen OAuth free tier was discontinued」 | 無料の Qwen OAuth は2026年4月15日で終了 | /auth で別の方法を選ぶか、settings.json に modelProviders と security.auth.selectedType を書く |
| 認証に失敗したあと、画面が出なくなる | 失敗した security.auth.selectedType が保存されている | ~/.qwen/settings.json からその行を消して再起動 |
| 「Ripgrep not available … EACCES」 | npm 版 0.24.6 の同梱 rg に実行権限がない | chmod +x …/vendor/ripgrep/<OS名>/rg |
| 自動モードなのに「Classifier stage 1 unavailable」で止まる | 分類器が10秒以内に答えられない | permissions.autoMode.classifier.timeouts を延ばす/速いモデルを /model --fast で指定 |
/goal や /review が説明と違う動き | ~/.agents/skills の同名スキルが優先されている | /help で [User] 表示を確認し、改名するか skills.disabled |
| ドキュメントにあるコマンドが無い | GitHub の main がリリースより先行/条件付きのコマンド | リリースタグのドキュメントと比べる。/trust・/lsp・/workflows は設定で有効化 |
| 対話モードに入らず1回で終わる | 引数つき起動は1回実行/環境変数に CI_ で始まるものがある | qwen -i "…" を使う。env -u CI_TOKEN qwen のように外す |
| 右クリックや範囲選択が効かない | 画面がマウスを使う設定(既定) | 設定 ui.mouseTracking: false。Shift(macOS は Option)を押しながらドラッグでも選択できる |
| 長い応答が途中で切れる | 1回の応答に15分の上限がある | 環境変数 QWEN_STREAM_MAX_LIFETIME_MS を増やす(0 で無制限) |
原因が分からないときは、qwen --safe-mode(設定・スキル・フック・MCP を全部切って起動)で切り分け、/doctor で環境を確認するのが近道です。
まとめ
- Qwen Code は、Gemini CLI をもとに Qwen チームが育てたオープンソースの AI コーディングエージェントです。Claude Code・Codex と比べて できることはほぼ同じ で、違いは「どの会社の API でも、自分の PC のモデルでも使う前提で作られている」という立ち位置です(Claude Code・Codex も設定すればローカルの AI につながることを実機で確認しました)
- 無料の Qwen OAuth は2026年4月15日で終了しています。費用ゼロで試すなら、LM Studio や llama.cpp などのローカルモデルが現実的で、実際に 27B モデルでバグ修正まで完了しました
- コマンドは組み込み67+同梱スキル18(0.24.6・このMacの実機)。多くは Claude Code・Codex と名前も働きも共通です。
/arena・/learn・qwen boardなど Qwen Code にしかないコマンドもありますが、他の2つでも手作業や別の機能で同じことができるものがほとんどで、本当に Qwen Code だけなのは Alibaba Cloud の Batch API や中国系チャットアプリへの対応くらいでした - ローカルモデルで使うなら、自動モードの分類器の制限時間、ripgrep の実行権限、
~/.agents/skillsとの名前の衝突に注意してください
次の一歩としては、まず /help の一覧で自分の環境のコマンドを確かめ、/model でモデルを2つ並べて同じ質問を比べてみるのがおすすめです。慣れてきたら /arena や qwen serve の Web 画面も試してみてください。
参考リソース
- Qwen Code(GitHub):https://github.com/QwenLM/qwen-code
- 公式ドキュメント(日本語):https://qwenlm.github.io/qwen-code-docs/ja/users/overview
- コマンド一覧(commands.md):https://qwenlm.github.io/qwen-code-docs/ja/users/features/commands
- 認証(auth.md):https://qwenlm.github.io/qwen-code-docs/ja/users/configuration/auth
- モデルプロバイダー(model-providers.md):https://qwenlm.github.io/qwen-code-docs/ja/users/configuration/model-providers
- 承認モード・自動モード:https://qwenlm.github.io/qwen-code-docs/ja/users/features/approval-mode
- Claude Code のコマンド一覧:https://code.claude.com/docs/en/commands
- Codex CLI のコマンド一覧:https://developers.openai.com/codex/cli/slash-commands

