Qwen Code — ターミナルや各種エディタで動くオープンソースのAIコーディングエージェント
QwenLM/qwen-code
★ 29,838 ・ TypeScript ・ Apache-2.0
概要
qwen-code は、開発者のローカル環境で自律的にタスクをこなすオープンソースのAIコーディングエージェントです。ターミナル上で動作するCLIツールを中核としつつ、エディタ拡張やデスクトップアプリ、Web UI、各種チャットツールとの連携機能など、幅広いインターフェースを提供しています。
近年、ターミナルで対話しながらコードの調査や修正を行うAIエージェントツールが増えていますが、qwen-code はオープンソースとして公開されている点が大きな特徴です。Qwenモデルをはじめ、OpenAIやAnthropic、Geminiといった主要な商用LLMのAPI、さらにOllamaやvLLMを用いたローカルモデルにも対応しています。ベンダーロックインを避けたい開発者や、手元のモデルとクラウドAPIを柔軟に切り替えながら開発環境を構築したいエンジニアに適した設計となっています。
主な特徴
- 導入後すぐに利用できるエージェント機能: 自動メモリ管理(Auto-Memory)、自動スキル習得(Auto-Skills)、サブエージェント(SubAgents)、エージェントチーム、Model Context Protocol(MCP)に対応しており、細かな初期設定なしで自律的なワークフローを実行できます。
- 完全なオープンソース志向: エージェントのフレームワーク自体だけでなく、基盤となるQwenモデルもオープンソースとして提供されており、特定のクラウドベンダーに縛られずに運用できます。
- マルチプロトコル・マルチプロバイダ対応: Qwen APIに加えて、OpenAI、Anthropic、GeminiのAPIや、Ollama、vLLM経由のローカルモデルをサポートしており、実行時にプロバイダを切り替えることが可能です。
- 多様なインターフェース: ターミナル向けのCLIだけでなく、デスクトップアプリケーション、ブラウザ上で動作するWeb UI、VS Code・Zed・JetBrainsといった主要エディタ向けのプラグインが用意されています。
- 外部連携と自動化向けの機能: スクリプトやCI/CDから実行できるヘッドレスモード(
-pオプション)、TypeScript・Python・Java向けの各種SDK、バックグラウンドでセッションを常駐させるデーモンモードを備えています。 - チャットプラットフォームとの統合: Telegram、DingTalk、WeChat、Feishuなどのチャットアプリを接続し、チャット経由でエージェントとやり取りを行うチャンネル機能が含まれています。
使い方
インストール
環境に応じた複数のインストール手段が提供されています。
LinuxまたはmacOSの場合、シェルスクリプトを使用したインストールが可能です。
curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bash
Windows環境の場合はPowerShellから実行します。
irm https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1 | iex
パッケージマネージャ経由で導入する場合は、Node.js 22以上が導入された環境でnpmコマンドを実行するか、Homebrewを利用します。
# npm を使用する場合(Node.js 22+ が必要)
npm install -g @qwen-code/qwen-code@latest
# Homebrew を使用する場合(macOS / Linux)
brew install qwen-code
インストール完了後は、環境変数を反映させるためにターミナルを再起動します。
クイックスタート
対象のプロジェクトディレクトリに移動し、qwen コマンドを実行してセッションを開始します。
cd /path/to/your-project
qwen
対話セッションが起動したら、/auth コマンドを実行して認証を行います。Qwenアカウントのサブスクリプション(PlusまたはPro)でログインするか、各プロバイダのAPIキーを設定します。認証完了後、リポジトリの解析などを依頼できます。
Explain this repository and show me where to start.
デーモンモードとWeb UIの起動
ブラウザやエディタ、SDKなどの複数のクライアントでエージェントセッションを共有したい場合、常駐型デーモンモードを利用できます。
フォアグラウンドで起動し、ブラウザ上でWeb UI(Web Shell)を開くには以下のコマンドを実行します(デフォルトポートは 4170 です)。
qwen serve --open
バックグラウンドサービスとしてデーモンを管理する場合は、以下のサブコマンドを使用します。
qwen daemon start
qwen daemon status
qwen daemon logs -f
qwen daemon stop
SDKの利用例
Python向けSDKを利用してコード内からクエリを実行する例がREADMEに掲載されています。
import asyncio
from qwen_code_sdk import is_sdk_result_message, query
async def main() -> None:
result = query(
"Summarize the repository layout.",
{
"cwd": "/path/to/project",
"path_to_qwen_executable": "qwen",
},
)
async for message in result:
if is_sdk_result_message(message):
print(message["result"])
asyncio.run(main())
技術的なポイント
qwen-code は主にTypeScriptで実装されており、Node.jsの最新環境(v22以降)を前提とした設計になっています。CLIツール単体で完結するだけでなく、外部ツールとの柔軟な連携を意識したアーキテクチャが採用されています。
- MCP(Model Context Protocol)の採用: 外部ツールやデータソースとの接続規格としてMCPに対応しており、モデルに対して動的なコンテキストや独自ツールを提供する基盤が整えられています。
- HTTP + SSEによるデーモンアーキテクチャ:
qwen serveやqwen daemonでは、HTTPとServer-Sent Events(SSE)を用いたプロトコルにより、エージェントセッションの維持や複数ワークスペースの切り替え、クライアントからの再接続に対応しています。 - マルチ言語向けSDKの提供: TypeScript、Python、JavaそれぞれのSDKパッケージが用意されており、エージェントの処理を既存のバックエンドシステムやバッチ処理に組み込むことが容易になっています。
- 独自の開発プロセス: READMEの記載によると、Qwen Codeは自身のエージェントとモデル自身を用いてIssueの起票、PRの作成、コードレビュー、テスト実行を行いながら継続的に開発が進められています。
注意点
- ライセンス: 本プロジェクトは Apache-2.0 ライセンスのもとで公開されています。
- Node.jsのバージョン要件: npm経由で導入・実行する場合、Node.js 22以上の環境が必須となります。古いバージョンのランタイムでは動作しないため注意が必要です。
- デーモンモードのセキュリティ設定: デフォルト設定では、デーモンは認証なしでループバックアドレス(127.0.0.1)をリッスンします。ローカルマシン上で通信可能なすべてのプロセスが、コード実行を含むフルAPIへアクセスできる状態になります。共有サーバや信頼できないホストで起動する場合は、必ず
QWEN_SERVER_TOKEN環境変数を設定し、--require-authオプションを有効化する必要があります。 - 実験的機能: Web UIやデーモンモードの一部機能については、ドキュメント上で「experimental(実験的)」と明記されています。仕様変更や動作の不安定さが生じる可能性があります。
- プレビュー版の存在: 通常版のインストールのほかに、「Qwen Code 1.0 Preview」と呼ばれる別ブランチ/バージョンが存在します。利用目的に応じて対象のバージョンを確認してセットアップを行う必要があります。
まとめ
qwen-code は、ターミナルでの対話型操作からエディタ統合、デーモンによるAPI提供まで、開発フローのあらゆる場面をカバーするオープンソースのAIコーディングエージェントです。Qwenモデルだけでなく多様なLLMやローカル推論環境にも柔軟に対応しており、ベンダーに依存しないエージェント基盤をローカルに構築したい開発者にとって有用な選択肢となります。





