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/配下の Agent スキル(各スキルはSKILL.mdを含むディレクトリです)。
設定の移行
Qwen Code は、レガシー設定を新しい形式に自動的に移行します。古い設定ファイルは移行前にバックアップされます。以下の設定は、否定 (disable*) から肯定 (enable*) の命名に変更されました。
| 古い設定 | 新しい設定 | 注記 |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | 1つの設定に統合 |
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 や plansDirectory などのいくつかのトップレベル設定は、互換性のために直接のルートキーのまま残されています。
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.commit | boolean | git コミットメッセージに Co-authored-by トレーラーを追加し、Qwen Code を使用して行われたコミットに対してファイルごとの AI 帰属 git ノート(refs/notes/ai-attribution)を添付します。無効にすると両方がスキップされます。 | true |
general.gitCoAuthor.pr | boolean | gh pr create を実行するときに、プルリクエストの説明に Qwen Code の帰属行を追加します。 | true |
general.defaultFileEncoding | string | 新しいファイルのデフォルトエンコーディング。BOM なし UTF-8 の場合は "utf-8"(デフォルト)、BOM 付き UTF-8 の場合は "utf-8-bom" を使用します。プロジェクトで BOM が特に必要な場合のみ変更してください。 | "utf-8" |
general.cleanupPeriodDays | number | /rewind で使用される ~/.qwen/file-history/ セッションバックアップを保持する日数。これを超えて古いバックアップは、1日1回まで実行されるバックグラウンドパスによって削除されます。0 = 最小保持時間(約1時間):最終1時間に触れたセッションと現在アクティブなセッションを保持します。変更は再起動後に有効になります。 | 30 |
general.language | enum | ユーザーインターフェースの言語。システム設定から検出するには "auto"、または言語コード(例: "zh-CN"、"fr")を使用します。カスタムコードは、JS ロケールファイルを ~/.qwen/locales/ に配置することで追加できます。i18n を参照してください。再起動が必要です。 | "auto" |
general.outputLanguage | string | モデル出力の言語。システム設定から検出するには "auto" を使用するか、特定の言語を設定します。再起動が必要です。 | "auto" |
general.dynamicCommandTranslation | boolean | 動的スラッシュコマンドの説明の AI 翻訳を有効にします。無効にすると、動的コマンドは元の説明を保持し、翻訳モデル呼び出しをスキップします。 | false |
output
| 設定 | タイプ | 説明 | デフォルト | 設定可能な値 |
|---|---|---|---|---|
output.format | string | CLI 出力の形式。 | "text" | "text"、"json" |
output.showTimestamps | boolean | 各アシスタント応答の前に [HH:MM:SS] タイムスタンプを表示します。 | false |
ui
| 設定 | タイプ | 説明 | デフォルト |
|---|---|---|---|
ui.theme | string | UI のカラーテーマ。利用可能なオプションについてはテーマを参照してください。 | "Qwen Dark" |
ui.customThemes | object | カスタムテーマ定義。 | {} |
ui.statusLine | object | カスタムステータスライン設定。command、refreshInterval、respectUserColors、hideContextIndicator オプションをサポートします。ステータスラインを参照してください。 | undefined |
ui.hideWindowTitle | boolean | ウィンドウタイトルバーを非表示にします。 | false |
ui.hideTips | boolean | UI 内のすべてのヒント(起動時および応答後)を非表示にします。コンテキストヒントを参照してください。 | false |
ui.hideBanner | boolean | 起動時の ASCII ロゴと情報パネルを非表示にします。ui.hideTips も設定されていない限り、ヒントとチャット入力は引き続き表示されます。 | false |
ui.customBannerTitle | string | バナー情報パネルのデフォルトの >_ Qwen Code タイトルを置き換えます。バージョンサフィックス (vX.Y.Z) は常に追加されます。認証、モデル、パスの行は影響を受けません。サニタイズされ、80 文字に制限されます。 | "" |
ui.customBannerSubtitle | string | バナータイトルと認証/モデル行の間に表示されるオプションのサブタイトル行。空白のスペーサー行の代わりに表示されます。サニタイズされ、160 文字に制限されます。空(デフォルト)は元の空白のスペーサーを保持します。 | "" |
ui.customAsciiArt | string | object | バナーの QWEN ASCII ロゴを置き換えます。インライン文字列(両方の幅ティアで使用)、{ "path": "./brand.txt" }(相対パスは所有する設定ファイルのディレクトリに対して解決され、起動時に POSIX では O_NOFOLLOW で1回読み取られ、64 KB に制限されます)、または幅認識選択用の { "small": ..., "large": ... } を受け入れます。サニタイズされ、ティアあたり 200 行 × 200 列に制限されます。 | undefined |
ui.showLineNumbers | boolean | CLI 出力のコードブロックに行番号を表示します。 | true |
ui.renderMode | string | デフォルトの Markdown 表示モード。リッチなビジュアルプレビューには "render"、デフォルトでソース指向の Markdown を表示するには "raw" を使用します。セッション中は Alt/Option+M で切り替えられます。macOS ではターミナルが Option を Meta として送信する必要があります。Markdown レンダリングを参照してください。 | "render" |
ui.showCitations | boolean | 生成されたテキストの引用をチャットに表示します。 | false |
ui.history.collapseOnResume | boolean | セッション再開時にデフォルトで履歴を折りたたむかどうか。/history collapse-on-resume および /history expand-on-resume で切り替え可能。 | false |
ui.compactMode | boolean | ツール出力と思考プロセスを非表示にして、よりすっきりした表示にします。セッション中は Ctrl+O で、または設定ダイアログから切り替え可能。ツール承認プロンプトはコンパクトモードでも非表示になりません。設定はセッション間で保持されます。 | false |
ui.shellOutputMaxLines | number | インラインで表示されるシェル出力の最大行数。0 に設定すると上限が無効になり、完全な出力が表示されます。非表示の行は +N lines インジケーターで表示されます。エラー、! プレフィックスのユーザー開始コマンド、確認ツール、フォーカスされた埋め込みシェルは常に完全な出力を表示します。 | 5 |
ui.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.showResponseTokensPerSecond | boolean | モデルがストリーミング中に、応答トークンカウンターの横にライブのトークン/秒の推定値を表示します。これは生成速度のヒントであり、ETA や完了パーセンテージではありません。次回のセッションから有効になります。 | false |
ui.enableFollowupSuggestions | boolean | フォローアップ提案を有効にします。モデルが応答した後に次に入力したい内容を予測します。提案はプレースホルダーテキストとして表示され、Tab、Enter、または右矢印キーで受け入れられます(入力を埋めるだけで、自動送信はしません)。デフォルトではオンです。オプトアウトするには false に設定します。 | true |
ui.enableCacheSharing | boolean | 提案生成にキャッシュ認識フォーククエリを使用します。プレフィックスキャッシュをサポートするプロバイダーでのコストを削減します(実験的)。 | true |
ui.enableSpeculation | boolean | 受け入れられた提案を送信前に投機的に実行します。受け入れたときに結果が即座に表示されます(実験的)。 | false |
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.maxWallTimeSeconds | number | ヘッドレス / 無人実行のための経過時間上限(秒)。-1 は無制限。呼び出し毎に --max-wall-time で上書き可能。このフラグは正の期間(90、30s、5m、1h、1.5h)を要求し、最小値は 1 秒。サブ秒の値(500ms、0.5)は誤入力として拒否されます。フラグを省略するとこの設定値が使われます。超過するとコード 55 で異常終了します。 | -1 |
model.maxToolCalls | number | 実行中のツール呼び出しの累積上限(成功・失敗を問わずすべての実行ツールをカウント。--json-schema 下の structured_output は対象外)。-1 は無制限、0 は「ツール呼び出し禁止」。誤入力を防ぐため 1,000,000 で上限打ち切り。--max-tool-calls で上書き可能。超過するとコード 55 で異常終了します。 | -1 |
model.generationConfig | object | 基礎となるコンテンツ生成器に渡す高度なオーバーライド。timeout、maxRetries、enableCacheControl、splitToolMedia(デフォルト true。ツールから返されたメディア(組み込みの read_file で読み取った画像を含む)を、仕様違反の role: "tool" メッセージではなく後続のユーザーメッセージに分割し、doubao / new-api / LM Studio などの厳格な OpenAI 互換サーバーが認識できるようにします。false に設定すると従来のツール内埋め込み動作に戻ります)、toolResultContentFormat(デフォルト "parts"。テキストコンテンツ部分を無視するレガシー OpenAI 互換ランタイムでのみ "string" に設定)、contextWindowSize(モデルのコンテキストウィンドウサイズを上書き)、modalities(自動検出された入力モダリティを上書き)、customHeaders(API リクエスト用のカスタム HTTP ヘッダー)、extra_body(OpenAI 互換 API リクエストのみに追加の本文パラメータ)、および samplingParams 下の微調整用ノブ(例:temperature、top_p、max_tokens)などのリクエスト制御をサポートします。未設定のままにするとプロバイダーのデフォルトに依存します。 | undefined |
model.chatCompression.contextPercentageThreshold | number | 削除されました。 自動圧縮は現在、モデルのコンテキストウィンドウから computeThresholds() 関数で内部的に計算された 3 段階のしきい値(警告 / 自動 / ハード)を使用します。ユーザーが設定することはできなくなりました。settings.json でこのフィールドを設定しても、警告なしに無視されます(起動時の警告はありません)。「圧縮を完全に無効にする」という代替手段は現在ありません。圧縮自体が失敗した場合、API 層でのリアクティブオーバーフロー復旧がセーフティネットとして残っています。(再設計の根拠については PR #4345 / docs/design/auto-compaction-threshold-redesign.md を参照。) | N/A |
model.chatCompression.maxRecentFilesToRetain | number | 自動圧縮後に、直近で触れたファイルの現在の内容を履歴に復元する最大数(小さいファイルは埋め込み、大きいファイルはパスで参照)。0 にすると何も復元しません。環境変数による上書き: QWEN_COMPACT_MAX_RECENT_FILES。 | 5 |
model.chatCompression.maxRecentImagesToRetain | number | 自動圧縮後に、直近の画像(ツールスクリーンショット / ユーザーの貼り付け)を履歴に復元する最大数。0 にすると何も復元しません。環境変数による上書き: QWEN_COMPACT_MAX_RECENT_IMAGES。 | 3 |
model.chatCompression.enableScreenshotTrigger | boolean | true の場合、トークン使用量とは別に、履歴に蓄積されたツールからの画像数が screenshotTriggerThreshold に達したときにも自動圧縮が発火します。これは頻繁なスクリーンショットでモデルの注意力が分散されるコンピューター使用セッションを対象としています。カウントされるのはツール結果内の画像のみで、ユーザーが貼り付けた画像は含まれません。環境変数による上書き: QWEN_COMPACT_SCREENSHOT_TRIGGER(1/true/0/false)。 | true |
model.chatCompression.screenshotTriggerThreshold | number | スクリーンショットトリガーが発火するツールからの画像数(enableScreenshotTrigger が true の場合のみ)。圧縮によってカウントはリセットされます。生き残った画像はトップレベルの部品として再埋め込まれ、トリガーはそれをカウントしないため、すぐに再発火することはありません。環境変数による上書き: QWEN_COMPACT_SCREENSHOT_THRESHOLD。 | 50 |
model.skipNextSpeakerCheck | boolean | 次の話者チェックをスキップします。 | true |
model.skipLoopDetection | boolean | ストリーミングループ検出チェックを無効にします。デフォルトは true(ループ検出をスキップ)、誤検出で正当なワークフローが中断されるのを防ぎます。false に設定するとストリーミングループ検出を再有効化できます。これは、ヘッドレス / 非対話型実行で、停止した繰り返しによって予算が無駄になるのを防ぐガードレールとして有用です。 | true |
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,
"toolResultContentFormat": "parts",
"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 環境変数を使用します。
toolResultContentFormat:
テキストのみのツール結果を OpenAI 互換のリクエストでシリアライズする方法を制御します。デフォルトの "parts" は標準の content-parts 配列形式を維持します。"string" は、テキスト content parts を無視するレガシーな OpenAI 互換ランタイム(古い GLM-5.1 vLLM/SGLang テンプレートなど)でのみ設定します。ツールが返すメディアは引き続き splitToolMedia で制御されます。
contextWindowSize:
選択したモデルのデフォルトのコンテキストウィンドウサイズをオーバーライドします。Qwen Code は、モデル名の一致に基づく組み込みのデフォルトを使用してコンテキストウィンドウを決定し、定数のフォールバック値を持ちます。プロバイダーの実効コンテキスト制限が Qwen Code のデフォルトと異なる場合にこの設定を使用します。この値は、モデルの想定される最大コンテキスト容量を定義し、リクエストごとのトークン制限ではありません。
選択したモデルが modelProviders で定義されている場合、トップレベルの model.generationConfig ではなく、そのプロバイダーエントリの generationConfig に contextWindowSize を設定します。プロバイダーモデルエントリはシールされているため、トップレベルの生成設定は欠落しているプロバイダーフィールドを補完しません。
modalities:
選択したモデルの自動検出された入力モダリティをオーバーライドします。Qwen Code は、モデル名のパターンマッチングに基づいてサポートされているモダリティ(画像、PDF、音声、動画)を自動検出します。この設定は、自動検出が正しくない場合 — 例えば、認識されないが 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 または string の配列 | コンテキストファイルの名前。 | undefined |
context.importFormat | string | メモリをインポートする際の形式。 | undefined |
context.includeDirectories | 配列 | ワークスペースコンテキストに含める追加のディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。存在しないディレクトリは、デフォルトで警告とともにスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --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.customIgnoreFiles | 配列 | respectQwenIgnore が有効な場合に、デフォルトの互換ファイル (.agentignore、.aiignore) の代わりに使用するプロジェクトルート相対の無視ファイル。.qwenignore は常に含まれます。 | [".agentignore", ".aiignore"] |
context.fileFiltering.enableRecursiveFileSearch | boolean | プロンプトで @ プレフィックスを補完する際に、現在のツリーの下でファイル名を再帰的に検索するかどうか。 | true |
context.fileFiltering.enableFuzzySearch | boolean | true の場合、ファイル検索時にファジー検索機能を有効にします。ファイル数が多いプロジェクトでパフォーマンスを向上させるには false に設定します。 | true |
context.clearContextOnIdle.toolResultsThresholdMinutes | number | 古いツール結果コンテンツをクリアするまでの非アクティブ時間(分)。アイドルトリガーを無効にするには -1 を使用します。 | 60 |
context.clearContextOnIdle.toolResultsNumToKeep | integer | クリア時に保持する最新の圧縮可能なツール結果の整数の数。1 未満の値は 1 に切り上げられます。 | 5 |
context.clearContextOnIdle.toolResultsTotalCharsThreshold | number | 履歴内で許可される圧縮可能なツール結果の出力文字数の合計。これを超えると最も古い結果がクリアされます。サイズトリガーを無効にするには -1 を使用します。これはソフトなしきい値です。保護された最近のツール結果によって合計が超え続ける可能性があります。 | 500000 |
ファイル検索パフォーマンスのトラブルシューティング
ファイル検索(例: @ 補完)でパフォーマンスの問題が発生している場合、特にファイル数が非常に多いプロジェクトでは、推奨順に以下の方法を試すことができます。
- 無視ファイルを使用する: プロジェクトルートに
.qwenignoreまたは設定されたカスタム無視ファイルを作成して、参照する必要のない大量のファイルを含むディレクトリ(ビルドアーティファクト、ログ、node_modulesなど)を除外します。クロールされるファイルの総数を減らすことが、パフォーマンスを向上させる最も効果的な方法です。 - ファジー検索を無効にする: ファイルの無視だけでは不十分な場合、
settings.jsonファイルでenableFuzzySearchをfalseに設定してファジー検索を無効にできます。これにより、よりシンプルで非ファジーのマッチングアルゴリズムが使用され、高速になる可能性があります。 - 再帰的ファイル検索を無効にする: 最後の手段として、
enableRecursiveFileSearchをfalseに設定して再帰的ファイル検索を完全に無効にできます。これによりプロジェクトの再帰的クロールが回避されるため、最も高速なオプションになります。ただし、@補完を使用する際にファイルの完全パスを入力する必要があります。
tools
| 設定 | 型 | 説明 | デフォルト | 備考 |
|---|---|---|---|---|
tools.sandbox | boolean または string | サンドボックス実行環境(ブール値またはパス文字列)。 | undefined | |
tools.sandboxImage | string | --sandbox-image および QWEN_SANDBOX_IMAGE が設定されていない場合に Docker/Podman が使用するサンドボックスイメージ URI。 | undefined | |
tools.shell.enableInteractiveShell | boolean | インタラクティブシェル体験のために node-pty を使用します。child_process へのフォールバックも適用されます。 | true | |
tools.core | string の配列 | 非推奨。 次のバージョンで削除されます。代わりに permissions.allow + permissions.deny を使用してください。組み込みツールを許可リストに制限します。リストにないツールはすべて無効になります。 | undefined | |
tools.exclude | string の配列 | 非推奨。 代わりに permissions.deny を使用してください。検出から除外するツール名。初回読み込み時に自動的に permissions 形式に移行されます。 | undefined | |
tools.allowed | string の配列 | 非推奨。 代わりに permissions.allow を使用してください。確認ダイアログをバイパスするツール名。初回読み込み時に自動的に permissions 形式に移行されます。 | undefined | |
tools.approvalMode | string | ツール使用のデフォルトの承認モードを設定します。 | default | 取りうる値: plan(分析のみ、ファイルの変更やコマンドの実行は行わない)、default(ファイル編集やシェルコマンド実行前に承認を要求)、auto-edit(ファイル編集を自動承認)、auto(LLM 分類器が安全なアクションを自動承認し、リスクのあるものをブロック)、yolo(すべてのツール呼び出しを自動承認) |
tools.discoveryCommand | string | ツール検出に実行するコマンド。 | undefined | |
tools.callCommand | string | tools.discoveryCommand を使用して検出された特定のツールを呼び出すためのカスタムシェルコマンドを定義します。シェルコマンドは以下の基準を満たす必要があります。最初のコマンドライン引数として関数 name(関数宣言 とまったく同じ)を受け取る必要があります。関数引数を JSON として stdin から読み取る必要があります(functionCall.args と同様)。関数出力を JSON として stdout に返す必要があります(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.computerUse.enabled | boolean | 組み込みの Computer Use ツール(cua-driver ネイティブデスクトップ自動化)を有効にします。true(デフォルト)の場合、computer_use__* ツールは遅延組み込みとして登録されます。最初の呼び出しで、固定された署名済みの cua-driver バイナリを ~/.qwen/computer-use/ にダウンロードし、macOS のアクセシビリティ / 画面収録の許可を案内します。 | true | 再起動が必要: はい |
tools.computerUse.maxImageDimension | number | cua-driver のスクリーンショットに適用される長辺のピクセル上限(set_config の max_image_dimension 経由)。-1(デフォルト)は cua-driver の組み込みデフォルト(1568)を維持します。0 はリサイズを無効にします(フル解像度)。正の値は長辺を上限にします。上限を低くすると、視覚トークンコストが削減されますが、細部の精度が低下します。 | -1 | 再起動が必要: はい。環境変数によるオーバーライド: QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION(非負の整数。この設定より優先されます) |
tools.core / tools.exclude / tools.allowed からの移行: これらのレガシー設定は非推奨であり、初回読み込み時に新しい permissions 形式に自動的に移行されます。permissions.allow / permissions.deny を直接設定することを推奨します。/permissions を使用して対話的にルールを管理できます。
memory
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
memory.enableManagedAutoMemory | boolean | 会話から記憶をバックグラウンドで抽出する機能を有効にします。 | true |
memory.enableManagedAutoDream | boolean | 収集された記憶の自動統合(重複排除とクリーンアップ)を有効にします。 | true |
memory.enableAutoSkill | boolean | ツールを多用したセッションの後、再利用可能なプロジェクトスキルをバックグラウンドでレビューする機能を有効にします。 | true |
memory.autoSkillConfirm | boolean | 自動生成されたスキルをスキルライブラリに追加する前に確認を求めます。オフの場合、自動スキルは即座に保存されます。 | true |
自動記憶の動作と、/memory、/remember、/dream コマンドの使い方の詳細は Memory を参照してください。
permissions
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 | |
NotebookEdit | notebook_edit | |
NotebookEditTool | notebook_edit | |
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, notebook_edit |
[!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 の権限ルールは、エージェントが同等のシェルコマンドを実行する場合にも適用されます。たとえば、Read(./.env) が deny にある場合、エージェントはシェルコマンドの 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] 対話型CLIで
/permissionsを使用すると、settings.jsonを直接編集せずにルールを表示、追加、削除できます。
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 サーバー名の単純な文字列一致を使用しており、変更される可能性があります。システム管理者で、ユーザーがこれを回避するのを防ぎたい場合は、システム設定レベルで mcpServers を設定し、ユーザーが独自の MCP サーバーを構成できないようにすることを検討してください。これは完全なセキュリティメカニズムとして使用すべきではありません。
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 (string): {title} と {info} プレースホルダーを含むことができる URL。例: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" } | undefined |
plansDirectory | string | 承認された Plan Mode ファイルのカスタムディレクトリ。相対パスはプロジェクトルートから解決され、解決されたパスはプロジェクトルート内に収まる必要があります。未設定の場合、プランファイルは ~/.qwen/plans に保存されます。再起動が必要です。 ディレクトリがプロジェクトルート内にある場合は、プランファイルをコミットしないように .gitignore に追加してください。 | undefined |
experimental
実験的機能。 これらのトグルは開発中の機能を制限するものであり、将来のリリースで変更または削除される可能性があります。
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
experimental.cron | boolean | セッション内の cron/loop ツール(cron_create、cron_list、cron_delete)を有効にし、モデルが定期的なプロンプトを作成できるようにします。QWEN_CODE_DISABLE_CRON=1 環境変数で無効化できます。再起動が必要です。 | true |
experimental.agentTeam | boolean | エージェントチームコラボレーションツール(team_create、task_create、task_update、send_message など)を有効にし、マルチエージェント連携を実現します。QWEN_CODE_ENABLE_AGENT_TEAM=1 でも有効化できます。再起動が必要です。 | false |
experimental.artifact | boolean | Artifact ツールを有効にし、モデルが自己完結型の HTML ページを発行してブラウザで開けるようにします。インタラクティブな非 SDK セッションのみ。QWEN_CODE_ENABLE_ARTIFACT=1 / QWEN_CODE_DISABLE_ARTIFACT=1 で切り替え。再起動が必要です。 | false |
experimental.emitToolUseSummaries | boolean | 各ツール呼び出しバッチの完了後に、短い LLM ベースのラベルを生成します。ツール使用サマリー を参照してください。高速モデル (fastModel) が設定されている必要があります。設定されていない場合は、サイレントにスキップされます。セッションごとに QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 または =1 で上書き可能です。 | true |
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 | 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 よりも優先されます。ツールが両方のリストにある場合、除外されます。 | はい |
テレメトリー
Qwen Code のログとメトリクス収集を設定します。詳細については、テレメトリー を参照してください。
| 設定 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
telemetry.enabled | boolean | テレメトリーを有効にするかどうか。 | |
telemetry.target | string | テレメトリー送信先の情報ラベル(local または gcp)。エクスポーターのルーティングは制御しません。データの送信先は telemetry.otlpEndpoint または telemetry.outfile で設定してください。 | |
telemetry.otlpEndpoint | string | OTLP エクスポーターのエンドポイント。 | |
telemetry.otlpProtocol | string | OTLP エクスポーターのプロトコル(grpc または http)。 | |
telemetry.logPrompts | boolean | ユーザープロンプトの内容をログに含めるかどうか。 | |
telemetry.includeSensitiveSpanAttributes | boolean | 有効にすると、ユーザープロンプト、システムプロンプト、ツールの入出力、モデルの応答をそのままネイティブ OTel スパン属性に追加します(ログ-スパンブリッジスパンにも追加されます)。⚠️ ファイル内容、シェルコマンド、会話履歴などの機密データが OTLP バックエンドに送信されます。 | false |
telemetry.sensitiveSpanAttributeMaxLength | number | 機密性の高いネイティブ OTel スパン属性の各コンテンツペイロードの最大 JavaScript 文字列長。1 から 104857600 (100 MiB) の間で設定してください。コレクターやバックエンドが大きな属性を拒否する場合は低めに設定します。 | 1048576 |
telemetry.outfile | string | テレメトリーをファイルに書き出すパス。設定すると OTLP エクスポートを上書きします。 |
settings.json の例
以下は、v0.3.0 で新しくなったネスト構造の settings.json ファイルの例です。
{
"proxy": "http://localhost:7890",
"plansDirectory": "./.qwen/plans",
"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,
"includeSensitiveSpanAttributes": false,
"sensitiveSpanAttributeMaxLength": 1048576
},
"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_HOME | グローバル設定ディレクトリをカスタマイズします(デフォルト: ~/.qwen)。絶対パスまたは相対パス(相対パスはカレントワーキングディレクトリから解決されます)を受け付けます。先頭の ~ はユーザーのホームディレクトリに展開されます。 | 認証情報、設定、メモリ、スキル、その他のグローバル状態を保存します。設定してもプロジェクトレベルの .qwen/ ディレクトリには影響しません。空文字列は未設定として扱われます。 |
QWEN_RUNTIME_DIR | ランタイム出力ディレクトリ(会話、ログ、todo)を上書きします。未設定の場合は QWEN_HOME ディレクトリがデフォルトになります。 | これを使用して、一時的なランタイムデータを永続的な設定から分離できます。QWEN_HOME が共有ファイルシステムや低速なファイルシステム上にある場合に便利です。 |
QWEN_TELEMETRY_ENABLED | true または 1 に設定するとテレメトリーを有効にします。その他の値は無効として扱われます。 | telemetry.enabled 設定を上書きします。 |
QWEN_TELEMETRY_TARGET | テレメトリー送信先の情報ラベル(local または gcp)を設定します。ルーティングは制御しません。データ送信先は QWEN_TELEMETRY_OTLP_ENDPOINT または QWEN_TELEMETRY_OUTFILE を使用して設定してください。 | 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_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES | true または 1 に設定すると、ユーザープロンプト、システムプロンプト、ツールI/O、モデルの応答をそのままネイティブ OTel スパン属性に追加します(また、ログ-スパンブリッジスパンに prompt / function_args / response_text を保持します)。その他の値は無効にします。 | telemetry.includeSensitiveSpanAttributes 設定を上書きします。⚠️ 機密データが OTLP バックエンドに送信されます。 |
QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH | 機密性の高いネイティブ OTel スパン属性の各コンテンツペイロードの最大 JavaScript 文字列長を設定します。104857600(100 MiB)以下の正の整数である必要があります。 | telemetry.sensitiveSpanAttributeMaxLength 設定を上書きします。デフォルトは 1048576(1 MiB)。コレクターやバックエンドが大きなスパン属性を拒否する場合は低く設定します。 |
QWEN_TELEMETRY_OUTFILE | テレメトリーを書き込むファイルパスを設定します。設定すると OTLP エクスポートを上書きします。 | telemetry.outfile 設定を上書きします。 |
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 のすべてのカラー出力を無効にします。 | |
FORCE_HYPERLINK | マークダウンレンダラーでの OSC 8 クリッカブルリンク検出を上書きします。1(またはゼロ以外の整数、空文字列)に設定すると強制有効、0 または false / off などの非数値に設定すると強制無効にします。上位の NO_COLOR / QWEN_DISABLE_HYPERLINKS のオプトアウトを尊重します。 | これを tmux / GNU screen 内で OSC 8 を有効にするために使用します(自動検出はデフォルトで拒否します。ホスト端末の機能がマルチプレクサの背後に隠れているため)。tmux 3.3+ では set -g allow-passthrough on が必要です。また、自動検出されない Hyper でも有効になります。 |
QWEN_DISABLE_HYPERLINKS | 1 に設定すると、OSC 8 クリッカブルハイパーリンクをマークダウンレンダラーでハード無効にします。たとえ端末が自動検出で対応可能と判定しても無効になります。 | 端末が対応を広告しているが長い URL で壊れる場合や、出力がエスケープシーケンスを壊す中間手段を通過する場合に便利です。レンダラーはプレーンな label (url) レンダリングにフォールバックします。 |
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 レート制限および 529 過負荷)が、指数バックオフ(再試行あたり最大 5 分)と、stderr への 30 秒ごとのハートビートキープアライブで無期限に再試行されます。 | CI/CD パイプラインやバックグラウンド自動化向けに設計されており、長時間実行タスクが一時的な API 停止を乗り切る必要がある場合に使用します。明示的に設定する必要があります — CI=true だけではこのモードは有効になりません。詳細は ヘッドレスモード を参照してください。例: export QWEN_CODE_UNATTENDED_RETRY=1 |
QWEN_CODE_PROFILE_STARTUP | 1 に設定すると、起動パフォーマンスプロファイリングを有効にします。~/.qwen/startup-perf/ にフェーズごとの時間を含む JSON タイミングレポートを書き込みます。 | サンドボックス子プロセス内でのみアクティブです(または QWEN_CODE_PROFILE_STARTUP_OUTER=1 と組み合わせた場合)。設定しない場合はオーバーヘッドはゼロです。例: export QWEN_CODE_PROFILE_STARTUP=1 |
QWEN_CODE_PROFILE_STARTUP_OUTER | QWEN_CODE_PROFILE_STARTUP=1 と一緒に 1 に設定すると、外部(サンドボックス前)プロセスでも起動プロファイルを収集します。外部プロセスのレポートには、サンドボックス子プロセスのレポートと区別するために outer- ファイル名プレフィックスが付けられます。 | デフォルトではオフ — サンドボックス子プロセスのみが収集し、重複レポートを避けます。CLI がサンドボックスに再起動されないローカル開発に便利です。 |
QWEN_CODE_PROFILE_STARTUP_NO_HEAP | QWEN_CODE_PROFILE_STARTUP=1 と一緒に 1 に設定すると、チェックポイントごとの process.memoryUsage() スナップショットをスキップします。プロファイラ自身のハイゼンベルグオーバーヘッドを測定する場合に便利です。 | デフォルトではオフ。ヒープスナップショットはそれぞれ約 50 µs のコスト(起動全体の 1% 未満)であるため、ほとんどのユーザーはこの設定を変更する必要はありません。 |
QWEN_CODE_LEGACY_MCP_BLOCKING | 1 に設定すると、Config.initialize() がすべての設定済み MCP サーバーのディスカバリーハンドシェイクを同期的に待機してから戻る、プログレッシブ MCP 以前の動作に戻します。 | デフォルトではオフ。最新の qwen-code では、UI がすでにインタラクティブになっている間に MCP サーバーをバックグラウンドでオンラインにします。モデルはサーバーが安定してから約 16 ミリ秒以内に新しいツールの各バッチを認識します。このフラグは、少なくとも 1 リリースのロールバックエスケープハッチとして維持されています。例: export QWEN_CODE_LEGACY_MCP_BLOCKING=1 |
When both user-level .env files define the same variable, the Qwen-specific file wins: <QWEN_HOME>/.env (or ~/.qwen/.env when QWEN_HOME is unset) is loaded before ~/.env, and existing environment values are not overwritten. |
コマンドライン引数
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 | 指定されたプロンプトを初期入力として対話セッションを開始します。 | プロンプトのテキスト | プロンプトは対話セッション内で処理され、その前ではありません。標準入力からのパイプ入力時には使用できません。例: 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: (デフォルト) 標準入力またはコマンドライン引数からの標準テキスト入力。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, auto, yolo | サポートされているモード: plan: 分析のみ—ファイルの変更やコマンドの実行は行いません。default: ファイル編集やシェルコマンドに対して承認を要求します(デフォルトの動作)。auto-edit: 編集ツール(edit、write_file、notebook_edit)を自動承認し、その他のツールはプロンプトを表示します。auto: LLM 分類器が安全なアクションを自動承認し、リスクのあるアクションをブロックします。yolo: すべてのツール呼び出しを自動承認します(--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 | テレメトリー用のプロンプトのログ記録を有効にします。 | 詳細についてはテレメトリーを参照してください。 | ||
--acp | ACP モード(エージェントクライアントプロトコル)を有効にします。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 22+.
## 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ダイアログから確認できます。一般的な読み込み順序は以下のとおりです。- グローバルコンテキストファイル:
- 場所:
~/.qwen/<設定されたコンテキストファイル名>(例:ホームディレクトリの~/.qwen/QWEN.md)。 - スコープ: すべてのプロジェクトにデフォルトの指示を提供します。
- 場所:
- プロジェクトルートおよび上位ディレクトリのコンテキストファイル:
- 場所: CLIは、現在の作業ディレクトリから始めて、プロジェクトルート(
.gitフォルダで識別)またはホームディレクトリに達するまで、各親ディレクトリで設定されたコンテキストファイルを検索します。 - スコープ: プロジェクト全体またはその重要な部分に関連するコンテキストを提供します。
- 場所: CLIは、現在の作業ディレクトリから始めて、プロジェクトルート(
- グローバルコンテキストファイル:
- 連結とUI表示: 見つかったすべてのコンテキストファイルの内容は連結され(出所とパスを示す区切り文字付き)、システムプロンプトの一部として提供されます。CLIのフッターにはロードされたコンテキストファイルの数が表示され、アクティブな指示コンテキストをすぐに視覚的に確認できます。
- コンテンツのインポート:
@path/to/file.md構文を使用して、他のMarkdownファイルをインポートすることで、コンテキストファイルをモジュール化できます。詳細については、メモリのドキュメントを参照してください。 - メモリ管理のためのコマンド:
/memoryを使用してメモリ管理ダイアログを開きます。- ダイアログからメモリを更新して、設定されたすべての場所からコンテキストファイルを再スキャンおよび再読み込みします。
/memoryコマンドの詳細については、コマンドのドキュメントを参照してください。
これらの設定レイヤーとコンテキストファイルの階層的な性質を理解して活用することで、AIのメモリを効果的に管理し、Qwen Codeの応答を特定のニーズやプロジェクトに合わせて調整できます。
サンドボックス
Qwen Codeは、危険な可能性のある操作(シェルコマンドやファイル変更など)をサンドボックス環境内で実行して、システムを保護できます。
サンドボックスはデフォルトで無効になっていますが、以下の方法で有効にできます。
--sandboxまたは-sフラグを使用する。QWEN_SANDBOX環境変数を設定する。- 設定で
tools.sandboxを設定する。
⚠️
--yoloはサンドボックスを自動的に有効化しません。 YOLOモードはツール呼び出しを自動承認するだけです。サンドボックスは--sandbox、QWEN_SANDBOX、またはtools.sandboxを介して明示的にオプトインする必要があります。--yolo(または--approval-mode=yolo)を使用したヘッドレス/非対話型実行でサンドボックスがない場合、モデルは現在のプロセスの権限レベルでシェル、書き込み、編集ツールを実行できます。その場合、Qwen Codeは警告をstderrに出力します。トレードオフを確認したら、QWEN_CODE_SUPPRESS_YOLO_WARNING=1で抑制できます。
デフォルトでは、プリビルドの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収集エンドポイントに送信されます。