Qwen Code 設定
認証 / API キー: 認証(Qwen OAuth 対 OpenAI 互換 API)および認証関連の環境変数(例: OPENAI_API_KEY)については、認証 で説明されています。
新しい設定フォーマットについての注意: settings.json ファイルのフォーマットが、より整理された新しい構造に更新されました。古いフォーマットは自動的に移行されます。
Qwen Code では、環境変数、コマンドライン引数、設定ファイルなど、いくつかの方法で動作を設定できます。このドキュメントでは、異なる設定方法と利用可能な設定について概説します。
設定レイヤー
設定は以下の優先順位で適用されます(番号が小さい方が大きい番号によって上書きされます):
| レベル | 設定ソース | 説明 |
|---|---|---|
| 1 | デフォルト値 | アプリケーション内にハードコードされたデフォルト値 |
| 2 | システムデフォルトファイル | 他の設定ファイルによって上書き可能なシステム全体のデフォルト設定 |
| 3 | ユーザー設定ファイル | 現在のユーザーに対するグローバル設定 |
| 4 | プロジェクト設定ファイル | プロジェクト固有の設定 |
| 5 | システム設定ファイル | 他のすべての設定ファイルを上書きするシステム全体の設定 |
| 6 | 環境変数 | システム全体またはセッション固有の変数。.env ファイルから読み込まれる可能性あり |
| 7 | コマンドライン引数 | CLI 起動時に渡された値 |
設定ファイル
Qwen Code は永続的な設定のために JSON 設定ファイルを使用します。これらのファイルには以下の 4 つの場所があります:
| ファイルタイプ | 位置 | スコープ |
|---|---|---|
| システムデフォルトファイル | Linux: /etc/qwen-code/system-defaults.jsonWindows: C:\ProgramData\qwen-code\system-defaults.jsonmacOS: /Library/Application Support/QwenCode/system-defaults.json パスは QWEN_CODE_SYSTEM_DEFAULTS_PATH 環境変数を使用して上書きできます。 | システム全体のデフォルト設定のベースレイヤーを提供します。これらの設定は最も低い優先順位を持ち、ユーザー設定、プロジェクト設定、またはシステム上書き設定によって上書きされることを意図しています。 |
| ユーザー設定ファイル | ~/.qwen/settings.json(~ はホームディレクトリを表します)。 | 現在のユーザーのすべての Qwen Code セッションに適用されます。 |
| プロジェクト設定ファイル | プロジェクトのルートディレクトリ内の .qwen/settings.json。 | その特定のプロジェクトから Qwen Code を実行している場合にのみ適用されます。プロジェクト設定はユーザー設定を上書きします。 |
| システム設定ファイル | Linux: /etc/qwen-code/settings.json Windows: C:\ProgramData\qwen-code\settings.json macOS: /Library/Application Support/QwenCode/settings.jsonパスは QWEN_CODE_SYSTEM_SETTINGS_PATH 環境変数を使用して上書きできます。 | システム上のすべてのユーザーのすべての Qwen Code セッションに適用されます。システム設定はユーザー設定とプロジェクト設定を上書きします。企業のシステム管理者がユーザーの Qwen Code 設定を制御するのに役立ちます。 |
設定ファイル内の環境変数についての注意: settings.json ファイル内の文字列値は、$VAR_NAME または ${VAR_NAME} 構文を使用して環境変数を参照できます。これらの変数は設定が読み込まれる際に自動的に解決されます。たとえば、MY_API_TOKEN という環境変数がある場合、settings.json 内で "apiKey": "$MY_API_TOKEN" のように使用できます。
プロジェクト内の .qwen ディレクトリ
プロジェクト設定ファイルに加えて、プロジェクトの .qwen ディレクトリには、Qwen Code の操作に関連するその他のプロジェクト固有のファイルを含めることができます。例えば、以下のようなものです。
- カスタムサンドボックスプロファイル (例:
.qwen/sandbox-macos-custom.sb,.qwen/sandbox.Dockerfile) .qwen/skills/配下の エージェントスキル (実験的) (各スキルはSKILL.mdを含むディレクトリ)
settings.json で利用可能な設定
設定はカテゴリごとに整理されています。すべての設定は、settings.json ファイル内の対応するトップレベルカテゴリオブジェクト内に配置する必要があります。
general
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
general.preferredEditor | string | ファイルを開く際に使用する優先エディタ。 | undefined |
general.vimMode | boolean | Vim キーバインドを有効にする。 | false |
general.disableAutoUpdate | boolean | 自動更新を無効にする。 | false |
general.disableUpdateNag | boolean | 更新通知のプロンプトを無効にする。 | false |
general.gitCoAuthor | boolean | Qwen Code 経由でコミットを作成する際に、Co-authored-by トレーラーを自動的に Git コミットメッセージに追加する。 | true |
general.checkpointing.enabled | boolean | 復旧用のセッションチェックポイントを有効にする。 | false |
output
| 設定 | 型 | 説明 | デフォルト | 使用可能な値 |
|---|---|---|---|---|
output.format | string | CLI 出力の形式。 | "text" | "text", "json" |
ui
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ui.theme | string | UIのカラーテーマ。利用可能なオプションについてはテーマを参照してください。 | undefined |
ui.customThemes | object | カスタムテーマ定義。 | {} |
ui.hideWindowTitle | boolean | ウィンドウタイトルバーを非表示にします。 | false |
ui.hideTips | boolean | UI内の役立つヒントを非表示にします。 | false |
ui.hideBanner | boolean | アプリケーションバナーを非表示にします。 | false |
ui.hideFooter | boolean | UIからフッターを非表示にします。 | false |
ui.showMemoryUsage | boolean | UIにメモリ使用量情報を表示します。 | false |
ui.showLineNumbers | boolean | CLI出力のコードブロックに行番号を表示します。 | true |
ui.showCitations | boolean | チャットで生成されたテキストの引用情報を表示します。 | true |
enableWelcomeBack | boolean | 会話履歴があるプロジェクトに戻ったときに、ようこそダイアログを表示します。有効にすると、Qwen Codeは以前に生成されたプロジェクトサマリー(.qwen/PROJECT_SUMMARY.md)があるプロジェクトに戻ってきたことを自動検出し、以前の会話を続けるか新しく始めるかを選択できるダイアログを表示します。この機能は/summaryコマンドと終了確認ダイアログと連携します。 | true |
ui.accessibility.disableLoadingPhrases | boolean | アクセシビリティのためにロード中のフレーズを無効にします。 | false |
ui.accessibility.screenReader | boolean | スクリーンリーダーモードを有効にし、スクリーンリーダーとの互換性を高めるためにTUIを調整します。 | false |
ui.customWittyPhrases | array of strings | ロード状態中に表示するカスタムフレーズのリスト。指定された場合、CLIはデフォルトのフレーズの代わりにこれらのフレーズを順番に表示します。 | [] |
ide
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ide.enabled | boolean | IDE統合モードを有効にする。 | false |
ide.hasSeenNudge | boolean | ユーザーがIDE統合の通知を既に表示したかどうか。 | false |
privacy
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
privacy.usageStatisticsEnabled | boolean | 使用状況統計の収集を有効にする。 | true |
model
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
model.name | string | 会話で使用する Qwen モデル。 | undefined |
model.maxSessionTurns | number | セッション内で保持するユーザー/モデル/ツールの最大ターン数。-1 は無制限を意味します。 | -1 |
model.summarizeToolOutput | object | ツール出力の要約を有効または無効にします。tokenBudget 設定を使用して要約のトークン予算を指定できます。注: 現在サポートされているのは run_shell_command ツールのみです。例: {"run_shell_command": {"tokenBudget": 2000}} | undefined |
model.generationConfig | object | 基盤となるコンテンツ生成器に渡される高度なオーバーライド。timeout、maxRetries、disableCacheControl などのリクエスト制御に加え、samplingParams 配下の微調整用の設定(例: temperature、top_p、max_tokens)をサポートします。未設定の場合はプロバイダーのデフォルト値を使用します。 | undefined |
model.chatCompression.contextPercentageThreshold | number | モデルの総トークン制限に対するパーセンテージとしてチャット履歴圧縮のしきい値を設定します。これは自動圧縮と手動の /compress コマンドの両方に適用される 0 から 1 の値です。例えば、0.6 の値はチャット履歴がトークン制限の 60% を超えたときに圧縮をトリガーします。完全に圧縮を無効にするには 0 を使用します。 | 0.7 |
model.skipNextSpeakerCheck | boolean | 次の発言者チェックをスキップします。 | false |
model.skipLoopDetection | boolean | ループ検出チェックを無効にします。ループ検出は AI 応答における無限ループを防ぎますが、正当なワークフローを中断する誤検知を生成する可能性があります。頻繁に誤検知によるループ検出の中断が発生する場合はこのオプションを有効にしてください。 | false |
model.skipStartupContext | boolean | 各セッションの開始時に起動ワークスペースコンテキスト(環境サマリーと確認応答)の送信をスキップします。手動でコンテキストを提供したい場合や起動時のトークンを節約したい場合はこのオプションを有効にしてください。 | false |
model.enableOpenAILogging | boolean | デバッグと分析のために OpenAI API 呼び出しのログ記録を有効にします。有効にすると、API リクエストとレスポンスが JSON ファイルに記録されます。 | false |
model.openAILoggingDir | string | OpenAI API ログ用のカスタムディレクトリパス。指定しない場合は現在の作業ディレクトリの logs/openai がデフォルトになります。絶対パス、相対パス(現在の作業ディレクトリから解決)、および ~ 展開(ホームディレクトリ)をサポートします。 | undefined |
model.generationConfig の例:
{
"model": {
"generationConfig": {
"timeout": 60000,
"disableCacheControl": false,
"samplingParams": {
"temperature": 0.2,
"top_p": 0.8,
"max_tokens": 1024
}
}
}
}model.openAILoggingDir の例:
"~/qwen-logs"-~/qwen-logsディレクトリにログを記録"./custom-logs"- 現在のディレクトリからの相対パス./custom-logsにログを記録"/tmp/openai-logs"- 絶対パス/tmp/openai-logsにログを記録
context
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
context.fileName | 文字列または文字列の配列 | コンテキストファイルの名前。 | undefined |
context.importFormat | 文字列 | メモリをインポートする際に使用する形式。 | undefined |
context.discoveryMaxDirs | 数値 | メモリを検索する最大ディレクトリ数。 | 200 |
context.includeDirectories | 配列 | ワークスペースコンテキストに含める追加ディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。存在しないディレクトリはデフォルトで警告とともにスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --include-directories コマンドラインフラグと組み合わせて使用できます。 | [] |
context.loadFromIncludeDirectories | 真偽値 | /memory refresh コマンドの動作を制御します。true に設定すると、追加されたすべてのディレクトリから QWEN.md ファイルが読み込まれます。false に設定すると、現在のディレクトリからのみ QWEN.md が読み込まれます。 | false |
context.fileFiltering.respectGitIgnore | 真偽値 | 検索時に .gitignore ファイルを尊重するかどうか。 | true |
context.fileFiltering.respectQwenIgnore | 真偽値 | 検索時に .qwenignore ファイルを尊重するかどうか。 | true |
context.fileFiltering.enableRecursiveFileSearch | 真偽値 | プロンプト内の @ 接頭辞を補完する際に、現在のツリー配下でファイル名を再帰的に検索する機能を有効にするかどうか。 | true |
context.fileFiltering.disableFuzzySearch | 真偽値 | true の場合、ファイル検索時のファジー検索機能を無効にします。これにより、多数のファイルを持つプロジェクトでのパフォーマンスを改善できます。 | false |
ファイル検索のパフォーマンスに関するトラブルシューティング
ファイル検索(例:@ による補完)のパフォーマンスに問題がある場合、特にファイル数が非常に多いプロジェクトで、以下に示す推奨順にいくつかの対策を試すことができます:
.qwenignoreを使用する: プロジェクトルートに.qwenignoreファイルを作成し、参照する必要のない多数のファイルを含むディレクトリ(例:ビルド成果物、ログ、node_modulesなど)を除外します。検索対象となるファイルの総数を減らすことは、パフォーマンスを改善する最も効果的な方法です。- あいまい検索を無効にする: ファイルの無視が十分でない場合は、
settings.jsonファイルでdisableFuzzySearchをtrueに設定して、あいまい検索を無効にできます。これにより、よりシンプルであいまいではない一致アルゴリズムが使用され、高速になることがあります。 - 再帰的なファイル検索を無効にする: 最後の手段として、
enableRecursiveFileSearchをfalseに設定して、再帰的なファイル検索を完全に無効にできます。これはプロジェクトの再帰的な走査を回避するため、最も高速なオプションになります。ただし、@による補完を使用する際にファイルのフルパスを入力する必要があることを意味します。
ツール
| 設定 | 型 | 説明 | 既定値 | 備考 |
|---|---|---|---|---|
tools.sandbox | boolean または string | サンドボックス実行環境(boolean またはパス文字列を指定可能)。 | undefined | |
tools.shell.enableInteractiveShell | boolean | 対話型シェル体験のために node-pty を使用します。フォールバックとして child_process が引き続き使用されます。 | false | |
tools.core | string の配列 | 組み込みツールのセットをホワイトリストで制限するために使用できます。run_shell_command ツールのように、それをサポートするツールに対してコマンド固有の制限を指定することもできます。たとえば、"tools.core": ["run_shell_command(ls -l)"] とすると、ls -l コマンドのみの実行を許可します。 | undefined | |
tools.exclude | string の配列 | 検出から除外するツール名。run_shell_command ツールのように、それをサポートするツールに対してコマンド固有の制限を指定することもできます。たとえば、"tools.exclude": ["run_shell_command(rm -rf)"] とすると、rm -rf コマンドをブロックします。セキュリティノート: run_shell_command の tools.exclude におけるコマンド固有の制限は単純な文字列一致に基づいており、簡単にバイパスできます。この機能はセキュリティメカニズムではありませんので、信頼できないコードの安全な実行に依存すべきではありません。実行可能なコマンドを明示的に選択するには tools.core の使用を推奨します。 | undefined | |
tools.allowed | string の配列 | 確認ダイアログをバイパスするツール名のリスト。頻繁に使用し、信頼できるツールに便利です。たとえば、["run_shell_command(git)", "run_shell_command(npm test)"] とすると、任意の git および npm test コマンドを実行する際の確認ダイアログをスキップします。 | undefined | |
tools.approvalMode | string | ツール使用時の既定の承認モードを設定します。 | default | 使用可能な値: plan(分析のみ、ファイルの変更やコマンド実行を行わない)、default(ファイル編集やシェルコマンド実行前に承認が必要)、auto-edit(ファイル編集を自動承認)、yolo(すべてのツール呼び出しを自動承認) |
tools.discoveryCommand | string | ツール検出のために実行するコマンド。 | undefined | |
tools.callCommand | string | tools.discoveryCommand を使用して検出された特定のツールを呼び出すためのカスタムシェルコマンドを定義します。シェルコマンドは以下の条件を満たす必要があります: 関数宣言 とまったく同じ関数 name を最初のコマンドライン引数として受け取る必要があります。functionCall.args と同様に、関数引数を JSON として stdin から読み取る必要があります。functionResponse.response.content と同様に、関数出力を JSON として stdout に返す必要があります。 | undefined | |
tools.useRipgrep | boolean | フォールバック実装の代わりに ripgrep を使用してファイル内容を検索します。より高速な検索パフォーマンスを提供します。 | true | |
tools.useBuiltinRipgrep | boolean | バンドルされた ripgrep バイナリを使用します。false に設定すると、代わりにシステムレベルの rg コマンドが使用されます。この設定は tools.useRipgrep が true の場合にのみ有効です。 | true | |
tools.enableToolOutputTruncation | boolean | 大きなツール出力の切り捨てを有効にします。 | true | 再起動が必要: はい |
tools.truncateToolOutputThreshold | number | 出力がこの文字数より大きい場合にツール出力を切り捨てます。Shell、Grep、Glob、ReadFile、ReadManyFiles ツールに適用されます。 | 25000 | 再起動が必要: はい |
tools.truncateToolOutputLines | number | ツール出力の切り捨て時に保持する最大行数またはエントリ数。Shell、Grep、Glob、ReadFile、ReadManyFiles ツールに適用されます。 | 1000 | 再起動が必要: はい |
tools.autoAccept | boolean | CLI が安全と見なされるツール呼び出し(例: 読み取り専用操作)を明示的なユーザー確認なしに自動的に受け入れて実行するかどうかを制御します。true に設定すると、CLI は安全と判断されたツールに対する確認プロンプトをバイパスします。 | false |
mcp
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
mcp.serverCommand | string | MCPサーバーを起動するためのコマンド。 | undefined |
mcp.allowed | stringの配列 | 許可するMCPサーバーのホワイトリスト。モデルで利用可能にするMCPサーバー名のリストを指定できます。これを使用して、接続するMCPサーバーのセットを制限できます。--allowed-mcp-server-names が設定されている場合は無視されることに注意してください。 | undefined |
mcp.excluded | stringの配列 | 除外するMCPサーバーのブラックリスト。mcp.excluded と mcp.allowed の両方にリストされているサーバーは除外されます。--allowed-mcp-server-names が設定されている場合は無視されることに注意してください。 | undefined |
MCPサーバーに関するセキュリティノート: これらの設定は、変更可能なMCPサーバー名に対して単純な文字列一致を使用します。この回避を防ぎたいシステム管理者は、システム設定レベルで mcpServers を構成して、ユーザーが独自のMCPサーバーを構成できないようにすることを検討してください。これは完全なセキュリティメカニズムとしては使用しないでください。
security
| 設定 | 型 | 説明 | 既定値 |
|---|---|---|---|
security.folderTrust.enabled | boolean | フォルダ信頼が有効かどうかを追跡する設定。 | false |
security.auth.selectedType | string | 現在選択されている認証タイプ。 | undefined |
security.auth.enforcedType | string | 必須の認証タイプ(エンタープライズ向けに有用)。 | undefined |
security.auth.useExternal | boolean | 外部認証フローを使用するかどうか。 | undefined |
advanced
| 設定項目 | 型 | 説明 | デフォルト |
|---|---|---|---|
advanced.autoConfigureMemory | boolean | Node.jsのメモリ制限を自動的に設定します。 | false |
advanced.dnsResolutionOrder | string | DNS解決順序。 | undefined |
advanced.excludedEnvVars | stringの配列 | プロジェクトコンテキストから除外する環境変数。プロジェクトの.envファイルから読み込まれるべきでない環境変数を指定します。これにより、プロジェクト固有の環境変数(例: DEBUG=true)がCLIの動作に干渉するのを防ぎます。.qwen/.envファイルからの変数は決して除外されません。 | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | object | バグレポートコマンドの設定。/bugコマンドのデフォルトURLを上書きします。プロパティ: urlTemplate (string): {title}および{info}プレースホルダーを含むことができるURL。例: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
advanced.tavilyApiKey | string | Tavilyウェブ検索サービスのAPIキー。web_searchツール機能を有効にするために使用されます。 | undefined |
advanced.tavilyApiKeyについての注意: これはレガシーな設定形式です。Qwen OAuthユーザーの場合、DashScopeプロバイダーは設定なしで自動的に利用可能です。他の認証タイプでは、新しいwebSearch設定形式を使用してTavilyまたはGoogleプロバイダーを設定してください。
mcpServers
カスタムツールの検出と使用のため、1つ以上の Model-Context Protocol (MCP) サーバーへの接続を設定します。Qwen Code は、設定された各 MCP サーバーへの接続を試み、利用可能なツールを検出します。複数の MCP サーバーが同じ名前のツールを公開している場合、名前の衝突を避けるために、設定で定義したサーバーエイリアスがツール名にプレフィックスとして付加されます(例: serverAlias__actualToolName)。互換性のため、システムが MCP ツール定義から特定のスキーマプロパティを削除することがある点に注意してください。少なくとも command、url、httpUrl のいずれか1つを指定する必要があります。複数が指定された場合、優先順位は httpUrl、次に url、最後に command となります。
| プロパティ | 型 | 説明 | オプション |
|---|---|---|---|
mcpServers.<SERVER_NAME>.command | string | 標準 I/O 経由で MCP サーバーを起動するためのコマンド。 | はい |
mcpServers.<SERVER_NAME>.args | string の配列 | コマンドに渡す引数。 | はい |
mcpServers.<SERVER_NAME>.env | object | サーバープロセスに対して設定する環境変数。 | はい |
mcpServers.<SERVER_NAME>.cwd | string | サーバーを起動する作業ディレクトリ。 | はい |
mcpServers.<SERVER_NAME>.url | string | 通信に Server-Sent Events (SSE) を使用する MCP サーバーの URL。 | はい |
mcpServers.<SERVER_NAME>.httpUrl | string | 通信にストリーミング可能な HTTP を使用する MCP サーバーの URL。 | はい |
mcpServers.<SERVER_NAME>.headers | object | url または httpUrl へのリクエストで送信する HTTP ヘッダーのマップ。 | はい |
mcpServers.<SERVER_NAME>.timeout | number | この MCP サーバーへのリクエストのタイムアウト(ミリ秒)。 | はい |
mcpServers.<SERVER_NAME>.trust | boolean | このサーバーを信頼し、すべてのツール呼び出し確認をバイパスします。 | はい |
mcpServers.<SERVER_NAME>.description | string | サーバーの簡単な説明。表示目的で使用されることがあります。 | はい |
mcpServers.<SERVER_NAME>.includeTools | string の配列 | この MCP サーバーから含めるツール名のリスト。指定された場合、ここにリストされたツールのみがこのサーバーから利用可能になります(ホワイトリスト方式)。指定されない場合、サーバーのすべてのツールがデフォルトで有効になります。 | はい |
mcpServers.<SERVER_NAME>.excludeTools | string の配列 | この MCP サーバーから除外するツール名のリスト。ここにリストされたツールは、サーバーが公開している場合でもモデルから利用できなくなります。注: excludeTools は includeTools よりも優先されます。ツールが両方のリストにある場合、除外されます。 | はい |
テレメトリー
Qwen Code のロギングとメトリクス収集を設定します。詳細については、テレメトリーを参照してください。
| 設定 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
telemetry.enabled | boolean | テレメトリーが有効かどうか。 | |
telemetry.target | string | 収集したテレメトリーの送信先。サポートされる値は local と gcp です。 | |
telemetry.otlpEndpoint | string | OTLP Exporter のエンドポイント。 | |
telemetry.otlpProtocol | string | OTLP Exporter のプロトコル (grpc または http)。 | |
telemetry.logPrompts | boolean | ログにユーザーのプロンプト内容を含めるかどうか。 | |
telemetry.outfile | string | target が local の場合にテレメトリーを書き出すファイル。 | |
telemetry.useCollector | boolean | 外部の OTLP コレクターを使用するかどうか。 |
settings.json の例
以下は、v0.3.0 で追加されたネスト構造を持つ settings.json ファイルの例です。
{
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"hideBanner": true,
"hideTips": false,
"customWittyPhrases": [
"You forget a thousand things every day. Make sure this is one of 'em",
"Connecting to AGI"
]
},
"tools": {
"approvalMode": "yolo",
"sandbox": "docker",
"discoveryCommand": "bin/get_tools",
"callCommand": "bin/call_tool",
"exclude": ["write_file"]
},
"mcpServers": {
"mainServer": {
"command": "bin/mcp_server.py"
},
"anotherServer": {
"command": "node",
"args": ["mcp_server.js", "--verbose"]
}
},
"telemetry": {
"enabled": true,
"target": "local",
"otlpEndpoint": "http://localhost:4317",
"logPrompts": true
},
"privacy": {
"usageStatisticsEnabled": true
},
"model": {
"name": "qwen3-coder-plus",
"maxSessionTurns": 10,
"enableOpenAILogging": false,
"openAILoggingDir": "~/qwen-logs",
"summarizeToolOutput": {
"run_shell_command": {
"tokenBudget": 100
}
}
},
"context": {
"fileName": ["CONTEXT.md", "QWEN.md"],
"includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"],
"loadFromIncludeDirectories": true,
"fileFiltering": {
"respectGitIgnore": false
}
},
"advanced": {
"excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"]
}
}シェル履歴
CLI は、実行したシェルコマンドの履歴を保持します。複数のプロジェクト間での競合を避けるため、この履歴はユーザーのホームフォルダ内のプロジェクト固有のディレクトリに保存されます。
- 場所:
~/.qwen/tmp/<project_hash>/shell_history<project_hash>はプロジェクトのルートパスから生成される一意の識別子です。- 履歴は
shell_historyという名前のファイルに保存されます。
環境変数と .env ファイル
環境変数は、特に機密情報(トークンなど)や環境間で変更される可能性のある設定をアプリケーションに設定する一般的な方法です。
Qwen Code は .env ファイルから環境変数を自動的に読み込むことができます。
認証関連の変数(OPENAI_* など)および推奨される .qwen/.env アプローチについては、認証 を参照してください。
環境変数の除外: 一部の環境変数(DEBUG や DEBUG_MODE など)は、CLI の動作に干渉しないように、デフォルトでプロジェクトの .env ファイルから自動的に除外されます。.qwen/.env ファイルからの変数は一切除外されません。この動作は、settings.json ファイル内の advanced.excludedEnvVars 設定を使用してカスタマイズできます。
環境変数テーブル
| 変数 | 説明 | 備考 |
|---|---|---|
GEMINI_TELEMETRY_ENABLED | テレメトリを有効にするには true または 1 に設定します。他の値は無効化として扱われます。 | telemetry.enabled 設定を上書きします。 |
GEMINI_TELEMETRY_TARGET | テレメトリのターゲットを設定します(local または gcp)。 | telemetry.target 設定を上書きします。 |
GEMINI_TELEMETRY_OTLP_ENDPOINT | テレメトリ用のOTLPエンドポイントを設定します。 | telemetry.otlpEndpoint 設定を上書きします。 |
GEMINI_TELEMETRY_OTLP_PROTOCOL | OTLPプロトコルを設定します(grpc または http)。 | telemetry.otlpProtocol 設定を上書きします。 |
GEMINI_TELEMETRY_LOG_PROMPTS | ユーザーのプロンプトのログ記録を有効または無効にするには true または 1 に設定します。他の値は無効化として扱われます。 | telemetry.logPrompts 設定を上書きします。 |
GEMINI_TELEMETRY_OUTFILE | ターゲットが local の場合にテレメトリを書き出すファイルパスを設定します。 | telemetry.outfile 設定を上書きします。 |
GEMINI_TELEMETRY_USE_COLLECTOR | 外部OTLPコレクターの使用を有効または無効にするには true または 1 に設定します。他の値は無効化として扱われます。 | telemetry.useCollector 設定を上書きします。 |
GEMINI_SANDBOX | settings.json 内の sandbox 設定の代替です。 | true、false、docker、podman、またはカスタムコマンド文字列を受け入れます。 |
SEATBELT_PROFILE | (macOS固有)macOSでのSeatbelt(sandbox-exec)プロファイルを切り替えます。 | permissive-open:(デフォルト)プロジェクトフォルダ(およびいくつかの他のフォルダ、packages/cli/src/utils/sandbox-macos-permissive-open.sb を参照)への書き込みを制限しますが、他の操作を許可します。strict: デフォルトで操作を拒否する厳格なプロファイルを使用します。<profile_name>: カスタムプロファイルを使用します。カスタムプロファイルを定義するには、プロジェクトの .qwen/ ディレクトリに sandbox-macos-<profile_name>.sb という名前のファイルを作成します(例: my-project/.qwen/sandbox-macos-custom.sb)。 |
DEBUG または DEBUG_MODE | (基盤ライブラリやCLI自体でよく使用される)詳細なデバッグログを有効にするには true または 1 に設定します。これはトラブルシューティングに役立ちます。 | 注: これらの変数はCLIの動作への干渉を防ぐため、デフォルトでプロジェクトの .env ファイルから自動的に除外されます。Qwen Code専用にこれらを設定する必要がある場合は .qwen/.env ファイルを使用してください。 |
NO_COLOR | 任意の値を設定してCLIのすべてのカラーアウトプットを無効にします。 | |
CLI_TITLE | CLIのタイトルをカスタマイズする文字列を設定します。 | |
CODE_ASSIST_ENDPOINT | コードアシストサーバーのエンドポイントを指定します。 | 開発およびテストに便利です。 |
TAVILY_API_KEY | Tavilyウェブ検索サービス用のAPIキーです。 | web_search ツール機能を有効化するために使用されます。例: export TAVILY_API_KEY="tvly-your-api-key-here" |
コマンドライン引数
CLI 実行時に直接渡された引数は、その特定のセッションに対して他の設定を上書きできます。
コマンドライン引数テーブル
| 引数 | エイリアス | 説明 | 可能な値 | 備考 |
|---|---|---|---|---|
--model | -m | このセッションで使用する Qwen モデルを指定します。 | モデル名 | 例: npm start -- --model qwen3-coder-plus |
--prompt | -p | コマンドに直接プロンプトを渡すために使用します。これにより、Qwen Code が非対話モードで実行されます。 | プロンプトテキスト | スクリプトの例では、構造化された出力を得るために --output-format json フラグを使用してください。 |
--prompt-interactive | -i | 指定されたプロンプトを初期入力として対話セッションを開始します。 | プロンプトテキスト | プロンプトは対話セッション内で処理され、その前に処理されることはありません。標準入力からのパイプ入力時は使用できません。例: qwen -i "explain this code" |
--output-format | -o | 非対話モードでの CLI 出力形式を指定します。 | text, json, stream-json | text: (デフォルト) 標準的な人間が読める出力。json: 実行終了時に出力される機械が読める JSON 出力。stream-json: 実行中に発生する順にストリーミングされる JSON メッセージ。構造化出力とスクリプティングの場合は、--output-format json または --output-format stream-json フラグを使用してください。詳細情報は ヘッドレスモード を参照してください。 |
--input-format | 標準入力から消費される形式を指定します。 | text, stream-json | text: (デフォルト) 標準入力またはコマンドライン引数からのテキスト入力。stream-json: 双方向通信のための標準入力経由の JSON メッセージプロトコル。要件: --input-format stream-json には --output-format stream-json の設定が必要です。stream-json 使用時は、標準入力はプロトコルメッセージ用に予約されます。詳細情報は ヘッドレスモード を参照してください。 | |
--include-partial-messages | stream-json 出力形式使用時に、部分的なアシスタントメッセージを含めます。有効化すると、ストリーミング中に発生する順にストリームイベント (message_start、content_block_delta など) を出力します。 | デフォルト: false。要件: --output-format stream-json の設定が必要です。ストリームイベントの詳細については ヘッドレスモード を参照してください。 | ||
--sandbox | -s | このセッションのサンドボックスモードを有効にします。 | ||
--sandbox-image | サンドボックスイメージの URI を設定します。 | |||
--debug | -d | このセッションのデバッグモードを有効にし、より詳細な出力を提供します。 | ||
--all-files | -a | 設定されている場合、現在のディレクトリ内のすべてのファイルを再帰的に含め、プロンプトのコンテキストとして使用します。 | ||
--help | -h | コマンドライン引数に関するヘルプ情報を表示します。 | ||
--show-memory-usage | 現在のメモリ使用量を表示します。 | |||
--yolo | YOLO モードを有効にします。これはすべてのツール呼び出しを自動的に承認します。 | |||
--approval-mode | ツール呼び出しの承認モードを設定します。 | plan, default, auto-edit, yolo | サポートされるモード: plan: 分析のみ—ファイルの変更やコマンドの実行は行いません。default: ファイル編集やシェルコマンドの承認が必要です (デフォルト動作)。auto-edit: 他のツール呼び出しのプロンプト中に編集ツール (edit、write_file) を自動的に承認します。yolo: すべてのツール呼び出しを自動的に承認します (--yolo と同等)。--yolo と同時に使用することはできません。新しい統合アプローチでは --yolo の代わりに --approval-mode=yolo を使用してください。例: qwen --approval-mode auto-edit承認モード の詳細を参照してください。 | |
--allowed-tools | 確認ダイアログをバイパスするツール名のカンマ区切りリスト。 | ツール名 | 例: qwen --allowed-tools "Shell(git status)" | |
--telemetry | テレメトリ を有効にします。 | |||
--telemetry-target | テレメトリターゲットを設定します。 | 詳細は テレメトリ を参照してください。 | ||
--telemetry-otlp-endpoint | テレメトリの OTLP エンドポイントを設定します。 | 詳細は テレメトリ を参照してください。 | ||
--telemetry-otlp-protocol | テレメトリの OTLP プロトコル (grpc または http) を設定します。 | デフォルトは grpc です。詳細は テレメトリ を参照してください。 | ||
--telemetry-log-prompts | テレメトリ用のプロンプトログを有効にします。 | 詳細は テレメトリ を参照してください。 | ||
--checkpointing | チェックポイント を有効にします。 | |||
--experimental-acp | ACP モード (エージェント制御プロトコル) を有効にします。Zed のような IDE/エディタ統合に便利です。 | 実験的機能です。 | ||
--experimental-skills | 実験的な エージェントスキル を有効にします (skill ツールを登録し、.qwen/skills/ および ~/.qwen/skills/ からスキルを読み込みます)。 | 実験的機能です。 | ||
--extensions | -e | セッションで使用する拡張機能のリストを指定します。 | 拡張機能名 | 指定されていない場合、利用可能なすべての拡張機能が使用されます。qwen -e none という特殊な用語を使用して、すべての拡張機能を無効化できます。例: qwen -e my-extension -e my-other-extension |
--list-extensions | -l | 利用可能なすべての拡張機能を一覧表示して終了します。 | ||
--proxy | CLI のプロキシを設定します。 | プロキシ URL | 例: --proxy http://localhost:7890。 | |
--include-directories | マルチディレクトリサポートのためにワークスペースに追加のディレクトリを含めます。 | ディレクトリパス | 複数回指定するか、カンマ区切りの値として指定できます。最大 5 つのディレクトリを追加できます。例: --include-directories /path/to/project1,/path/to/project2 または --include-directories /path/to/project1 --include-directories /path/to/project2 | |
--screen-reader | スクリーンリーダーモードを有効にします。これにより、TUI がスクリーンリーダーとの互換性向上のために調整されます。 | |||
--version | CLI のバージョンを表示します。 | |||
--openai-logging | デバッグと分析のための OpenAI API 呼び出しのログを有効にします。 | このフラグは settings.json 内の enableOpenAILogging 設定を上書きします。 | ||
--openai-logging-dir | OpenAI API ログのカスタムディレクトリパスを設定します。 | ディレクトリパス | このフラグは settings.json 内の openAILoggingDir 設定を上書きします。絶対パス、相対パス、および ~ 展開をサポートします。例: qwen --openai-logging-dir "~/qwen-logs" --openai-logging | |
--tavily-api-key | このセッションのウェブ検索機能用に Tavily API キーを設定します。 | API キー | 例: qwen --tavily-api-key tvly-your-api-key-here |
コンテキストファイル(階層的指示文脈)
CLIの_動作_に対する厳密な設定ではありませんが、コンテキストファイル(デフォルトはQWEN.md、context.fileName設定で変更可能)は、指示文脈(「メモリ」とも呼ばれます)を設定するために不可欠です。この強力な機能により、プロジェクト固有の指示、コーディングスタイルガイド、または関連する背景情報をAIに提供でき、応答をニーズに合わせてより適切かつ正確にすることができます。CLIには、ロードされたコンテキストファイル数をフッターのインジケーターで表示するなどのUI要素があり、アクティブなコンテキストについて常に把握できます。
- 目的: これらのMarkdownファイルには、Qwenモデルが対話中に認識しておくべき指示、ガイドライン、またはコンテキストが含まれます。このシステムは、指示文脈を階層的に管理するように設計されています。
コンテキストファイルの例 (例: QWEN.md)
以下は、TypeScriptプロジェクトのルートに配置されるコンテキストファイルに含まれる内容の概念的な例です:
# プロジェクト: My Awesome TypeScript Library
## 全般的な指示:
- 新しいTypeScriptコードを生成する際は、既存のコーディングスタイルに従ってください。
- 新しい関数とクラスにはすべてJSDocコメントを付けてください。
- 適切な場面では関数型プログラミングパラダイムを優先してください。
- すべてのコードはTypeScript 5.0およびNode.js 20+と互換性を持つ必要があります。
## コーディングスタイル:
- インデントには2つのスペースを使用してください。
- インターフェース名には `I` をプレフィックスとして付けてください (例: `IUserService`)。
- プライベートなクラスメンバーにはアンダースコア (`_`) をプレフィックスとして付けてください。
- 常に厳密等価演算子 (`===` および `!==`) を使用してください。
## 特定のコンポーネント: `src/api/client.ts`
- このファイルはすべてのアウトバウンドAPIリクエストを処理します。
- 新しいAPI呼び出し関数を追加する際は、堅牢なエラーハンドリングとロギングを含めるようにしてください。
- すべてのGETリクエストには既存の `fetchWithRetry` ユーティリティを使用してください。依存関係について:
- 新しい外部依存関係は、絶対に必要な場合を除いて導入しないでください。
- 新しい依存関係が必要な場合は、その理由を明記してください。
この例は、一般的なプロジェクトコンテキスト、特定のコーディング規約、特定のファイルやコンポーネントに関するメモを提供する方法を示しています。コンテキストファイルが関連性が高く正確であればあるほど、AIはより適切に支援できます。プロジェクト固有のコンテキストファイルは、規約やコンテキストを確立するために強く推奨されます。
- **階層的な読み込みと優先順位:** CLIは、複数の場所からコンテキストファイル(例: `QWEN.md`)を読み込むことで、洗練された階層的メモリーシステムを実装しています。このリストの下位(より具体的)にあるファイルの内容は、通常、上位(より一般的)にあるファイルの内容を上書きまたは補完します。正確な連結順序と最終的なコンテキストは、`/memory show` コマンドを使用して確認できます。通常の読み込み順序は以下の通りです:
1. **グローバルコンテキストファイル:**
- 位置: `~/.qwen/<設定されたコンテキストファイル名>`(例: ユーザーホームディレクトリ内の `~/.qwen/QWEN.md`)。
- 範囲: すべてのプロジェクトに対するデフォルトの指示を提供します。
2. **プロジェクトルートと親ディレクトリのコンテキストファイル:**
- 位置: CLIは、現在の作業ディレクトリから開始し、プロジェクトルート(`.git` フォルダで識別される)またはホームディレクトリまでの各親ディレクトリで設定されたコンテキストファイルを検索します。
- 範囲: プロジェクト全体またはその重要な部分に関連するコンテキストを提供します。
3. **サブディレクトリコンテキストファイル(コンテキスト的/ローカル):**
- 位置: CLIは、現在の作業ディレクトリの下にあるサブディレクトリでも設定されたコンテキストファイルをスキャンします(`node_modules`、`.git` などの一般的な無視パターンを尊重します)。この検索の範囲はデフォルトで200ディレクトリに制限されていますが、`settings.json` ファイルの `context.discoveryMaxDirs` 設定で構成できます。
- 範囲: プロジェクトの特定のコンポーネント、モジュール、またはサブセクションに関連する非常に具体的な指示を可能にします。
- **連結とUI表示:** 見つかったすべてのコンテキストファイルの内容は連結され(出所とパスを示すセパレータ付き)、システムプロンプトの一部として提供されます。CLIのフッターには読み込まれたコンテキストファイルの数が表示され、アクティブな指示コンテキストについての視覚的な手がかりを提供します。
- **コンテンツのインポート:** `@path/to/file.md` 構文を使用して他のMarkdownファイルをインポートすることで、コンテキストファイルをモジュール化できます。詳細については、[メモリーインポートプロセッサのドキュメント](../configuration/memory)を参照してください。
- **メモリー管理のためのコマンド:**
- `/memory refresh` を使用して、すべての設定された場所からすべてのコンテキストファイルを強制的に再スキャンおよび再読み込みします。これにより、AIの指示コンテキストが更新されます。
- `/memory show` を使用して、現在読み込まれている結合された指示コンテキストを表示し、AIが使用している階層とコンテンツを確認できます。
- `/memory` コマンドとそのサブコマンド(`show` および `refresh`)の詳細については、[コマンドドキュメント](../features/commands)を参照してください。
これらの設定レイヤーとコンテキストファイルの階層的性質を理解し活用することで、AIのメモリーを効果的に管理し、Qwen Codeの応答を特定のニーズやプロジェクトに合わせて調整できます。
## サンドボックス
Qwen Code は、シェルコマンドやファイルの変更など、潜在的に安全でない操作をサンドボックス化された環境内で実行して、システムを保護できます。
[サンドボックス](../features/sandbox) はデフォルトでは無効になっていますが、以下の方法で有効にできます。
- `--sandbox` または `-s` フラグを使用する
- `GEMINI_SANDBOX` 環境変数を設定する
- `--yolo` または `--approval-mode=yolo` を使用する場合、デフォルトでサンドボックスが有効になります
デフォルトでは、事前に構築された `qwen-code-sandbox` Docker イメージが使用されます。
プロジェクト固有のサンドボックス化が必要な場合は、プロジェクトのルートディレクトリに `.qwen/sandbox.Dockerfile` としてカスタム Dockerfile を作成できます。この Dockerfile はベースのサンドボックスイメージに基づくことができます。
FROM qwen-code-sandbox
ここにカスタムの依存関係や設定を追加してください
例:
RUN apt-get update && apt-get install -y some-package
COPY ./my-config /app/my-config
`.qwen/sandbox.Dockerfile` が存在する場合、Qwen Code を実行する際に `BUILD_SANDBOX` 環境変数を使用して、カスタムサンドボックスイメージを自動的にビルドできます。
BUILD_SANDBOX=1 qwen -s
## 使用状況統計
Qwen Code の改善を支援するために、匿名化された使用状況統計を収集しています。このデータにより、CLI の使用方法を理解し、一般的な問題を特定し、新機能の優先順位を決定するのに役立ちます。
**収集する情報:**
- **ツール呼び出し:** 呼び出されたツールの名前、成功または失敗の結果、実行に要した時間を記録します。ツールに渡された引数や、ツールから返されたデータは収集しません。
- **API リクエスト:** 各リクエストで使用されたモデル、リクエストの期間、成功したかどうかを記録します。プロンプトやレスポンスの内容は収集しません。
- **セッション情報:** 有効化されたツールや承認モードなどの CLI の構成情報について収集します。
**収集しない情報:**
- **個人を特定可能な情報 (PII):** 名前、メールアドレス、API キーなどの個人情報は一切収集しません。
- **プロンプトとレスポンスの内容:** プロンプトの内容やモデルからのレスポンスは記録しません。
- **ファイルの内容:** CLI によって読み込まれたり書き込まれたりするファイルの内容は記録しません。
**オプトアウト方法:**
`settings.json` ファイル内の `privacy` カテゴリで `usageStatisticsEnabled` プロパティを `false` に設定することで、いつでも使用状況統計の収集をオプトアウトできます。
{ “privacy”: { “usageStatisticsEnabled”: false } }
> [!note]
>
> 使用状況統計が有効になっている場合、イベントは Alibaba Cloud RUM 収集エンドポイントに送信されます。