Qwen Code の設定
認証 / API キー: 認証(API キー、Alibaba Cloud Coding Plan)および認証関連の環境変数(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を含むディレクトリです)。
設定の移行
Qwen Code は、レガシーな設定を新しい形式に自動的に移行します。移行前に旧設定ファイルはバックアップされます。以下の設定は、否定形(disable*)から肯定形(enable*)の命名に変更されました:
| 旧設定 | 新設定 | 備考 |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | 単一設定に統合 |
disableLoadingPhrases | ui.accessibility.enableLoadingPhrases | |
disableFuzzySearch | context.fileFiltering.enableFuzzySearch | |
disableCacheControl | model.generationConfig.enableCacheControl |
真偽値の反転: 移行時、真偽値は反転されます(例:disableAutoUpdate: true は enableAutoUpdate: false になります)。
disableAutoUpdate と disableUpdateNag の統合ポリシー
両方のレガシー設定が存在し、値が異なる場合、移行は以下のポリシーに従います:いずれかの disableAutoUpdate または disableUpdateNag が true の場合、enableAutoUpdate は false になります:
disableAutoUpdate | disableUpdateNag | 移行後の enableAutoUpdate |
|---|---|---|
false | false | true |
false | true | false |
true | false | false |
true | true | false |
settings.json で利用可能な設定
設定はカテゴリ別に整理されています。ほとんどの設定は、settings.json ファイル内の対応するトップレベルカテゴリオブジェクト内に配置する必要があります。proxy などの一部の互換性設定はトップレベルキーです。
top-level
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
proxy | string | CLI HTTP リクエスト用のプロキシ URL。優先順位は --proxy > settings.json 内の proxy > HTTPS_PROXY / https_proxy / HTTP_PROXY / http_proxy 環境変数。 | undefined |
general
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
general.preferredEditor | string | ファイルを開く際に優先するエディタ。 | undefined |
general.vimMode | boolean | Vim キーバインドを有効化。 | false |
general.enableAutoUpdate | boolean | 起動時の自動更新チェックとインストールを有効化。 | true |
general.showSessionRecap | boolean | 離席後にターミナルに戻った際、「前回の続き」の要約を 1 行で自動表示。デフォルトはオフ。この設定に関係なく /recap で手動トリガー可能。 | false |
general.sessionRecapAwayThresholdMinutes | number | フォーカスイン時に自動要約がトリガーされるまでのターミナル非アクティブ時間(分)。showSessionRecap が有効な場合のみ使用。 | 5 |
general.gitCoAuthor | boolean | Qwen Code 経由でコミットを行う際、git コミットメッセージに Co-authored-by トレイラーを自動追加。 | true |
general.checkpointing.enabled | boolean | リカバリ用のセッションチェックポイントを有効化。 | false |
general.defaultFileEncoding | string | 新規ファイルのデフォルトエンコーディング。BOM なし UTF-8 の場合は "utf-8"(デフォルト)、BOM 付き UTF-8 の場合は "utf-8-bom"。プロジェクトで BOM が必須の場合のみ変更。 | "utf-8" |
output
| 設定 | 型 | 説明 | デフォルト | 可能な値 |
|---|---|---|---|---|
output.format | string | CLI 出力の形式。 | "text" | "text", "json" |
ui
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ui.theme | string | UI のカラースキーマ。利用可能なオプションは テーマ を参照。 | undefined |
ui.customThemes | object | カスタムテーマ定義。 | {} |
ui.statusLine | object | カスタムステータスライン設定。フッター左セクションに表示されるシェルコマンド。ステータスライン を参照。 | undefined |
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 |
ui.compactMode | boolean | ツール出力と思考プロセスを非表示にし、表示をクリーンに。セッション中は Ctrl+O、または設定ダイアログで切り替え可能。コンパクトモードでもツール承認プロンプトは常に表示されます。設定はセッション間で保持されます。 | false |
ui.shellOutputMaxLines | number | インライン表示されるシェル出力の最大行数。0 に設定すると上限を無効化し、全出力を表示。非表示の行は +N lines インジケーターで示されます。エラー、! プレフィックスのユーザー開始コマンド、ツール確認、フォーカスされた埋め込みシェルは常に全出力を表示。 | 5 |
enableWelcomeBack | boolean | 会話履歴のあるプロジェクトに戻った際にウェルカムバックダイアログを表示。有効化すると、Qwen Code は以前生成されたプロジェクトサマリー(.qwen/PROJECT_SUMMARY.md)があるプロジェクトに戻ったことを自動検出し、以前の会話を続けるか新規開始するかを選択するダイアログを表示します。新しいチャットセッションを開始を選択した場合、その選択はプロジェクトサマリーが変更されるまで現在のプロジェクトで記憶されます。この機能は /summary コマンドおよび終了確認ダイアログと連携します。 | true |
ui.accessibility.enableLoadingPhrases | boolean | ローディングフレーズを有効化(アクセシビリティ向上のために無効化可能)。 | true |
ui.accessibility.screenReader | boolean | スクリーンリーダーモードを有効化。TUI をスクリーンリーダーとの互換性向上のために調整します。 | false |
ui.customWittyPhrases | array of strings | ローディング状態に表示するカスタムフレーズのリスト。指定すると、CLI はデフォルトの代わりにこれらのフレーズを循環表示します。 | [] |
ui.enableFollowupSuggestions | boolean | モデル応答後に入力予測を行う フォローアップ提案 を有効化。提案はゴーストテキストとして表示され、Tab、Enter、または右矢印キーで確定可能。 | true |
ui.enableCacheSharing | boolean | 提案生成にキャッシュ対応フォーククエリを使用。プレフィックスキャッシュをサポートするプロバイダーでのコスト削減に有効(実験的)。 | true |
ui.enableSpeculation | boolean | 確定した提案を提出前に投機的に実行。確定時に結果が即座に表示されます(実験的)。 | false |
experimental.emitToolUseSummaries | boolean | 各ツール呼び出しバッチを要約する短い LLM ベースのラベルを生成。ツール使用サマリー を参照。fastModel の設定が必要。未設定の場合は自動的にスキップされます。セッションごとに QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 または =1 で上書き可能。 | true |
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.generationConfig | object | 基盤のコンテンツジェネレーターに渡される高度な上書き設定。timeout、maxRetries、enableCacheControl、splitToolMedia(LM Studio などの厳密な OpenAI 互換サーバー向け。role: "tool" メッセージで非テキストコンテンツを拒否する場合、メディアをフォローアップユーザーメッセージに分割)、contextWindowSize(モデルのコンテキストウィンドウサイズを上書き)、modalities(自動検出された入力モダリティを上書き)、customHeaders(API リクエスト用のカスタム HTTP ヘッダー)、extra_body(OpenAI 互換 API リクエスト専用の追加ボディパラメータ)、reasoning({ effort: 'low' | 'medium' | 'high' | 'max', budget_tokens?: number } で思考強度を制御、または false で無効化。'max' は DeepSeek 拡張 — プロバイダーごとの動作は 推論/思考設定 を参照。注意: OpenAI 互換プロバイダーで samplingParams が設定されている場合、パイプラインはそれらのキーをそのまま送信し、別個のトップレベル reasoning フィールドは削除されます。その場合は reasoning_effort を samplingParams(または extra_body)内に配置してください)、および 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,
"contextWindowSize": 128000,
"modalities": {
"image": true
},
"enableCacheControl": true,
"customHeaders": {
"X-Client-Request-ID": "req-123"
},
"extra_body": {
"enable_thinking": true
},
"samplingParams": {
"temperature": 0.2,
"top_p": 0.8,
"max_tokens": 1024
}
}
}
}max_tokens(適応型出力トークン):
samplingParams.max_tokens が未設定の場合、Qwen Code は GPU リソース使用量を最適化するために適応型出力トークン戦略を使用します:
- リクエストはデフォルトで 8K 出力トークンの制限から開始
- 応答が切り捨てられた場合(モデルが制限に達した場合)、Qwen Code は自動的に 64K トークンで再試行
- 部分的な出力は破棄され、再試行からの完全な応答に置き換えられます
これはユーザーに対して透過的です — エスカレーションが発生した場合、一時的に再試行インジケーターが表示される場合があります。応答の 99% は 5K トークン未満であるため、再試行はまれにしか発生しません(リクエストの 1% 未満)。
この動作を上書きするには、設定で samplingParams.max_tokens を設定するか、QWEN_CODE_MAX_OUTPUT_TOKENS 環境変数を使用してください。
contextWindowSize:
選択したモデルのデフォルトコンテキストウィンドウサイズを上書きします。Qwen Code はモデル名マッチングに基づき、組み込みのデフォルトと定数フォールバック値を使用してコンテキストウィンドウを決定します。プロバイダーの実効コンテキスト制限が Qwen Code のデフォルトと異なる場合にこの設定を使用してください。この値はモデルの想定される最大コンテキスト容量を定義するものであり、リクエストごとのトークン制限ではありません。
modalities:
選択したモデルの自動検出された入力モダリティを上書きします。Qwen Code はモデル名パターンマッチングに基づき、サポートされているモダリティ(画像、PDF、音声、動画)を自動検出します。自動検出が不正確な場合(例:サポートしているが認識されていないモデルで pdf を有効化する場合)にこの設定を使用してください。形式:{ "image": true, "pdf": true, "audio": true, "video": true }。サポートされていないタイプはキーを省略するか false に設定。
customHeaders:
すべての API リクエストにカスタム HTTP ヘッダーを追加できます。リクエストのトレーシング、モニタリング、API ゲートウェイルーティング、またはモデルごとに異なるヘッダーが必要な場合に有用です。modelProviders[].generationConfig.customHeaders で customHeaders が定義されている場合は直接使用され、それ以外の場合は model.generationConfig.customHeaders のヘッダーが使用されます。2 つのレベル間でマージは行われません。
extra_body フィールドを使用すると、API に送信されるリクエストボディにカスタムパラメータを追加できます。標準設定フィールドでカバーされていないプロバイダー固有のオプションに有用です。注意: このフィールドは OpenAI 互換プロバイダー(openai、qwen-oauth)でのみサポートされます。Anthropic および Gemini プロバイダーでは無視されます。 modelProviders[].generationConfig.extra_body で extra_body が定義されている場合は直接使用され、それ以外の場合は model.generationConfig.extra_body の値が使用されます。
model.openAILoggingDir の例:
"~/qwen-logs"-~/qwen-logsディレクトリにログ出力"./custom-logs"- 現在のディレクトリからの相対パス./custom-logsにログ出力"/tmp/openai-logs"- 絶対パス/tmp/openai-logsにログ出力
fastModel
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
fastModel | string | プロンプト提案 および投機的実行の生成に使用されるモデル。メインモデルを使用する場合は空のままにしてください。小型/高速モデル(例:qwen3-coder-flash)はレイテンシとコストを削減します。/model --fast でも設定可能。 | "" |
context
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
context.fileName | string or array of strings | コンテキストファイルの名前。 | undefined |
context.importFormat | string | メモリインポート時に使用する形式。 | undefined |
context.includeDirectories | array | ワークスペースコンテキストに含める追加ディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。デフォルトでは、存在しないディレクトリは警告付きでスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --include-directories コマンドラインフラグと組み合わせ可能です。 | [] |
context.loadFromIncludeDirectories | boolean | /memory refresh コマンドの動作を制御します。true に設定すると、追加されたすべてのディレクトリから QWEN.md ファイルが読み込まれます。false に設定すると、QWEN.md は現在のディレクトリからのみ読み込まれます。 | false |
context.fileFiltering.respectGitIgnore | boolean | 検索時に .gitignore ファイルを尊重。 | true |
context.fileFiltering.respectQwenIgnore | boolean | 検索時に .qwenignore ファイルを尊重。 | true |
context.fileFiltering.enableRecursiveFileSearch | boolean | プロンプトで @ プレフィックスを補完する際、現在のツリー下でファイル名を再帰的に検索するかどうか。 | true |
context.fileFiltering.enableFuzzySearch | boolean | true の場合、ファイル検索時にファジー検索機能を有効化。ファイル数が非常に多いプロジェクトでパフォーマンスを向上させるには false に設定。 | true |
context.clearContextOnIdle.toolResultsThresholdMinutes | number | 古いツール結果コンテンツをクリアするまでの非アクティブ時間(分)。無効化するには -1 を使用。 | 60 |
context.clearContextOnIdle.toolResultsNumToKeep | number | クリア時に保持する最新コンパクト化可能ツール結果の数。最小値は 1。 | 5 |
ファイル検索パフォーマンスのトラブルシューティング
ファイル検索(例:@ 補完)でパフォーマンスの問題が発生している場合、特にファイル数が非常に多いプロジェクトでは、推奨順に以下の方法を試してください:
.qwenignoreの使用: プロジェクトルートに.qwenignoreファイルを作成し、参照不要な大量のファイルを含むディレクトリ(例:ビルド成果物、ログ、node_modules)を除外します。クロールされるファイルの総数を減らすことが、パフォーマンス向上に最も効果的です。- ファジー検索の無効化: ファイルの除外だけでは不十分な場合、
settings.jsonでenableFuzzySearchをfalseに設定してファジー検索を無効化できます。これにより、より単純な非ファジーマッチングアルゴリズムが使用され、高速化される場合があります。 - 再帰ファイル検索の無効化: 最終手段として、
enableRecursiveFileSearchをfalseに設定して再帰ファイル検索を完全に無効化できます。プロジェクトの再帰クロールを回避するため、これが最速のオプションになります。ただし、@補完使用時にファイルへのフルパスを入力する必要があります。
tools
| 設定 | 型 | 説明 | デフォルト | 備考 |
|---|---|---|---|---|
tools.sandbox | boolean or string | サンドボックス実行環境(真偽値またはパス文字列)。 | undefined | |
tools.sandboxImage | string | --sandbox-image および QWEN_SANDBOX_IMAGE が未設定の場合、Docker/Podman で使用されるサンドボックスイメージ URI。 | undefined | |
tools.shell.enableInteractiveShell | boolean | インタラクティブシェル体験に node-pty を使用。child_process へのフォールバックは引き続き適用されます。 | false | |
tools.core | array of strings | 非推奨。 次バージョンで削除予定。代わりに permissions.allow + permissions.deny を使用してください。組み込みツールを許可リストに制限します。リストにないすべてのツールは無効化されます。 | undefined | |
tools.exclude | array of strings | 非推奨。 代わりに permissions.deny を使用してください。発見から除外するツール名。初回読み込み時に自動的に permissions 形式に移行されます。 | undefined | |
tools.allowed | array of strings | 非推奨。 代わりに permissions.allow を使用してください。確認ダイアログをバイパスするツール名。初回読み込み時に自動的に permissions 形式に移行されます。 | undefined | |
tools.approvalMode | string | ツール使用のデフォルト承認モードを設定。 | default | 可能な値: plan(分析のみ、ファイル変更やコマンド実行は不可)、default(ファイル編集またはシェルコマンド実行前に承認を要求)、auto-edit(ファイル編集を自動承認)、yolo(すべてのツール呼び出しを自動承認) |
tools.discoveryCommand | string | ツール発見のために実行するコマンド。 | undefined | |
tools.callCommand | string | tools.discoveryCommand で発見された特定のツールを呼び出すためのカスタムシェルコマンドを定義。シェルコマンドは以下の条件を満たす必要があります:最初の引数として関数 name(関数宣言 と完全に一致)を受け取る。stdin 上で JSON として関数引数を読み取る(functionCall.args に類似)。stdout 上で JSON として関数出力を返す(functionResponse.response.content に類似)。 | undefined | |
tools.useRipgrep | boolean | フォールバック実装の代わりにファイルコンテンツ検索に ripgrep を使用。検索パフォーマンスが向上します。 | true | |
tools.useBuiltinRipgrep | boolean | 同梱の ripgrep バイナリを使用。false に設定すると、システムレベルの rg コマンドが代わりに使用されます。この設定は tools.useRipgrep が true の場合のみ有効です。 | true | |
tools.truncateToolOutputThreshold | number | この文字数を超える場合、ツール出力を切り捨て。Shell、Grep、Glob、ReadFile、ReadManyFiles ツールに適用。 | 25000 | 再起動が必要: はい |
tools.truncateToolOutputLines | number | ツール出力切り捨て時に保持する最大行数またはエントリ数。Shell、Grep、Glob、ReadFile、ReadManyFiles ツールに適用。 | 1000 | 再起動が必要: はい |
tools.core / tools.exclude / tools.allowed からの移行: これらのレガシー設定は非推奨であり、初回読み込み時に自動的に新しい permissions 形式に移行されます。permissions.allow / permissions.deny を直接設定することを推奨します。/permissions を使用してルールを対話的に管理できます。
memory
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
memory.enableManagedAutoMemory | boolean | 会話からのメモリのバックグラウンド抽出を有効化。 | true |
memory.enableManagedAutoDream | boolean | 収集されたメモリの自動統合(重複排除とクリーンアップ)を有効化。 | false |
自動メモリの動作方法および /memory、/remember、/dream コマンドの使用方法については メモリ を参照してください。
permissions
権限システムは、どのツールを実行可能か、どのツールに確認が必要か、どのツールがブロックされるかを細かく制御します。
決定優先順位(高い順): deny > ask > allow > (デフォルト/インタラクティブモード)
最初に一致するルールが適用されます。ルールは "ToolName" または "ToolName(specifier)" 形式を使用します。
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
permissions.allow | array of strings | 自動承認されるツール呼び出しのルール(確認不要)。すべてのスコープ(ユーザー + プロジェクト + システム)でマージされます。 | undefined |
permissions.ask | array of strings | 常にユーザー確認が必要なツール呼び出しのルール。allow より優先されます。 | undefined |
permissions.deny | array of strings | ブロックされるツール呼び出しのルール。最高優先度 — allow と ask の両方を上書きします。 | undefined |
ツール名エイリアス(ルール内でいずれも使用可能):
| エイリアス | 正規ツール | 備考 |
|---|---|---|
Bash, Shell | run_shell_command | |
Read, ReadFile | read_file | メタカテゴリ — 下記参照 |
Edit, EditFile | edit | メタカテゴリ — 下記参照 |
Write, WriteFile | write_file | |
Grep, SearchFiles | grep_search | |
Glob, FindFiles | glob | |
ListFiles | list_directory | |
WebFetch | web_fetch | |
Agent | task | |
Skill | skill |
メタカテゴリ:
一部のルール名は複数のツールを自動的にカバーします:
| ルール名 | カバーされるツール |
|---|---|
Read | read_file, grep_search, glob, list_directory |
Edit | edit, write_file |
[!important]
Read(/path/**)は 4 つすべて の読み取りツール(ファイル読み取り、grep、glob、ディレクトリ一覧)に一致します。 ファイル読み取りのみを制限するには、ReadFile(/path/**)またはread_file(/path/**)を使用してください。
ルール構文の例:
| ルール | 意味 |
|---|---|
"Bash" | すべてのシェルコマンド |
"Bash(git *)" | git で始まるシェルコマンド(単語境界:gitk は含まない) |
"Bash(git push *)" | git push origin main のようなシェルコマンド |
"Bash(npm run *)" | 任意の npm run スクリプト |
"Read" | すべてのファイル読み取り操作(read、grep、glob、list) |
"Read(./secrets/**)" | ./secrets/ 配下の任意のファイルを再帰的に読み取り |
"Edit(/src/**/*.ts)" | プロジェクトルート /src/ 配下の TypeScript ファイルを編集 |
"WebFetch(api.example.com)" | api.example.com およびそのすべてのサブドメインからフェッチ |
"mcp__puppeteer" | puppeteer MCP サーバーからのすべてのツール |
パスパターンプレフィックス:
| プレフィックス | 意味 | 例 |
|---|---|---|
// | ファイルシステムルートからの絶対パス | //etc/passwd |
~/ | ホームディレクトリからの相対パス | ~/Documents/*.pdf |
/ | プロジェクトルートからの相対パス | /src/**/*.ts |
./ | 現在の作業ディレクトリからの相対パス | ./secrets/** |
| (なし) | ./ と同じ | secrets/** |
シェルコマンドバイパス防止:
Read、Edit、WebFetch の権限ルールは、エージェントが同等のシェルコマンドを実行する場合にも適用されます。例えば、deny に Read(./.env) が含まれている場合、エージェントはシェルコマンドで cat .env を実行してバイパスできません。サポートされるシェルコマンドには cat、grep、curl、wget、cp、mv、rm、chmod など多数が含まれます。不明/安全なコマンド(例:git)はファイル/ネットワークルールの影響を受けません。
レガシー設定からの移行:
| レガシー設定 | 同等の permissions ルール | 備考 |
|---|---|---|
tools.allowed | permissions.allow | 初回読み込み時に自動移行 |
tools.exclude | permissions.deny | 初回読み込み時に自動移行 |
tools.core | permissions.allow(許可リスト) | 自動移行。リストにないツールはレジストリレベルで無効化 |
設定例:
{
"permissions": {
"allow": ["Bash(git *)", "Bash(npm run *)", "Read(//Users/alice/code/**)"],
"ask": ["Bash(git push *)", "Edit"],
"deny": ["Bash(rm -rf *)", "Read(.env)", "WebFetch(malicious.com)"]
}
}[!tip]
settings.jsonを直接編集せずに、インタラクティブ CLI で/permissionsを使用してルールを表示、追加、削除できます。
slashCommands
CLI で利用可能なスラッシュコマンドを制御します。マルチテナントまたはエンタープライズ環境でコマンド表面をロックダウンする場合に有用です。
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
slashCommands.disabled | array of strings | 非表示にし、実行を拒否するスラッシュコマンド名。最終的なコマンド名に対して大文字小文字を区別せずにマッチング(拡張コマンドの場合は明確化された形式、例:myext.deploy)。スコープ間でユニオンとしてマージされるため、ワークスペース設定はユーザーまたはシステム設定で定義されたエントリを追加できますが、削除はできません。 | undefined |
同じ拒否リストは、--disabled-slash-commands CLI フラグ(カンマ区切りまたは繰り返し)および QWEN_DISABLED_SLASH_COMMANDS 環境変数でも提供可能。3 つのソースからの値はすべてユニオンされます。
例 — サンドボックス環境の組み込みコマンドをロックダウン:
{
"slashCommands": {
"disabled": ["auth", "mcp", "extensions", "ide", "quit"]
}
}システムレベルの settings.json(/etc/qwen-code/settings.json または QWEN_CODE_SYSTEM_SETTINGS_PATH)にこれらの値を設定すると、ユーザーは自身のスコープから拒否リストを縮小できず、無効化されたコマンドはオートコンプリートに表示されず、入力しても実行されません。
[!note] この設定はスラッシュコマンド(例:
/auth、/mcp)のみを制御します。ツール権限には影響しません — その場合はpermissions.denyを参照してください。また、Ctrl+CやEscなどのキーボードショートカットもインターセプトしません。
mcp
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
mcp.serverCommand | string | MCP サーバーを起動するコマンド。 | undefined |
mcp.allowed | array of strings | 許可する MCP サーバーの許可リスト。モデルに利用可能にする MCP サーバー名のリストを指定できます。接続する MCP サーバーのセットを制限するために使用できます。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。 | undefined |
mcp.excluded | array of strings | 除外する MCP サーバーの拒否リスト。mcp.excluded と mcp.allowed の両方にリストされているサーバーは除外されます。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。 | undefined |
MCP サーバーのセキュリティに関する注意: これらの設定は変更可能な MCP サーバー名に対する単純な文字列マッチングを使用します。ユーザーのバイパスを防ぎたいシステム管理者の場合、ユーザーが独自の MCP サーバーを設定できないように、システム設定レベルで mcpServers を構成することを検討してください。これは完全なセキュリティメカニズムとして使用すべきではありません。
lsp
[!warning] 実験的機能: LSP サポートは現在実験的であり、デフォルトで無効です。
--experimental-lspコマンドラインフラグを使用して有効化してください。
Language Server Protocol (LSP) は、定義へ移動、参照の検索、診断などのコードインテリジェンス機能を提供します。
LSP サーバーの設定は settings.json ではなく、プロジェクトルートディレクトリの .lsp.json ファイルを通じて行われます。設定の詳細と例については LSP ドキュメント を参照してください。
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 | array of strings | プロジェクトコンテキストから除外する環境変数。プロジェクト .env ファイルから読み込まれるべきでない環境変数を指定します。これにより、プロジェクト固有の環境変数(DEBUG=true など)が CLI の動作に干渉するのを防ぎます。.qwen/.env ファイルからの変数は決して除外されません。 | ["DEBUG","DEBUG_MODE"] |
advanced.bugCommand | object | バグレポートコマンドの設定。/bug コマンドのデフォルト URL を上書きします。プロパティ: urlTemplate(文字列): {title} と {info} プレースホルダーを含む URL。例: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
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 | 標準入出力経由で MCP サーバーを起動するために実行するコマンド。 | はい |
mcpServers.<SERVER_NAME>.args | array of strings | コマンドに渡す引数。 | はい |
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 | array of strings | この MCP サーバーから含めるツール名のリスト。指定すると、このサーバーからリストされたツールのみが利用可能になります(許可リスト動作)。未指定の場合、サーバーからのすべてのツールがデフォルトで有効化されます。 | はい |
mcpServers.<SERVER_NAME>.excludeTools | array of strings | この MCP サーバーから除外するツール名のリスト。ここにリストされたツールは、サーバーによって公開されていてもモデルには利用できません。注意: excludeTools は includeTools より優先されます — ツールが両方のリストにある場合、除外されます。 | はい |
telemetry
Qwen Code のログとメトリクス収集を構成します。詳細については テレメトリ を参照してください。
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
telemetry.enabled | boolean | テレメトリが有効かどうか。 | |
telemetry.target | string | 収集されたテレメトリの送信先。サポートされる値は local と gcp。 | |
telemetry.otlpEndpoint | string | OTLP エクスポーターのエンドポイント。 | |
telemetry.otlpProtocol | string | OTLP エクスポーターのプロトコル(grpc または http)。 | |
telemetry.logPrompts | boolean | ログにユーザープロンプトの内容を含めるかどうか。 | |
telemetry.outfile | string | target が local の場合、テレメトリを書き込むファイル。 | |
telemetry.useCollector | boolean | 外部 OTLP コレクターを使用するかどうか。 |
settings.json の例
以下は、v0.3.0 以降の新しいネスト構造を持つ settings.json ファイルの例です:
{
"proxy": "http://localhost:7890",
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"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",
"sandboxImage": "ghcr.io/qwenlm/qwen-code:0.14.1",
"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",
},
"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 設定を使用してこの動作をカスタマイズできます。
環境変数テーブル
| 変数 | 説明 | 備考 |
|---|---|---|
QWEN_TELEMETRY_ENABLED | テレメトリを有効にするには true または 1 に設定。その他の値は無効化として扱われます。 | telemetry.enabled 設定を上書きします。 |
QWEN_TELEMETRY_TARGET | テレメトリターゲットを設定(local または gcp)。 | telemetry.target 設定を上書きします。 |
QWEN_TELEMETRY_OTLP_ENDPOINT | テレメトリの OTLP エンドポイントを設定。 | telemetry.otlpEndpoint 設定を上書きします。 |
QWEN_TELEMETRY_OTLP_PROTOCOL | OTLP プロトコルを設定(grpc または http)。 | telemetry.otlpProtocol 設定を上書きします。 |
QWEN_TELEMETRY_LOG_PROMPTS | ユーザープロンプトのログ記録を有効化または無効化するには true または 1 に設定。その他の値は無効化として扱われます。 | telemetry.logPrompts 設定を上書きします。 |
QWEN_TELEMETRY_OUTFILE | ターゲットが local の場合、テレメトリを書き込むファイルパスを設定。 | telemetry.outfile 設定を上書きします。 |
QWEN_TELEMETRY_USE_COLLECTOR | 外部 OTLP コレクターの使用を有効化または無効化するには true または 1 に設定。その他の値は無効化として扱われます。 | telemetry.useCollector 設定を上書きします。 |
QWEN_SANDBOX | settings.json の sandbox 設定の代替。 | true、false、docker、podman、またはカスタムコマンド文字列を受け入れます。 |
QWEN_SANDBOX_IMAGE | Docker/Podman のサンドボックスイメージ選択を上書き。 | tools.sandboxImage より優先されます。 |
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 | コードアシストサーバーのエンドポイントを指定。 | 開発およびテストに有用。 |
QWEN_CODE_MAX_OUTPUT_TOKENS | レスポンスごとのデフォルト最大出力トークンを上書き。未設定の場合、Qwen Code は適応戦略を使用:8K トークンから開始し、レスポンスが切り捨てられた場合は自動的に 64K で再試行。固定制限を使用するには特定の値(例:16000)に設定。 | キャップされたデフォルト(8K)より優先されますが、設定内の samplingParams.max_tokens によって上書きされます。設定すると自動エスカレーションが無効化されます。例:export QWEN_CODE_MAX_OUTPUT_TOKENS=16000 |
QWEN_CODE_UNATTENDED_RETRY | 永続リトライモードを有効化するには true または 1 に設定。有効化すると、一時的な API キャパシティエラー(HTTP 429 Rate Limit および 529 Overloaded)は指数バックオフ(リトライごとに最大 5 分)と stderr 上の 30 秒ごとのハートビートキープアライブで無期限に再試行されます。 | 長時間実行タスクが一時的な API 停止を乗り越える必要がある CI/CD パイプラインおよびバックグラウンド自動化向けに設計。明示的に設定する必要があります — CI=true だけではこのモードは有効化されません。詳細は ヘッドレスモード を参照。例:export QWEN_CODE_UNATTENDED_RETRY=1 |
QWEN_CODE_PROFILE_STARTUP | 起動パフォーマンスプロファイリングを有効化するには 1 に設定。フェーズごとの所要時間を含む JSON タイミングレポートを ~/.qwen/startup-perf/ に書き込み。 | サンドボックス子プロセス内でのみアクティブ。未設定の場合はオーバーヘッドゼロ。例:export QWEN_CODE_PROFILE_STARTUP=1 |
コマンドライン引数
CLI 実行時に直接渡される引数は、その特定のセッションに対して他の設定を上書きできます。
サンドボックスイメージ選択の優先順位は:
--sandbox-image > QWEN_SANDBOX_IMAGE > tools.sandboxImage > 組み込みデフォルトイメージ。
コマンドライン引数テーブル
| 引数 | エイリアス | 説明 | 可能な値 | 備考 |
|---|---|---|---|---|
--model | -m | このセッションに使用する Qwen モデルを指定。 | モデル名 | 例:npm start -- --model qwen3-coder-plus |
--prompt | -p | プロンプトをコマンドに直接渡すために使用。Qwen Code を非インタラクティブモードで起動。 | プロンプトテキスト | スクリプトの例については、構造化出力を取得するために --output-format json フラグを使用。 |
--prompt-interactive | -i | 提供されたプロンプトを初期入力としてインタラクティブセッションを開始。 | プロンプトテキスト | プロンプトはセッション前ではなく、インタラクティブセッション内で処理されます。stdin からパイプ入力する場合は使用できません。例:qwen -i "explain this code" |
--system-prompt | この実行の組み込みメインセッションシステムプロンプトを上書き。 | プロンプトテキスト | QWEN.md などの読み込まれたコンテキストファイルは、この上書きの後に引き続き追加されます。--append-system-prompt と組み合わせ可能。 | |
--append-system-prompt | この実行のメインセッションシステムプロンプトに追加の指示を付加。 | プロンプトテキスト | 組み込みプロンプトおよび読み込まれたコンテキストファイルの後に適用されます。--system-prompt と組み合わせ可能。例は ヘッドレスモード を参照。 | |
--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: (デフォルト)stdin またはコマンドライン引数からの標準テキスト入力。 stream-json: 双方向通信のための stdin 経由の JSON メッセージプロトコル。 要件: --input-format stream-json には --output-format stream-json の設定が必要。 stream-json 使用時、stdin はプロトコルメッセージ用に予約されます。詳細は ヘッドレスモード を参照。 | |
--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 と同時に使用不可。新しい統合アプローチには --approval-mode=yolo を使用。例:qwen --approval-mode auto-edit承認モード を参照。 | |
--allowed-tools | 確認ダイアログをバイパスするツール名のカンマ区切りリスト。 | ツール名 | 例:qwen --allowed-tools "Shell(git status)" | |
--disabled-slash-commands | 非表示/無効化するスラッシュコマンド名(カンマ区切りまたは繰り返し)。slashCommands.disabled 設定および QWEN_DISABLED_SLASH_COMMANDS 環境変数とユニオン。最終的なコマンド名に対して大文字小文字を区別せずにマッチング。 | コマンド名 | 例:qwen --disabled-slash-commands "auth,mcp,extensions" | |
--telemetry | テレメトリ を有効化。 | |||
--telemetry-target | テレメトリターゲットを設定。 | 詳細は テレメトリ を参照。 | ||
--telemetry-otlp-endpoint | テレメトリの OTLP エンドポイントを設定。 | 詳細は テレメトリ を参照。 | ||
--telemetry-otlp-protocol | テレメトリの OTLP プロトコルを設定(grpc または http)。 | デフォルトは grpc。詳細は テレメトリ を参照。 | ||
--telemetry-log-prompts | テレメトリ用にプロンプトのログ記録を有効化。 | 詳細は テレメトリ を参照。 | ||
--checkpointing | チェックポイント を有効化。 | |||
--acp | ACP モード(Agent Client Protocol)を有効化。Zed などの IDE/エディタ統合に有用。 | 安定版。非推奨の --experimental-acp フラグを置き換え。 | ||
--experimental-lsp | コードインテリジェンス(定義へ移動、参照の検索、診断など)の実験的 LSP(Language Server Protocol) 機能を有効化。 | 実験的。言語サーバーのインストールが必要。 | ||
--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 |
コンテキストファイル(階層的指示コンテキスト)
CLI の 動作 に対する厳密な設定ではありませんが、コンテキストファイル(デフォルトは QWEN.md、context.fileName 設定で変更可能)は 指示コンテキスト(「メモリ」とも呼ばれる)の構成において重要です。この強力な機能を使用すると、プロジェクト固有の指示、コーディングスタイルガイド、または関連する背景情報を AI に提供でき、応答をニーズに合わせてより適切かつ正確にできます。CLI には、アクティブなコンテキストを通知するために、読み込まれたコンテキストファイルの数を表示するフッターのインジケーターなどの UI 要素が含まれています。
- 目的: これらの Markdown ファイルには、Qwen モデルが対話中に認識してほしい指示、ガイドライン、またはコンテキストが含まれます。システムはこの指示コンテキストを階層的に管理するように設計されています。
コンテキストファイルのコンテンツ例(例:QWEN.md)
以下は、TypeScript プロジェクトのルートにあるコンテキストファイルの概念的な例です:
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.
## Coding Style:
- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).
## Specific Component: `src/api/client.ts`
- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.
## Regarding Dependencies:
- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.この例は、一般的なプロジェクトコンテキスト、特定のコーディング規約、さらには特定のファイルやコンポーネントに関するメモをどのように提供できるかを示しています。コンテキストファイルが関連性が高く正確であるほど、AI はより適切に支援できます。規約とコンテキストを確立するために、プロジェクト固有のコンテキストファイルを強く推奨します。
- 階層的読み込みと優先順位: CLI は複数の場所からコンテキストファイル(例:
QWEN.md)を読み込むことで階層的メモリシステムを実装します。このリストの下位(より具体的)にあるファイルのコンテンツは、通常、上位(より一般的)にあるファイルのコンテンツを上書きまたは補足します。正確な連結順序と最終的なコンテキストは/memory showコマンドで確認できます。一般的な読み込み順序は以下の通りです:- グローバルコンテキストファイル:
- 場所:
~/.qwen/<configured-context-filename>(例:ユーザーホームディレクトリの~/.qwen/QWEN.md)。 - 適用範囲: すべてのプロジェクトのデフォルト指示を提供。
- 場所:
- プロジェクトルートおよび祖先コンテキストファイル:
- 場所: CLI は現在の作業ディレクトリで設定されたコンテキストファイルを検索し、プロジェクトルート(
.gitフォルダで識別)またはホームディレクトリのいずれかに到達するまで各親ディレクトリを検索。 - 適用範囲: プロジェクト全体またはその重要な部分に関連するコンテキストを提供。
- 場所: CLI は現在の作業ディレクトリで設定されたコンテキストファイルを検索し、プロジェクトルート(
- グローバルコンテキストファイル:
- 連結と UI 表示: 見つかったすべてのコンテキストファイルのコンテンツは(出典とパスを示す区切り文字付きで)連結され、システムプロンプトの一部として提供されます。CLI フッターには読み込まれたコンテキストファイルの数が表示され、アクティブな指示コンテキストに関する視覚的な手がかりを提供します。
- コンテンツのインポート:
@path/to/file.md構文を使用して他の Markdown ファイルをインポートすることで、コンテキストファイルをモジュール化できます。詳細は メモリインポートプロセッサードキュメント を参照してください。 - メモリ管理コマンド:
/memory refreshを使用して、すべての構成された場所からすべてのコンテキストファイルの再スキャンと再読み込みを強制。これにより AI の指示コンテキストが更新されます。/memory showを使用して、現在読み込まれている結合された指示コンテキストを表示。AI が使用している階層とコンテンツを確認できます。/memoryコマンドおよびそのサブコマンド(showおよびrefresh)の詳細については コマンドドキュメント を参照してください。
これらの設定階層とコンテキストファイルの階層的性質を理解し活用することで、AI のメモリを効果的に管理し、Qwen Code の応答を特定のニーズやプロジェクトに合わせて調整できます。
サンドボックス
Qwen Code は、システムを保護するために、サンドボックス環境内で潜在的に安全でない操作(シェルコマンドやファイル変更など)を実行できます。
サンドボックス はデフォルトで無効ですが、以下の方法で有効化できます:
--sandboxまたは-sフラグを使用。QWEN_SANDBOX環境変数を設定。--yoloまたは--approval-mode=yolo使用時はデフォルトでサンドボックスが有効化。
デフォルトでは、事前構築された qwen-code-sandbox Docker イメージを使用します。
プロジェクト固有のサンドボックスニーズに応じて、プロジェクトのルートディレクトリに .qwen/sandbox.Dockerfile を作成してカスタム Dockerfile を作成できます。この Dockerfile はベースサンドボックスイメージを基にできます:
FROM qwen-code-sandbox
# Add your custom dependencies or configurations here
# For example:
# 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
}
}使用統計情報が有効な場合、イベントは Alibaba Cloud RUM 収集エンドポイントに送信されます。