Skip to Content
ユーザーガイド設定設定

Qwen Code の設定

Tip

認証 / API キー: 認証(API キー、Alibaba Cloud Coding Plan)および認証関連の環境変数(OPENAI_API_KEY など)については、認証 を参照してください。

Note

新しい設定形式について: settings.json ファイルの形式が、より整理された新しい構造に更新されました。古い形式は自動的に移行されます。 Qwen Code では、環境変数、コマンドライン引数、設定ファイルなど、動作を設定するいくつかの方法が提供されています。本ドキュメントでは、さまざまな設定方法と利用可能な設定について説明します。

設定のレイヤー

設定は以下の優先順位で適用されます(番号が小さい設定は、番号が大きい設定によって上書きされます):

レベル設定ソース説明
1デフォルト値アプリケーション内にハードコードされたデフォルト値
2システムデフォルトファイル他の設定ファイルによって上書き可能な、システム全体のデフォルト設定
3ユーザー設定ファイル現在のユーザーに対するグローバル設定
4プロジェクト設定ファイルプロジェクト固有の設定
5システム設定ファイル他のすべての設定ファイルを上書きする、システム全体の設定
6環境変数システム全体またはセッション固有の変数。.env ファイルから読み込まれる可能性があります
7コマンドライン引数CLI 起動時に渡される値

設定ファイル

Qwen Code は、永続的な設定のために JSON 設定ファイルを使用します。これらのファイルには 4 つの場所があります:

ファイルタイプ場所適用範囲
システムデフォルトファイルLinux: /etc/qwen-code/system-defaults.json
Windows: C:\ProgramData\qwen-code\system-defaults.json
macOS: /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 設定を管理するのに役立つ場合があります。
Note

設定内の環境変数について: settings.json ファイル内の文字列値は、$VAR_NAME または ${VAR_NAME} 構文を使用して環境変数を参照できます。これらの変数は、設定の読み込み時に自動的に解決されます。たとえば、MY_API_TOKEN という環境変数がある場合、settings.json で次のように使用できます: "apiKey": "$MY_API_TOKEN"

プロジェクト内の .qwen ディレクトリ

プロジェクト設定ファイルに加えて、プロジェクトの .qwen ディレクトリには、Qwen Code の動作に関連するその他のプロジェクト固有のファイルを含めることができます。例:

設定の移行

Qwen Code は、レガシーな設定を新しい形式に自動的に移行します。古い設定ファイルは移行前にバックアップされます。以下の設定は、否定形(disable*)から肯定形(enable*)の命名に変更されました:

旧設定新設定備考
disableAutoUpdate + disableUpdateNaggeneral.enableAutoUpdate単一の設定に統合
disableLoadingPhrasesui.accessibility.enableLoadingPhrases
disableFuzzySearchcontext.fileFiltering.enableFuzzySearch
disableCacheControlmodel.generationConfig.enableCacheControl
Note

ブール値の反転: 移行時、ブール値は反転されます(例: disableAutoUpdate: trueenableAutoUpdate: false になります)。

disableAutoUpdatedisableUpdateNag の統合ポリシー

両方のレガシー設定が異なる値で存在する場合、移行は次のポリシーに従います: disableAutoUpdate または disableUpdateNagどちらか一方 でも true の場合、enableAutoUpdatefalse になります:

disableAutoUpdatedisableUpdateNag移行後の enableAutoUpdate
falsefalsetrue
falsetruefalse
truefalsefalse
truetruefalse

settings.json で利用可能な設定

設定はカテゴリごとに整理されています。ほとんどの設定は、settings.json ファイル内の対応するトップレベルのカテゴリオブジェクト内に配置する必要があります。proxyplansDirectory などの一部のトップレベル設定は、互換性のために直接ルートキーとして残っています。

general

設定説明デフォルト
general.preferredEditorstringファイルを開く際に使用する優先エディタ。undefined
general.vimModebooleanVim キーバインドを有効にします。false
general.enableAutoUpdateboolean起動時の自動アップデートチェックとインストールを有効にします。true
general.showSessionRecapbooleanターミナルから離れて戻った際に、一行の「前回までの状況」要約を自動表示します。デフォルトではオフです。この設定に関係なく、/recap で手動トリガーできます。false
general.sessionRecapAwayThresholdMinutesnumberフォーカスが戻った際に自動要約が実行されるまでに、ターミナルがフォーカスを失っていなければならない時間(分)。showSessionRecap が有効な場合にのみ使用されます。5
general.gitCoAuthor.commitbooleangit コミットメッセージに Co-authored-by トレーラーを追加し、Qwen Code を介して行われたコミットに対してファイルごとの AI 帰属 git ノート(refs/notes/ai-attribution)を添付します。無効にすると両方ともスキップされます。true
general.gitCoAuthor.prbooleangh pr create を実行する際に、プルリクエストの説明に Qwen Code の帰属行を追加します。true
general.defaultFileEncodingenum新規ファイルのデフォルトエンコーディング。BOM なし UTF-8 の場合は "utf-8"(デフォルト)、BOM 付き UTF-8 の場合は "utf-8-bom" を使用します。プロジェクトで特に BOM が必要な場合のみ変更してください。"utf-8"
general.voice.enabledbooleanプロンプト入力での音声ディクテーションを有効にします。/voice コマンドでも切り替え可能です。トランスクリプションモデル(voiceModel)の設定が必要です。false
general.voice.modeenumプッシュツートークの動作: "hold" はキーを押し続けている間話す、"tap" はタップで開始し、再度タップ(または一時停止)で停止して送信します。"hold"
general.voice.languagestring音声トランスクリプションの優先言語(例: "english""chinese")。空欄にすると自動検出されます。""
general.voice.keytermsFilestring音声トランスクリプションをドメイン固有の用語にバイアスさせるカスタムキーワードファイル(1 行に 1 つの用語、# はコメント)へのパス。相対パスはワークスペースルートからの相対で解決され、存在する場合はデフォルトで .qwen/voice-keyterms.txt になります。信頼されたワークスペースでのみ読み取られます。Qwen ASR モデル(qwen3-asr-*)にのみ適用されます。""
general.voice.refineTranscriptboolean挿入前に高速モデルを使用して音声トランスクリプトをクリーンアップします。フィラーワードを削除し、認識エラーを修正しながら意味を保持します。失敗した場合は生のトランスクリプトにフォールバックし、高速モデルが設定されていない場合はスキップされます。true
general.cleanupPeriodDaysnumber/rewind で使用される ~/.qwen/file-history/ セッションバックアップを保持する日数。これより古いバックアップは、1 日あたり最大 1 回実行されるバックグラウンドパスによって削除されます。0 = 最小保持期間(約 1 時間): 過去 1 時間に操作されたセッションと現在アクティブなセッションを保持します。変更は再起動後に有効になります。30
general.languageenumユーザーインターフェースの言語。システム設定から検出する場合は "auto"、または言語コード(例: "zh-CN""fr")を指定します。JS ロケールファイルを ~/.qwen/locales/ に配置することで、カスタムコードを追加できます。i18n を参照してください。再起動が必要です。"auto"
general.outputLanguagestringモデル出力の言語。システム設定から検出する場合は "auto"、または特定の言語を設定します。再起動が必要です。"auto"
general.dynamicCommandTranslationboolean動的なスラッシュコマンドの説明の AI 翻訳を有効にします。無効にすると、動的コマンドは元の説明を保持し、翻訳モデルの呼び出しをスキップします。false
general.terminalBellbooleanレスポンスが完了したか、承認を必要とする際にターミナルベル音を鳴らします。true
general.preventSystemSleepbooleanQwen Code がモデルレスポンスをストリーミング中、またはツールを実行中にシステムがスリープ状態になるのを防ぎます。アイドルプロンプト時間と権限プロンプトはスリープを抑制しません。起動時に 1 回だけ読み取られるため、変更は再起動後に有効になります。true
general.chatRecordingbooleanチャット履歴をディスクに保存します。これを無効にすると、--continue--resume も機能しなくなります。再起動が必要です。true

output

設定説明デフォルト指定可能な値
output.formatstringCLI 出力のフォーマット。"text""text", "json"
output.showTimestampsboolean各アシスタントの応答の前に [HH:MM:SS] のタイムスタンプを表示します。false

review

設定説明デフォルト
review.attributionboolean/review が投稿するレビュー本文およびインラインコメントに、モデル名と CLI バージョン(例: _— qwen3-coder via Qwen Code /review (v0.21.2)_)を記述した帰属フッターを追加します。無効にすると、AI 帰属表示なしでレビューを投稿できます。フッターは省略され、投稿されたコメントと本文リストは **[Critical]**/**[Suggestion]** マーカーを失います。投稿は生ソースでは識別可能なままです。各コメントには不可視の重大度マーカー(<!-- qwen-review critical -->)が含まれ、レビュー本文にはレジャーマーカー(<!-- qwen-review-ledger ... -->)が含まれます。コメント本文を読み取るもの(GitHub API 自動化、この設定が連動するワークフロー)は引き続き /review の成果物として認識でき、事前送信の重複検出はレビューアカウントの過去の投稿を重大度マーカーで認識しますが、他のアカウントからの帰属なし投稿は検出できません。もう一つの影響として、qwen-autofix の Critical-only モード(ラウンド 5 以降、またはカウントウィンドウの diff 成長予算がトリップされた場合に発動)は、投稿された発見を Critical として認識しなくなり、それらを延期します。無効にすると、レビュー本文に埋め込まれたマシンレジャーマーカーからモデル情報も除外されるため、新しい環境(CI、別のクローン — レビューキャッシュがない場所)では、前回の投稿レビューから復元されたインクリメンタルアンカーが同一モデルチェックに失敗し、再レビューはフルレンジにフォールバックします。true
review.effortenum--effort が指定されていない場合の /review のデフォルトの努力レベル: "low""medium""high"、または "auto"(組み込みルール: PR の場合は high、ローカル変更の場合は medium)。明示的な --effort が優先されます。有効な --comment は引き続き high を強制し、--fix は引き続き medium を下限とします。"auto"
review.commentbooleanすべての PR /review--comment が渡されたものとして扱います: findings はフラグなしでプルリクエストに投稿されます。投稿は呼び出しで指定された PR にバインドされます。常にレビューを公開したい場合にのみ有効にしてください。false
review.severityFloorenum--severity-floor が指定されていない場合に PR /review が投稿する最低の重大度: "auto"(ラウンド適応型のデフォルト — Suggestions はラウンド 5 まで投稿され、ラウンド 6 からは Criticals のみ。それ以外に投稿可能な高信頼度の Suggestions は記録され延期される。ラウンド 2〜5 は前ラウンドから変更されていないコード上の新しい Suggestions を延期する。低信頼度と Nice-to-have の発見はターミナルのみに留まる)、"critical"(ラウンド 1 からその姿勢)、または "suggestion"(Suggestions が毎ラウンド投稿される。収束の姿勢をオフにする)。PR 以外のターゲットにはラウンドがなく、これは無視される。"auto"
review.reverseAuditRoundsnumber高努力のレビューごとに逆監査ループのラウンド上限を引き下げます。上限はそれ以外の場合、diff のトポロジーに従います(小 10 / チャンク付き 5。巨大な diff はレビューデッドラインありで 3、なしで 5)。これは適用される tier を下げることのみ可能です。3 未満、tier を超える、または 0 より大きい整数でない値は無視されます。上限を下げてもレビューの収束が早くなるわけではありません — ループは 2 回連続のドライラウンドで終了します — 収束前に停止することが多くなり、そのような停止ごとに判定は Comment にキャップされます。0(未設定)

これらの設定はオペレータースコープ(User、System、SystemDefaults)からのみ読み取られます。ワークスペースの .qwen/settings.json の値は無視されるため、リポジトリがレビュアーのレビューポリシーを設定することはできません。

ui

設定説明デフォルト
ui.themestringUI のカラーテーマ。利用可能なオプションについては Themes を参照してください。"Qwen Dark"
ui.customThemesobjectカスタムテーマの定義。{}
ui.statusLineobjectカスタムステータスラインの設定。commandrefreshIntervalrespectUserColorshideContextIndicator オプションをサポートします。詳細は Status Line を参照してください。undefined
ui.hideWindowTitlebooleanウィンドウのタイトルバーを非表示にします。false
ui.hideTipsbooleanUI 内のすべてのヒント(起動時および応答後)を非表示にします。詳細は Contextual Tips を参照してください。false
ui.hideBannerboolean起動時の ASCII ロゴと情報パネルを非表示にします。ui.hideTips も設定されていない限り、ヒントとチャット入力は引き続き表示されます。false
ui.customBannerTitlestringバナー情報パネルのデフォルトの >_ Qwen Code タイトルを置き換えます。(vX.Y.Z) のバージョンサフィックスは常に追加され、auth、model、path の行は影響を受けません。サニタイズされ、最大 80 文字に制限されます。""
ui.customBannerSubtitlestringバナータイトルと auth/model 行の間に、空白のスペーサー行の代わりにレンダリングされるオプションのサブタイトル行。サニタイズされ、最大 160 文字に制限されます。空(デフォルト)の場合、元の空白スペーサーが保持されます。""
ui.customAsciiArtstring | objectバナーの QWEN ASCII ロゴを置き換えます。インライン文字列(両方の幅ティアで使用)、{ "path": "./brand.txt" }(相対パスは所有する設定ファイルのディレクトリに対して解決されます。POSIX では起動時に O_NOFOLLOW で 1 回読み取られ、最大 64 KB に制限されます)、または幅に応じた選択のための { "small": ..., "large": ... } を受け入れます。サニタイズされ、各ティアあたり最大 200 行 × 200 列に制限されます。undefined
ui.showLineNumbersbooleanCLI 出力のコードブロックに行番号を表示します。true
ui.renderModestringデフォルトの Markdown 表示モード。リッチなビジュアルプレビューには "render" を、デフォルトでソース指向の Markdown を表示するには "raw" を使用します。セッション中は Alt/Option+M で切り替えます。macOS では、ターミナルが Option を Meta として送信する必要があります。詳細は Markdown Rendering を参照してください。"render"
ui.showCitationsbooleanチャット内の生成テキストの引用を表示します。false
ui.history.collapseOnResumebooleanセッションを再開するときにデフォルトで履歴を折りたたむかどうか。/history collapse-on-resume および /history expand-on-resume で切り替えることができます。false
ui.history.collapsePreviewCountnumberui.history.collapseOnResume が有効な場合に、表示されたままにする最新のユーザーターンの数。0 はデフォルトですべての復元された履歴を折りたたみます。-1 はすべての復元された履歴を表示します。0
ui.compactModebooleanターミナル UI では廃止されました。CLI は常にメインのトランスクリプトにコンパクトなタイプベースのツールビューを表示します。Ctrl+O で展開詳細モード(すべての思考ブロックとツール出力をインラインで展開または折りたたむ)に切り替えます。Web シェルでは引き続き尊重されます。false
ui.shellOutputMaxLinesnumberインラインで表示されるシェル出力の最大行数。0 に設定すると上限が無効になり、完全な出力が表示されます。非表示の行は +N lines インジケーターで表示されます。エラー、! プレフィックスのユーザー開始コマンド、ツールの確認、およびフォーカスされた埋め込みシェルは常に完全な出力を表示します。5
ui.enableWelcomeBackboolean会話履歴のあるプロジェクトに戻ったときに、ウェルカムバックダイアログを表示します。有効にすると、Qwen Code は以前に生成されたプロジェクトサマリー(.qwen/PROJECT_SUMMARY.md)を持つプロジェクトに戻っているかどうかを自動的に検出し、以前の会話を続行するか、新規に開始するかを選択できるダイアログを表示します。Start new chat session を選択した場合、その選択はプロジェクトサマリーが変更されるまで、現在のプロジェクトに対して記憶されます。この機能は /summary コマンドと終了確認ダイアログと統合されています。true
ui.accessibility.enableLoadingPhrasesboolean読み込み中のフレーズを有効にします(アクセシビリティのために無効にします)。true
ui.accessibility.screenReaderbooleanスクリーンリーダーモードを有効にします。これにより、TUI がスクリーンリーダーとの互換性が向上するように調整されます。false
ui.customWittyPhrasesarray of strings読み込み状態中に表示するカスタムフレーズのリスト。指定すると、CLI はデフォルトのフレーズの代わりにこれらのフレーズを循環して表示します。[]
ui.showResponseTokensPerSecondbooleanモデルがストリーミング中に、応答トークンカウンター横にリアルタイムのトークン/秒の推定値を表示します。これは生成速度のヒントであり、ETA や完了率ではありません。次のセッションから有効になります。false
ui.enableFollowupSuggestionsbooleanモデルの応答後に次に入力したい内容を予測する followup suggestions を有効にします。提案はプレースホルダーテキストとして表示され、Tab、Enter、または右矢印キーで受け入れられます(これらは入力を補完しますが、自動送信はしません)。デフォルトでオンになっています。オプトアウトする場合は false に設定します。true
ui.enableCacheSharingboolean提案生成にキャッシュ対応のフォーククエリを使用します。プレフィックスキャッシュをサポートするプロバイダーのコストを削減します(実験的)。true
ui.enableSpeculationboolean送信前に受け入れられた提案を投機的に実行します。受け入れると結果が即座に表示されます(実験的)。false
ui.showStatusInTitlebooleanターミナルウィンドウのタイトルに Qwen Code のセッション名とステータスを表示します。true
ui.disableWorkflowKeywordTriggerbooleantrue の場合、プロンプトで workflow という単語に言及しても、ターンが Workflow ツールへ暗黙的に誘導されなくなります(また、フッターの workflow active インジケーターも抑制されます)。ワークフローが有効な場合にのみ適用されます。false
ui.enableUserFeedbackboolean会話後にオプションのフィードバックダイアログを表示し、Qwen のパフォーマンス向上に役立てます。true
ui.compactInlinebooleanグループ間をマージするのではなく、各グループ内でツールの表示をコンパクトにします。ui.compactMode が有効である必要があります。再起動が必要です。false
ui.useTerminalBufferbooleanターミナルのスクロールバックバッファーではなく、アプリ内のスクロール可能なビューポートで会話履歴をレンダリングします。互換性のあるインタラクティブターミナルでは、長いセッションでのちらつき、スクロールストーム、インターフェースのフリーズを回避するためにデフォルトで有効です。Shift+↑/↓(行)、PgUp/PgDn(ページ)、Ctrl+Home/End(最上部/最下部)、またはマウスホイールでスクロールします。有効な間はホストターミナルのスクロールバックを使用しません。テキストを選択するにはドラッグします(ダブル/トリプルクリックで単語/行を選択)。ドラッグ中に Shift(macOS の場合は Option)を押し続けるとターミナル独自の選択が可能です。マウス操作(ホイール、ドラッグ選択、クリック、ホバー)には ui.mouseTracking(デフォルトでオン)が必要です。true
ui.showScrollbarbooleanアプリ内のスクロール可能なビューポート(Virtualized History)で自動非表示スクロールバーを表示します。スクロール中に表示され、アイドル時にフェードアウトします。完全に非表示にするには無効にします。インタラクティブターミナル UI にのみ適用されます。true
ui.mouseTrackingbooleanテキスト選択、テキスト入力内のクリック位置指定、行ホバー、履歴アイテムの切り替え、ビューポートスクロールのためのアプリ内 SGR マウストラッキングを有効にします。有効にすると、ターミナルはすべてのマウスイベントをアプリに転送するため、ネイティブの右クリックコンテキストメニューと OSC 8 ハイパーリンククリックは使用できなくなります。ネイティブの右クリックとクリック可能な URL リンクを復元するには無効にします。これにより、アプリ内のすべてのマウス操作が無効になり、Virtualized History ではホイールがトランスクリプトをスクロールしなくなります。代わりに Shift+↑/↓、PgUp/PgDn、または Ctrl+Home/End を使用してください(ui.useTerminalBuffer: false と組み合わせてネイティブターミナルスクロールバックを復元)。インタラクティブターミナル UI にのみ適用されます。true
ui.hideBuiltinWorktreeIndicatorbooleanフッターの組み込み ⎇ worktree-<branch> (<slug>) 行を非表示にします。worktree の状態は引き続き stdin ペイロード経由でカスタムステータスラインスクリプトに渡されます。カスタムステータスラインが worktree 自体をレンダリングする場合を除き、デフォルトのままにしてください。false

ide

SettingTypeDescriptionDefault
ide.enabledbooleanIDE 統合モードを有効にします。false
ide.hasSeenNudgebooleanユーザーが IDE 統合の案内を見たかどうか。false

privacy

SettingTypeDescriptionDefault
privacy.usageStatisticsEnabledboolean使用統計の収集を有効にします。true

model

SettingTypeDescriptionDefault
model.namestring会話に使用する Qwen モデル。undefined
model.reasoningEffortenum推論対応モデルがどの程度深く思考するかを指定し、すべてのプロバイダーに適用されます。/effort コマンド(lowmediumhighxhighmax)で設定します。各プロバイダーは、アクティブなモデルがサポートする範囲にこの値をマッピングおよびクランプします(例:Gemini は high で上限設定、Anthropic はモデルが欠落しているティアをクランプ)。未設定の場合は、モデル/プロバイダーのデフォルトが使用されます。undefined
model.baseUrlstring複数の modelProviders エントリが同じモデル ID を共有する場合の曖昧さを解消するために、モデルピッカーによって自動的に永続化されます。手動で設定することは意図されていません。代わりに /model ピッカーまたは modelProviders エントリを使用してください。古い手動編集値は、リクエストを同じ ID の別のプロバイダーにサイレントにルーティングする可能性があります。undefined
model.sessionTokenLimitnumber次のメッセージを送信する前に許可される、記録されたプロンプトトークン数の最大値。-1 は無制限を意味し、0 も無制限として扱われます(model.maxToolCalls とは異なり、そちらでは 0 はすべての呼び出しを許可しません)。記録されたプロンプト数が制限を超えると、次の送信は破棄されます(セッションは中止されません)。-1
model.maxSessionTurnsintegerセッションに保持するユーザー/モデル/ツールのターンの最大数。-1 は無制限を意味します。-1
model.maxWallTimeSecondsnumberヘッドレス/無人実行の実時間(壁時計時間)の予算(秒単位)。-1 は無制限を意味します。--max-wall-time 経由で呼び出しごとにオーバーライド可能で、正の期間(9030s5m1h1.5h)が必要です。最小値は 1 秒で、サブ秒値(500ms0.5)はタイプミスとして拒否されます。フラグを省略すると、この設定にフォールバックします。超過すると終了コード 55 で中止されます。-1
model.maxToolCallsnumber1 回の実行における累積ツール呼び出し予算(成功または失敗に関わらず、実行されたすべてのツールをカウントします。--json-schema 下の structured_output は免除されます)。-1 は無制限、0 は「ツール呼び出し不可」を意味します。タイプミスを検出するために 1,000,000 で上限設定されます。--max-tool-calls 経由でオーバーライド可能です。超過すると終了コード 55 で中止されます。-1
model.maxSubagentDepthnumberサブエージェントのネスト深度の最大値(1 ベースのレベル:トップレベルのサブエージェントはレベル 1)。1 はサブエージェントを有効にしたままネストを無効にします(ネスト導入前の動作)。値は 1〜100 の範囲にクランプされ、非有限値はデフォルトにフォールバックします。チームメイト、フォーク、およびワークフローから生成されたエージェントは、この設定に関係なくネストされません。--max-subagent-depth 経由でオーバーライド可能です。5
model.generationConfigobject基礎となるコンテンツジェネレーターに渡される高度なオーバーライド。timeoutmaxRetriesretryInitialDelayMsretryMaxDelayMsenableCacheControlsplitToolMedia(デフォルト 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 下のファインチューニングノブ(例:temperaturetop_pmax_tokens)もサポートします。未設定の場合は、プロバイダーのデフォルトに依存します。undefined
model.chatCompression.contextPercentageThresholdnumber削除済み。 context.autoCompactThreshold に置き換えられました(以下の #### context セクションを参照)。自動コンパクションは現在、computeThresholds() 関数を介してモデルのコンテキストウィンドウから内部的に計算される 3 段階のしきい値ラダー(警告/自動/ハード)を使用します。古い設定はサイレントに無視されます(起動時の警告はありません)。再設計の根拠については、PR #4345 / docs/design/auto-compaction-threshold-redesign.md を参照してください。N/A
model.chatCompression.maxRecentFilesToRetainnumber自動コンパクション後に履歴に復元される(小さい場合は埋め込まれ、そうでない場合はパスで参照される)、最近操作されたファイルの現在の内容の数。0 は何も復元しません。環境変数オーバーライド:QWEN_COMPACT_MAX_RECENT_FILES5
model.chatCompression.maxRecentImagesToRetainnumber自動コンパクション後に履歴に復元される最新の画像(ツールのスクリーンショット/ユーザーの貼り付け)の数。0 は何も復元しません。環境変数オーバーライド:QWEN_COMPACT_MAX_RECENT_IMAGES3
model.chatCompression.enableScreenshotTriggerbooleantrue の場合、トークン使用量とは無関係に、履歴に蓄積されたツールから返された画像の数が screenshotTriggerThreshold に達すると、自動コンパクションも発生します。これは、頻繁なスクリーンショットがモデルの注意を散漫させるコンピューター使用セッションを対象としています。ツール結果内で返された画像のみをカウントし、ユーザーが貼り付けた画像はカウントしません。環境変数オーバーライド:QWEN_COMPACT_SCREENSHOT_TRIGGER1/true/0/false)。true
model.chatCompression.screenshotTriggerThresholdnumberスクリーンショットトリガーが発生するツールから返された画像のカウント(enableScreenshotTrigger が有効な場合のみ)。コンパクションはカウントをリセットします。生き残った画像はトップレベルのパーツとして再埋め込みされ、トリガーはこれをカウントしないため、すぐに再発生することはありません。環境変数オーバーライド:QWEN_COMPACT_SCREENSHOT_THRESHOLD20
model.skipNextSpeakerCheckboolean次のスピーカーチェックをスキップします。true
model.skipLoopDetectionbooleanストリーミングループ検出チェックを無効にします。デフォルトは true(ループ検出がスキップされる)で、正当なワークフローを中断する誤検出を回避します。false に設定すると、ストリーミングループ検出が再度有効になります — これは、ヘッドレス/非対話型実行において、繰り返しの停滞が予算を無駄にするのを防ぐガードレールとして有用です。他のストリーミング検出子を一切実行しないデーモン/ACP セッションでは、再有効化するとグローバル重複ツール呼び出し停止もアクティブになります。常時オンのターンごとのツール呼び出しキャップと無効なツールパラメータの停滞ガードは、この設定に関係なくそこで実行されます。true
model.maxToolCallsPerTurnintegerターンごとのツール呼び出し上限(1 つのモデルターンとそのツール結果の継続;/goal イテレーションなどのブロックする Stop-hook 継続は新しい予算を開始します)。明示的に設定すると、これはハードキャップとなり、到達後に次のツール呼び出しでターンが停止します(リリース時の動作)。未設定の場合(デフォルト 100)、キャップは適応的になります。ターンが 100 を超えると、モデルが同じ呼び出しを繰り返している場合にのみ停止し、生産的なターン(多様な呼び出し)は最大 1000 のハードバックストップまで続行されます。常に停止します。適応的デフォルトはインタラクティブ TUI、非対話型(-p / JSON / stream-JSON)コアクライアント実行、およびデーモン/ACP セッションのすべてに適用されます。デーモン/ACP セッションはキャップをツールバッチごとに実行前に評価します。明示的なキャップまたはハードバックストップを超えるバッチは全体がスキップされるため、ターンはいずれかを超えて実行されることはありません(最大 1 バッチ手前で停止する可能性があります)。適応的ソフトキャップはバックストップまで設計上超えられます。また、セッション内の無効化もありません。model.skipLoopDetection とは独立した、暴走ターンに対する常時オンのサーキットブレーカー。キャップを無効にするには 0 または負の値に設定します。ループ検出ダイアログで「このセッションのループ検出を無効にする」を選択すると、セッションの残りの間も抑制されます。100
model.skipStartupContextboolean各セッションの開始時に、スタートアップワークスペースコンテキスト(環境の概要と承認)の送信をスキップします。コンテキストを手動で提供する場合や、起動時のトークンを節約したい場合は、これを有効にしてください。false
model.enableOpenAILoggingbooleanデバッグおよび分析のために OpenAI API 呼び出しのログを有効にします。有効にすると、API リクエストとレスポンスが JSON ファイルにログ記録されます。false
model.openAILoggingDirstringOpenAI API ログのカスタムディレクトリパス。指定しない場合、デフォルトは現在の作業ディレクトリ内の logs/openai です。絶対パス、相対パス(現在の作業ディレクトリから解決)、および ~ 展開(ホームディレクトリ)をサポートします。undefined
model.openAILogRetentionDaysnumbermodel.enableOpenAILogging がオンの場合に書き込まれる OpenAI API ログファイルの保持日数。完了したバックグラウンドハウスキーピングパスは、インタラクティブ、ヘッドレス、stream-json SDK、および ACP セッションで 1 日あたり最大 1 回実行されます。短命な非対話型プロセスはベストエフォートで進行し、永続的なプロセスはスキャンを完了します。0 = 最小保持期間(約 1 時間)。カスタム model.openAILoggingDir の場合、保持はユーザーまたはシステムスコープで構成してください。1 つのカスタムディレクトリを複数のワークスペースで共有できるため、ワークスペーススコープの保持はスキップされます。変更は再起動後に有効になります。7

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 } } } }

timeout (リクエストタイムアウト):

timeout はリクエストごとのタイムアウト時間(ミリ秒単位、デフォルト 120000)です。0 に設定するとリクエストタイムアウトを無効にします(QWEN_STREAM_IDLE_TIMEOUT_MS=0 の規約に準拠)— リクエストを中止するのではなく。QWEN_CODE_API_TIMEOUT_MS 環境変数を通じて設定することもできます。これは以下の 2 つのストリームガードとは異なります。

stream guards (OpenAI 互換プロバイダーのみ):

2 つのガードがストリーミングレスポンスを境界付け、それぞれ 0 で無効にできます。いずれも Anthropic/Gemini ジェネレーターでは実装されておらず、それらは以下のドリップフィード形状を無制限のままにします。

  • QWEN_STREAM_IDLE_TIMEOUT_MS(デフォルト 240000)はストリーミングチャンク間の非アクティブ時間を制限します。この時間静かなストリームは、リトライ可能な ETIMEDOUT として中止されます。
  • QWEN_STREAM_MAX_LIFETIME_MS(デフォルト 900000)は、チャンクのフローに関係なく、1 つのストリーミングレスポンスのアップストリーム待機時間の合計上限を設定します — 完了しないドリップフィードストリームがリセットできないための境界です。

これらは環境変数(または、埋め込みの場合は ContentGeneratorConfig.streamIdleTimeoutMs / streamMaxLifetimeMs)のみです — settings.json キーはありません。settings.json に "streamMaxLifetimeMs" を記述しても効果はありません。アップグレードノート: 以前 QWEN_STREAM_IDLE_TIMEOUT_MS=0(または ContentGeneratorConfigstreamIdleTimeoutMs: 0)を設定してストリームの中止をオプトアウトしていたデプロイメントは、それを維持するために QWEN_STREAM_MAX_LIFETIME_MS=0(または streamMaxLifetimeMs: 0)も必要です。また、15 分のライフタイムキャップは、アイドルタイムアウトをそれ以上に上げたストリーム(例: QWEN_STREAM_IDLE_TIMEOUT_MS=1800000)にも適用されます — より長いウィンドウに依存する場合は、同様にキャップを上げるか 0 に設定してください。

max_tokens (出力トークン制限):

samplingParams.max_tokensQWEN_CODE_MAX_OUTPUT_TOKENS も設定されていない場合、Qwen Code は一般的に、選択されたモデルの宣言された出力制限をリクエストのデフォルト出力制限として使用します。それでも応答がその制限に達した場合、Qwen Code はエスカレートされた制限(64K を下限とする)でリトライし、継続ターンにわたって回復を試みることがあります。

OpenAI 互換プロバイダーの場合、samplingParams はワイヤーシェイプのエスケープハッチとしても機能します。これが設定されると、そのキーはそのまま透過的に渡され、Qwen Code は max_tokens のデフォルト値を合成しません。max_completion_tokens などのプロバイダー固有のパラメータにこれを使用します。

固定の出力制限を強制するには、設定で samplingParams.max_tokens を設定するか、QWEN_CODE_MAX_OUTPUT_TOKENS 環境変数を使用します。明示的な制限は、自動的な出力トークンのエスカレーションを無効にします。

toolResultContentFormat:

OpenAI 互換リクエストにおいて、テキストのみのツール結果がどのようにシリアライズされるかを制御します。デフォルトの "parts" は、標準のコンテンツパート配列の形状を維持します。古い GLM-5.1 vLLM/SGLang テンプレートなど、ツールテンプレートがテキストコンテンツパートを無視するレガシーな OpenAI 互換ランタイムに対してのみ "string" を設定します。ツールから返されるメディアは引き続き splitToolMedia によって制御されます。

contextWindowSize:

選択されたモデルのデフォルトのコンテキストウィンドウサイズをオーバーライドします。Qwen Code は、モデル名のマッチングに基づく組み込みのデフォルトと、定数のフォールバック値を使用してコンテキストウィンドウを決定します。プロバイダーの有効なコンテキスト制限が Qwen Code のデフォルトと異なる場合は、この設定を使用します。この値は、リクエストごとのトークン制限ではなく、モデルの想定される最大コンテキスト容量を定義します。

選択されたモデルが modelProviders で定義されている場合は、トップレベルの model.generationConfig ではなく、そのプロバイダーエントリの generationConfigcontextWindowSize を設定します。プロバイダーモデルのエントリはシールされているため、トップレベルの生成設定は欠落しているプロバイダーフィールドを補完しません。

modalities:

選択されたモデルの自動検出された入力モダリティをオーバーライドします。Qwen Code は、モデル名のパターンマッチングに基づいて、サポートされているモダリティ(image、PDF、audio、video)を自動的に検出します。自動検出が正しくない場合、たとえばサポートされているが認識されていないモデルに対して pdf を有効にする場合などに、この設定を使用します。形式: { "image": true, "pdf": true, "audio": true, "video": true }。サポートされていないタイプについては、キーを省略するか false に設定します。

customHeaders:

すべての API リクエストにカスタム HTTP ヘッダーを追加できます。これは、リクエストのトレース、モニタリング、API ゲートウェイのルーティング、またはモデルごとに異なるヘッダーが必要な場合に便利です。プロバイダーモデルの場合、customHeadersmodelProviders[].generationConfig.customHeaders で定義します。一致するプロバイダーエントリがないランタイムモデルの場合は、model.generationConfig.customHeaders で定義します。これら 2 つのレベル間でマージは行われません。

extra_body フィールドを使用すると、API に送信されるリクエストボディにカスタムパラメータを追加できます。これは、標準の設定フィールドでカバーされていないプロバイダー固有のオプションに役立ちます。注: このフィールドは OpenAI 互換プロバイダー(openaiqwen-oauth)でのみサポートされています。Anthropic および Gemini プロバイダーでは無視されます。 プロバイダーモデルの場合、extra_bodymodelProviders[].generationConfig.extra_body で定義します。一致するプロバイダーエントリがないランタイムモデルの場合は、model.generationConfig.extra_body で定義します。

model.openAILoggingDir の例:

  • "~/qwen-logs" - ~/qwen-logs ディレクトリにログを出力
  • "./custom-logs" - カレントディレクトリからの相対パス ./custom-logs にログを出力
  • "/tmp/openai-logs" - 絶対パス /tmp/openai-logs にログを出力

fastModel

設定説明デフォルト
fastModelstringプロンプト提案の生成および投機的実行に使用されるモデル。空欄にするとメインモデルが使用されます。より小さく高速なモデル(例: qwen3-coder-flash)を使用すると、レイテンシとコストを削減できます。/model --fast を通じて設定することもできます。""

advisorModel

設定説明デフォルト
advisorModelstring会話のセルフライレビューに /advisor が使用するモデル。空欄にするとメインモデルが使用されます。メインモデルと同等以上の能力を持つモデルを推奨します。これを設定すると、最近の会話トランスクリプトがそのモデルに送信されます。別のプロバイダーを使用する場合でも同様です。""

visionModel

設定説明デフォルト
visionModelstringビジョンブリッジとして使用される画像対応モデル: テキストのみのメインモデルが画像を受け取ると、または read_file が制限付き PDF ビジュアルフォールバックを必要とする場合に、まずこのモデルによってトランスクリプト(テキスト化)が行われます。これを明示的に設定すると、別のプロバイダーを使用する場合でも、そのモデルへのブリッジ呼び出しが承認されます。ツール表示にはエンドポイントが開示されます。空欄にすると、同じプロバイダーのビジョンモデルが自動的に選択されます。/model --vision を通じて設定することもできます。""

compactionModel

設定説明デフォルト
compactionModelstringチャット圧縮(自動コンパクション)に使用されるモデル。空欄にすると、メインモデルにフォールバックします。小さく高速なモデルは、圧縮のレイテンシとコストを削減できます。/model --compaction で設定またはクリアすることもできます。""

imageModel

設定説明デフォルト
imageModelstring組み込みの image_gen ツールで使用されるモデル。選択されたモデルは imageOnly: true、HTTPS の baseUrl、および modelProviders 内の envKey を持つ必要があります。空欄にすると、ツールは利用不可のままです。/model --image で設定することもできます。""

visionBridgeTimeoutMs

設定説明デフォルト
visionBridgeTimeoutMsintegerビジョンブリッジの画像トランスクリプション呼び出しの試行ごとのタイムアウト(ミリ秒単位。2147483647 までの正の整数。ブリッジはタイムアウトした試行を新しいタイムアウトで 1 回リトライします)。未設定の場合は組み込みの 30 秒が使用されます。遅い、またはプロキシ経由のビジョンエンドポイントの場合は上げてください。未設定

voiceModel

設定説明デフォルト
voiceModelstring音声トランスクリプションに使用されるモデル。空欄にすると、音声モデルが選択されるまで音声入力(ディクテーション)が無効のままになります。/model --voice を通じて設定することもできます。""

modelFallbacks

設定説明デフォルト
modelFallbacksstringプライマリモデルがキャパシティエラー(429/503/529)に遭遇したときに試行するフォールバックモデル ID の順序付きリスト(カンマ区切り、最大 3 つ)。例: "qwen-plus,qwen-turbo"--fallback-model CLI フラグを通じて設定することもできます。再起動が必要です。""

modelPricing

設定説明デフォルト
modelPricingobject/stats model でのコスト見積もりのためのオプションのモデルごとの価格設定。例: { "qwen3-coder": { "inputPerMillionTokens": 0.30, "outputPerMillionTokens": 1.20 } }undefined

context

設定説明デフォルト
context.fileNamestring or array of stringsコンテキストファイルの名前。undefined
context.autoCompactThresholdnumber自動コンパクションがトリガーされるコンテキストウィンドウの目標割合。0 より大きく 1 以下である必要があります。デフォルトは 0.85(85%)です。トリガーの上限として機能します。大きなウィンドウでは実効トリガー(約 85%)になりますが、小さいウィンドウではコンパクションが要約の余地を残すために早めに発生する場合があります。古い model.chatCompression.contextPercentageThreshold を置き換えます。undefined(内部で 0.85 を使用)
context.importFormatstringメモリをインポートする際に使用する形式。undefined
context.includeDirectoriesarrayワークスペースコンテキストに含める追加のディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。存在しないディレクトリは、デフォルトで警告とともにスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --include-directories コマンドラインフラグと組み合わせて使用できます。[]
context.loadFromIncludeDirectoriesboolean/memory refresh コマンドの動作を制御します。true に設定すると、追加されたすべてのディレクトリから QWEN.md ファイルが読み込まれます。false に設定すると、QWEN.md はカレントディレクトリからのみ読み込まれます。false
context.fileFiltering.respectGitIgnoreboolean検索時に .gitignore ファイルを尊重します。true
context.fileFiltering.respectQwenIgnoreboolean検索時に .qwenignore および設定されたカスタム無視ファイルを尊重します。true
context.fileFiltering.customIgnoreFilesarrayrespectQwenIgnore が有効な場合に、デフォルトの互換ファイル(.agentignore.aiignore)の代わりに使用する、プロジェクトルートからの相対的な無視ファイル。.qwenignore は常に含まれます。[".agentignore", ".aiignore"]
context.fileFiltering.enableRecursiveFileSearchbooleanプロンプトで @ プレフィックスを補完する際に、現在のツリー下のファイル名を再帰的に検索するかどうか。true
context.fileFiltering.enableFuzzySearchbooleantrue の場合、ファイル検索時にファジー検索機能を有効にします。ファイル数が非常に多いプロジェクトでパフォーマンスを向上させるには false に設定します。true
context.clearContextOnIdle.toolResultsThresholdMinutesnumber古いツール結果コンテンツをクリアするまでの非アクティブ時間(分)。アイドルトリガーを無効にするには -1 を使用します。60
context.clearContextOnIdle.toolResultsNumToKeepintegerクリア時に保持する、最新の圧縮可能なツール結果の整数値。1 未満の値は 1 に切り上げられます。5
context.clearContextOnIdle.toolResultsTotalCharsThresholdnumber最も古い結果をクリアする前に、履歴内で許可される圧縮可能なツール結果の出力文字数の合計。超えると、最も古い結果がこのしきい値の半分まで(ベストエフォートで)クリアされ、以降のターンが毎回履歴を書き直すのではなくプロバイダーのプロンプトキャッシュを再利用し続けられます。サイズトリガーを無効にするには -1 を使用します。これはソフトしきい値です: 保護された最近のツール結果により、合計がこの値を上回る場合があります。500000

ファイル検索パフォーマンスのトラブルシューティング

ファイル検索(@ 補完など)でパフォーマンスの問題が発生している場合、特にファイル数が非常に多いプロジェクトでは、推奨順に以下の対処法を試してください。

  1. ignore ファイルを使用する: プロジェクトのルートに .qwenignore または設定済みのカスタム ignore ファイルを作成し、参照する必要のない大量のファイルを含むディレクトリ(ビルド成果物、ログ、node_modules など)を除外します。クロールされるファイルの総数を減らすことが、パフォーマンスを向上させる最も効果的な方法です。
  2. Fuzzy Search を無効にする: ファイルの除外だけでは不十分な場合、settings.json ファイルで enableFuzzySearchfalse に設定して、ファジー検索を無効にできます。これにより、よりシンプルでファジーでないマッチングアルゴリズムが使用され、高速化が期待できます。
  3. 再帰的ファイル検索を無効にする: 最後の手段として、enableRecursiveFileSearchfalse に設定して、再帰的ファイル検索を完全に無効にできます。プロジェクトの再帰的クロールを回避するため、これが最も高速なオプションとなります。ただし、@ 補完を使用する際に、ファイルのフルパスを入力する必要があることに注意してください。

tools

設定説明デフォルト備考
tools.sandboxboolean または stringサンドボックス実行環境(boolean またはパス文字列を指定可能)。undefined
tools.sandboxImagestring--sandbox-image および QWEN_SANDBOX_IMAGE が設定されていない場合に Docker/Podman によって使用されるサンドボックスイメージの URI。undefined
tools.shell.enableInteractiveShellbooleanインタラクティブなシェル体験のために node-pty を使用します。child_process へのフォールバックも引き続き適用されます。true
tools.shell.defaultTimeoutMsnumberエージェントが開始したフォアグラウンドシェルコマンドのデフォルトタイムアウト(ミリ秒単位)。シェルツールの呼び出しごとのタイムアウトがこれをオーバーライドします。未設定の場合、フォアグラウンドコマンドは 120000 ms(2 分)後にタイムアウトします。0 に設定するとタイムアウトを無効にします。undefined
tools.shell.heartbeatIntervalMsnumberフォアグラウンドシェルコマンドが出力を生成していない間に出力される liveness ハートビートの間隔(ミリ秒単位)。ハートビートは ACP クライアントと stream-json コンシューマーに転送され、サイレントなコマンドとデッドセッションを区別できます。未設定の場合、ハートビートは 10000 ms(10 秒)ごとに出力されます。0 に設定するとハートビートを無効にします。undefined
tools.core文字列の配列非推奨。 次のバージョンで削除されます。代わりに permissions.allow + permissions.deny を使用してください。組み込みツールを許可リストに制限します。リストにないすべてのツールは無効になります。undefined
tools.exclude文字列の配列非推奨。 代わりに permissions.deny を使用してください。検出から除外するツール名。初回読み込み時に permissions 形式に自動的に移行されます。undefined
tools.disabled文字列の配列レジストリから完全に非表示にするツール名。permissions.deny(実行時に呼び出しをブロックする)とは異なり、無効化されたツールは登録されないため、/tools に表示されず、モデルから検出または呼び出しできません。たとえば、["enter_plan_mode"] はモデルが勝手にプランモードに切り替えるのを防ぎます。スコープをまたいで和集合としてマージされます。undefined
tools.visible文字列の配列tool_search を必要とせずに起動時に表示される遅延ツール名。リストされたツールは初期セッションでコアツールと一緒に表示されます。スコープをまたいで和集合としてマージされます。undefined
tools.allowed文字列の配列非推奨。 代わりに permissions.allow を使用してください。確認ダイアログをバイパスするツール名。初回読み込み時に permissions 形式に自動的に移行されます。undefined
tools.approvalModestringツール使用のデフォルトの承認モードを設定します。auto指定可能な値: plan(分析のみ、ファイルの修正やコマンドの実行は行わない)、default(ファイルの編集やシェルコマンドの実行前に承認を要求)、auto-edit(ファイルの編集を自動承認)、auto(LLM クラシファイアが安全なアクションを自動承認し、リスクのあるものをブロック)、yolo(すべてのツール呼び出しを自動承認)
tools.discoveryCommandstringツール検出のために実行するコマンド。undefined
tools.callCommandstringtools.discoveryCommand を使用して検出された特定のツールを呼び出すためのカスタムシェルコマンドを定義します。シェルコマンドは以下の条件を満たす必要があります。最初のコマンドライン引数として関数 namefunction declaration  と全く同じ)を受け取る必要があります。functionCall.args と同様に、stdin で関数の引数を JSON として読み取る必要があります。functionResponse.response.content と同様に、stdout で関数の出力を JSON として返す必要があります。undefined
tools.useRipgrepbooleanフォールバック実装の代わりに、ファイル内容の検索に ripgrep を使用します。より高速な検索パフォーマンスを提供します。true
tools.useBuiltinRipgrepbooleanバンドルされている ripgrep バイナリを使用します。false に設定すると、代わりにシステムレベルの rg コマンドが使用されます。この設定は tools.useRipgreptrue の場合にのみ有効です。true
tools.workflowsEnabledbooleanサブエージェントを並列でオーケストレーションするスクリプトをモデルが作成・実行できる Workflow ツールを有効にします。デフォルトでオフです。実行時に多くのサブエージェントをディスパッチし、それに応じてトークンを消費する可能性があります。falseUser、System、および SystemDefaults スコープのみ。ワークスペースの値は無視されます。再起動が必要: はい。環境変数オーバーライド: QWEN_CODE_ENABLE_WORKFLOWS=1 で強制的にオン。QWEN_CODE_DISABLE_WORKFLOWS=1 で強制的にオフ(disable が優先)。
tools.truncateToolOutputThresholdnumberツール出力がこの文字数より大きい場合、切り捨てます。Shell、Grep、Glob、ReadFile、および ReadManyFiles ツールに適用されます。25000再起動が必要: はい
tools.truncateToolOutputLinesnumberツール出力を切り捨てる際に保持される最大行数またはエントリ数。Shell、Grep、Glob、ReadFile、および ReadManyFiles ツールに適用されます。1000再起動が必要: はい
tools.computerUse.enabledboolean組み込みの Computer Use ツール(cua-driver ネイティブデスクトップ自動化)を有効にします。true(デフォルト)の場合、computer_use__* ツールは遅延組み込みとして登録されます。初回呼び出し時に、固定署名付き cua-driver バイナリが ~/.qwen/computer-use/ にダウンロードされ、macOS のアクセシビリティ / 画面収録の権限設定ガイドが表示されます。true再起動が必要: はい
tools.computerUse.maxImageDimensionnumbercua-driver のスクリーンショットに適用される最長辺のピクセル上限(set_configmax_image_dimension 経由)。-1(デフォルト)は cua-driver の組み込みデフォルト(1568)を維持します。0 はリサイズを無効にします(フル解像度)。正の値は最長辺を制限します。上限を下げると、細部の詳細さが犠牲になりますが、ビジョントークンのコストを削減できます。-1再起動が必要: はい。環境変数によるオーバーライド: QWEN_COMPUTER_USE_MAX_IMAGE_DIMENSION(非負の整数。この設定より優先されます)
tools.computerUse.idleTimeoutMsnumber最後の computer_use__* 呼び出し後に cua-driver プロセスを存続させるミリ秒。デフォルトは 300000(5分)です。0 に設定すると、Qwen Code が終了するまで実行され続けます。300000再起動が必要: はい
tools.toolSearch.enabledbooleanToolSearch 経由で MCP ツールをオンデマンドで読み込み、プロンプトサイズを削減します。プレフィックスベースの KV キャッシングに依存するモデル(DeepSeek など)では、これを無効にしてプロンプトのプレフィックスを安定させ、キャッシュヒット率を最大化してください。true再起動が必要: はい
tools.toolSearch.thresholdnumber遅延ツール(組み込みと MCP の両方)の事前読み込みのセッション開始時バジェットとして使用されるコンテキストウィンドウの割合。すべての遅延ツールのスキーマを合計してこのバジェット内に収まる場合、ToolSearch 経由でオンデマンド読み込みするのではなく、すべて事前に宣言されます — 安定した宣言リストはセッション全体でプレフィックス KV キャッシュを有効に保ちます。遅延ツールを常にオンデマンドで読み込むには 0 を設定します。10再起動が必要: はい
tools.listDirectory.enabledboolean組み込みの list_directory ツールを有効にします。ほとんどの場合、glob でディレクトリの一覧表示がカバーされるため、デフォルトでは無効になっています。coreTools 許可リスト(--core-tools / tools.core)に明示的にリストされた場合も自動的に再有効化されます。false再起動が必要: はい
Note

tools.core / tools.exclude / tools.allowed からの移行: これらのレガシー設定は非推奨となり、初回ロード時に新しい permissions 形式へ自動的に移行されます。permissions.allow / permissions.deny を直接設定することを推奨します。対話的にルールを管理するには /permissions を使用してください。

memory

SettingTypeDescriptionDefault
memory.enableManagedAutoMemoryboolean会話からメモリをバックグラウンドで抽出する機能を有効にします。true
memory.enableManagedAutoDreamboolean収集されたメモリの自動統合(重複排除とクリーンアップ)を有効にします。true
memory.enableAutoSkillbooleanツールを多用するセッション後に、再利用可能なプロジェクトスキルをバックグラウンドでレビューする機能を有効にします。true
memory.autoSkillConfirmboolean自動生成されたスキルをスキルライブラリに追加する前に確認を求めます。オフにすると、自動スキルは即座に保存されます。true
memory.enableTeamMemorybooleanGit で追跡される .qwen/team-memory/ ディレクトリを介して共同作業者と共有されるプロジェクトメモリ階層を有効にします。ここへの書き込みはシークレットスキャンされ、git diff でレビュー可能です。false
memory.enableTeamMemorySyncbooleanチームメモリが有効な場合、セッション開始時に .qwen/team-memory/ ディレクトリを自動的にコミット、fast-forward プル、およびプッシュし、共同作業者間の同期を維持します。設定済みの git upstream が必要です。false
memory.agentTimeoutMinutesnumberバックグラウンドメモリエージェント(抽出、ドリーム、リメンバー、スキルレビュー)の最大実行時間(分単位)。未設定の場合は各エージェントの組み込みデフォルト(2〜5 分)を使用します。0 は時間制限を無効にします。未設定
memory.agentMaxTurnsnumberバックグラウンドメモリエージェント(抽出、ドリーム、リメンバー、スキルレビュー)の最大ターン数。未設定の場合は各エージェントの組み込みデフォルト(5〜8)を使用します。0 はターン制限を無効にします。未設定

自動メモリの仕組みと、/memory/remember/dream コマンドの使用方法の詳細については、Memory を参照してください。

agents

設定説明デフォルト
agents.builtin.exploreModelstring組み込み Explore サブエージェントのモデルセレクター。メインセッションモデルには inheritfastModel には fast、モデル ID、または authType:model-id セレクターを使用します。カスタムの同名 Explore エージェントは独自のモデル設定を保持します。再起動が必要です。inherit
agents.modelGradesobjectAgent ツールに公開されるセマンティックグレード名をモデルセレクターにマッピングします。再起動が必要です。undefined
agents.allowedGradesarray of stringsAgent ツールが使用できる、設定済みモデルグレードのオプションの許可リスト。再起動が必要です。undefined

permissions

権限システムは、どのツールを実行可能か、どのツールに確認が必要か、そしてどのツールをブロックするかについて、きめ細かな制御を提供します。

判断の優先順位(高い順): deny > ask > allow > (デフォルト/対話モード)

最初に一致したルールが適用されます。ルールは "ToolName" または "ToolName(specifier)" の形式を使用します。

SettingTypeDescriptionDefault
permissions.allowarray of strings自動承認されるツール呼び出しのルール(確認不要)。すべてのスコープ(ユーザー + プロジェクト + システム)にまたがってマージされます。undefined
permissions.askarray of strings常にユーザーの確認を必要とするツール呼び出しのルール。allow より優先されます。undefined
permissions.denyarray of stringsブロックされるツール呼び出しのルール。最も高い優先度を持ち、allowask の両方をオーバーライドします。undefined

ツール名のエイリアス(ルール内でこれらいずれも使用可能です):

AliasCanonical toolNotes
Bash, Shellrun_shell_command
Read, ReadFileread_fileメタカテゴリ — 下記参照
Edit, EditFileeditメタカテゴリ — 下記参照
Write, WriteFilewrite_file
NotebookEditnotebook_edit
NotebookEditToolnotebook_edit
Grep, SearchFilesgrep_search
Glob, FindFilesglob
ListFileslist_directory
WebFetchweb_fetch
Agenttask
Skillskill

メタカテゴリ:

一部のルール名は、自動的に複数のツールをカバーします。

Rule nameTools covered
Readread_file, grep_search, glob, list_directory
Editedit, write_file, notebook_edit

[!important] Read(/path/**) は、4つすべての読み取りツール(ファイル読み取り、grep、glob、およびディレクトリ一覧)にマッチします。 ファイルの読み取りのみを制限するには、ReadFile(/path/**) または read_file(/path/**) を使用してください。

ルールの構文例:

RuleMeaning
"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 サーバーのすべてのツール

パスパターンのプレフィックス:

PrefixMeaningExample
//ファイルシステムルートからの絶対パス//etc/passwd
~/ホームディレクトリからの相対パス~/Documents/*.pdf
/プロジェクトルートからの相対パス/src/**/*.ts
./現在の作業ディレクトリからの相対パス./secrets/**
(none)./ と同じsecrets/**

シェルコマンドによるバイパス防止:

ReadEdit、および WebFetch の権限ルールは、エージェントが同等のシェルコマンドを実行する際にも適用されます。たとえば、Read(./.env)deny に含まれている場合、エージェントはシェルコマンドで cat .env を実行してこれをバイパスすることはできません。サポートされるシェルコマンドには catgrepcurlwgetcpmvrmchmod など多数が含まれます。不明/安全なコマンド(例: git)は、ファイル/ネットワークルールの影響を受けません。

レガシー設定からの移行:

Legacy settingEquivalent permissions ruleNotes
tools.allowedpermissions.allow初回ロード時に自動移行
tools.excludepermissions.deny初回ロード時に自動移行
tools.corepermissions.allow (allowlist)自動移行されます。リストにないツールはレジストリレベルで無効化されます

設定例:

{ "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 で利用可能なスラッシュコマンドを制御します。マルチテナント環境やエンタープライズ環境でコマンド操作を制限するのに便利です。

SettingTypeDescriptionDefault
slashCommands.disabledarray 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+CEsc などのキーボードショートカットをインターセプトすることはありません。

skills

モデルに公開される Skills を制御します。

設定説明デフォルト
skills.disabledLevelsarray of stringsスキル検出から完全にスキップするレベル。サポートされる値は projectuserextensionbundled です。設定スコープをまたいで和集合としてマージされます。["bundled"] を使用すると、ホスト提供のスキルを保持したまますべての組み込みスキルを非表示にします。注: skills.directories のエントリは user レベルで検出されるため、["user"] はそれらも非表示にします。undefined
skills.disabledarray of strings強制的に無効化されるスキル名。大文字と小文字を区別せずにマッチングされ、設定スコープをまたいで和集合としてマージされるため、プロジェクト設定はユーザーまたはシステムのエントリをオーバーライドできません。非表示にされたスキルは <available_skills>/<name> スラッシュコマンドとして表示されません。undefined
skills.defaultDisabledarray of stringsデフォルトで無効になっていますが、skills.enabled でオプトインできるスキル名。大文字と小文字を区別せずにマッチングされ、設定スコープをまたいで和集合としてマージされます。undefined
skills.enabledarray of stringsマッチする skills.defaultDisabled エントリをオーバーライドする明示的なオプトイン。大文字と小文字を区別せずにマッチングされ、設定スコープをまたいで和集合としてマージされます。この設定は skills.disabled をオーバーライドしたり、skills.disabledLevels で除外されたレベルからスキルを再有効化したりすることはできません。undefined

優先順位は skills.disabled > skills.enabled > skills.defaultDisabled です。たとえば、ユーザーはスキルを defaultDisabled に配置し、プロジェクトは同じ名前を enabled に追加できます。どのスコープでもハードな disabled エントリが常に優先されます。

mcp

SettingTypeDescriptionDefault
mcp.serverCommandstringMCP サーバーを起動するコマンド。undefined
mcp.allowedarray of strings許可する MCP サーバーの許可リスト。モデルが利用できるようにする MCP サーバー名のリストを指定できます。これは、接続する MCP サーバーのセットを制限するために使用できます。グロブパターン(* は任意の文字列に、? は単一の文字にマッチします。例: "*puppeteer*")をサポートしており、グロブ文字を含まないエントリは完全に一致します。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。undefined
mcp.excludedarray of strings除外する MCP サーバーの拒否リスト。mcp.excludedmcp.allowed の両方にリストされているサーバーは除外されます。mcp.allowed と同じ方法でグロブパターン(*?)をサポートします。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。undefined
mcp.toolIdleTimeoutMsnumberMCP ツール呼び出しのアイドルタイムアウト(ミリ秒単位)。この時間内に MCP サーバーから応答や進捗の更新がない場合、呼び出しは中止されます。10000 から 3600000 の間でなければなりません。QWEN_CODE_MCP_TOOL_IDLE_TIMEOUT_MS 環境変数でオーバーライドできます。300000
Note

MCP サーバーに関するセキュリティ注意事項: これらの設定は MCP サーバー名に対して単純な文字列マッチングを使用しますが、これは変更される可能性があります。ユーザーによるこの回避を防ぎたいシステム管理者は、ユーザーが独自の MCP サーバーを設定できないように、システム設定レベルで mcpServers を構成することを検討してください。これは厳密なセキュリティメカニズムとして使用すべきではありません。

lsp

[!warning] 実験的機能: LSP サポートは現在実験的であり、デフォルトで無効になっています。--experimental-lsp コマンドラインフラグを使用して有効にしてください。

Language Server Protocol (LSP) は、定義へ移動、参照の検索、診断などのコードインテリジェンス機能を提供します。

LSP サーバーの構成は、settings.json ではなく、プロジェクトのルートディレクトリにある .lsp.json ファイルを通じて行います。構成の詳細と例については、LSP ドキュメント を参照してください。

security

設定説明デフォルト
security.folderTrust.enabledbooleanフォルダーの信頼が有効かどうかを追跡する設定。false
security.auth.selectedTypestring現在選択されている認証タイプ。undefined
security.auth.enforcedTypestring必須の認証タイプ(企業環境などで有用)。undefined
security.auth.useExternalboolean外部認証フローを使用するかどうか。undefined
security.auth.apiKeystring非推奨。 OpenAI 互換認証用の API キー。代わりに envKey を使用して modelProviders に移行してください — Model Providers を参照。undefined
security.auth.baseUrlstring非推奨。 OpenAI 互換 API のベース URL。代わりに modelProviders に移行してください — Model Providers を参照。undefined
security.allowedInsecureVoiceBaseUrlsarray of stringsHTTP を使用する場合やプライベートネットワークアドレスに解決される可能性がある音声プロバイダーのベース URL。各エントリには明示的な http:// または https:// スキームとフルパス(例: /v1)を含める必要があります。URL のシリアライゼーションと末尾のスラッシュのみが正規化されます。ワイルドカードはサポートされていません。メタデータ、リンクローカル、ローカル使用 NAT64、6to4、および Teredo アドレスはリストされてもブロックされたままです。ループバックに解決されるホスト名も同様です。IPv4 マップド、IPv4 互換、および well-known NAT64(64:ff9b::/96)リテラルは埋め込み IPv4 アドレスによって分類されます。User、System、および SystemDefaults スコープのみが尊重されます。管理されたプライベートネットワーク内の信頼されたエンドポイントにのみ使用してください。クリアテキスト HTTP は、Authorization ヘッダーで送信されるプロバイダー API キーも公開します。許可リストのホスト名の信頼性は、その DNS と同等です。ゲートウェイアドレスが安定している場合は、IP リテラルエントリを優先してください。完全一致はバッチリクエスト URL をカバーします。ストリーミングトランスポートはそこから派生した WebSocket URL(同じスキーム、ホスト、ポート、/api-ws/v1/... パス)に接続し、許可リストのパス自体には接続しません。[]

serve

qwen serve の永続的なサブセッションの同時実行設定。変更にはデーモンの再起動が必要です。正でない値や整数でない同時実行制限は警告を発し、組み込みのデフォルトにフォールバックします。

設定説明デフォルト
serve.maxConcurrentSubSessionsPerCallerinteger1 つの呼び出し元セッションが create_sub_session を通じて作成できる、進行中のサブセッションの最大数。最小値は 1 です。16
serve.maxConcurrentSubSessionsTotalinteger1 つのワークスペース内のすべての呼び出し元を合わせた、進行中のサブセッションの最大数。1 から 1024 の整数でなければなりません。1024 を超える値は警告なしに 1024 にクランプされます。24

advanced

設定説明デフォルト
advanced.autoConfigureMemorybooleanNode.js のメモリ制限を自動的に構成します。false
advanced.dnsResolutionOrderstringDNS 解決の順序。undefined
advanced.excludedEnvVarsarray of stringsプロジェクトコンテキストから除外する環境変数。プロジェクトの .env ファイルから読み込まれる際に除外すべき環境変数を指定します。これにより、プロジェクト固有の環境変数(DEBUG=true など)が CLI の動作に干渉するのを防ぎます。.qwen/.env ファイルの変数はこのデフォルトリストによって除外されません。ローダーに影響する変数は、すべての .env スコープから常に拒否されます(下記参照)。["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectバグ報告コマンドの構成。/bug コマンドのデフォルト URL をオーバーライドします。プロパティ: urlTemplate (string): {title}{info} プレースホルダーを含むことができる URL。例: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
plansDirectorystring承認された Plan Mode ファイル用のカスタムディレクトリ。相対パスはプロジェクトルートから解決され、解決されたパスはプロジェクトルート内に留まる必要があります。未設定の場合、プランファイルは ~/.qwen/plans に保存されます。再起動が必要です。 ディレクトリがプロジェクトルート内にある場合は、プランファイルがコミットされないように .gitignore に追加してください。undefined

experimental

Warning

実験的機能。 これらのトグルは開発中の機能を制御するものであり、将来のリリースで変更または削除される可能性があります。

設定説明デフォルト
experimental.sessionWorkflowbooleanデーモンの Web Shell Session Workflow DAG を表示し、既存の plan 承認モードを Plan & Review として表示します。これは表示のみを変更します。承認モードの追加、Todo 実行動作の変更、または依存関係のスケジュールは行いません。変更は再起動せずに反映されます。false
experimental.cronbooleanセッション内の cron/loop ツール(cron_create, cron_list, cron_delete)を有効にし、モデルが繰り返しプロンプトを作成できるようにします。QWEN_CODE_DISABLE_CRON=1 環境変数で無効にできます。再起動が必要です。true
experimental.todoStopGuardboolean現在の作業チェーンが未完了のトップレベル Todo リストを正常に書き込んだ場合、自然なモデル停止後にデーモンおよび ACP セッションの続行を許可します。新しいユーザー入力なしで最大 2 回の連続的なプライマリモデル呼び出しを追加します。ターン中のユーザー入力は新しい 2 試行ステージを開始します。プロセス再起動後は復元されず、safe、bare、および Approval plan モードでは強制的にオフになります。再起動が必要です。false
experimental.sessionWriterLeaseboolean永続化された ACP およびデーモンセッションのクロスプロセス書き込みフェンシングを有効にします。値は ACP またはデーモンプロセスの開始時に凍結されます。すべての同時 ACP ライターがこの設定を有効にする必要があります。バージョンや設定が混在すると安全でないままです。インタラクティブおよびヘッドレスレコーダーは影響を受けません。プロセスの再起動が必要です。false
experimental.cronRecurringMaxAgeDaysnumber繰り返しの cron/loop ジョブが自動失効するまでの存続日数(最後に 1 回実行された後、削除されます)。0 に設定すると失効が無効になり、ジョブは削除されるまで実行されます。長時間実行されるデーモンのデプロイに有用です。QWEN_CODE_CRON_MAX_AGE_DAYS 環境変数でオーバーライドできます。再起動が必要です。7
experimental.agentTeambooleanマルチエージェントの調整のためのエージェントチーム協調ツール(team_create, task_create, task_update, send_message など)を有効にします。QWEN_CODE_ENABLE_AGENT_TEAM=1 で有効にすることもできます。再起動が必要です。false
experimental.artifactbooleanArtifact ツールを有効にします。デフォルトで有効。インタラクティブな非 SDK セッションでは、モデルが自己完結型の HTML ページをインタラクティブな Artifact として公開し、ブラウザで開くことができます。非 SDK デーモンセッションではメタデータのみの record_artifact を使用できます。false に設定するか QWEN_CODE_DISABLE_ARTIFACT=1 を使用すると両方を無効にします。再起動が必要です。true
experimental.emitToolUseSummariesboolean各ツール呼び出しバッチが完了するたびに、短い LLM ベースのラベルを生成します。Tool-Use Summaries を参照してください。高速モデルが構成されている必要があります(fastModel)。それ以外の場合はサイレントにスキップされます。QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 または =1 でセッションごとにオーバーライドできます。true

mcpServers

カスタムツールを検出して使用するために、1 つ以上の Model-Context Protocol (MCP) サーバーへの接続を構成します。Qwen Code は、利用可能なツールを検出するために、構成された各 MCP サーバーへの接続を試みます。複数の MCP サーバーが同じ名前のツールを公開している場合、競合を避けるために、ツール名には構成で定義したサーバーエイリアスがプレフィックスとして付与されます(例: serverAlias__actualToolName)。システムは互換性のために MCP ツール定義から特定のスキーマプロパティを削除する場合があることに注意してください。commandurl、または httpUrl の少なくとも 1 つを指定する必要があります。複数指定されている場合、優先順位は httpUrl、次に url、次に command の順です。

プロパティ説明オプション
mcpServers.<SERVER_NAME>.commandstring標準 I/O 経由で MCP サーバーを起動するために実行するコマンド。Yes
mcpServers.<SERVER_NAME>.argsarray of stringsコマンドに渡す引数。Yes
mcpServers.<SERVER_NAME>.envobjectサーバープロセスに対して設定する環境変数。Yes
mcpServers.<SERVER_NAME>.cwdstringサーバーを起動する作業ディレクトリ。Yes
mcpServers.<SERVER_NAME>.urlstring通信に Server-Sent Events (SSE) を使用する MCP サーバーの URL。Yes
mcpServers.<SERVER_NAME>.httpUrlstring通信にストリーマブル HTTP を使用する MCP サーバーの URL。Yes
mcpServers.<SERVER_NAME>.headersobjecturl または httpUrl へのリクエストで送信する HTTP ヘッダーのマップ。Yes
mcpServers.<SERVER_NAME>.timeoutnumberこの MCP サーバーへのリクエストのタイムアウト(ミリ秒)。Yes
mcpServers.<SERVER_NAME>.trustboolean信頼されたワークスペースでこのサーバーを信頼し、ツール呼び出しの確認をバイパスします。Yes
mcpServers.<SERVER_NAME>.descriptionstringサーバーの簡単な説明。表示目的で使用される場合があります。Yes
mcpServers.<SERVER_NAME>.includeToolsarray of stringsこの MCP サーバーからインクルードするツール名のリスト。指定すると、ここにリストされているツールのみがこのサーバーから利用可能になります(許可リスト動作)。指定しない場合、デフォルトでサーバーのすべてのツールが有効になります。Yes
mcpServers.<SERVER_NAME>.excludeToolsarray of stringsこの MCP サーバーから除外するツール名のリスト。ここにリストされているツールは、サーバーによって公開されている場合でも、モデルが利用することはできません。注: excludeToolsincludeTools よりも優先されます。ツールが両方のリストにある場合、それは除外されます。Yes

telemetry

Qwen Code のログ記録とメトリクス収集を設定します。詳細については、telemetry を参照してください。

設定説明デフォルト
telemetry.enabledbooleanテレメトリを有効にするかどうか。
telemetry.targetstringテレメトリ送信先の情報ラベル(local または gcp)。エクスポーターのルーティングは制御しません。データの送信先を設定するには、telemetry.otlpEndpoint または telemetry.outfile を設定してください。
telemetry.otlpEndpointstringOTLP エクスポーターのエンドポイント。
telemetry.otlpProtocolstringOTLP エクスポーターのプロトコル(grpc または http)。
telemetry.logPromptsbooleanユーザープロンプトの内容をログに含めるかどうか。
telemetry.userIdstringARMS 拡張 gen_ai.user.id として GenAI スパンに書き込まれる安定したエンドユーザー識別子。偽匿名値を推奨します。共有マルチユーザーデーモンまたはチャネルインスタンスに対してプロセス全体の値を設定しないでください。
telemetry.includeSensitiveSpanAttributesboolean有効にすると、ユーザープロンプト、システムプロンプト、ツールの入出力、モデルの応答がそのままネイティブな OTel スパン属性に添付されます(ログからスパンへのブリッジスパンに加えて)。⚠️ ファイルの内容、シェルコマンド、会話履歴などの機密データが OTLP バックエンドにストリーミングされます。false
telemetry.sensitiveSpanAttributeMaxLengthnumber各機密ネイティブ OTel スパン属性のコンテンツペイロードの最大 JavaScript 文字列長。1 から 104857600(100 MiB)の間である必要があります。コレクターまたはバックエンドが大きな属性を拒否する場合は、より低い値に設定してください。1048576
telemetry.outfilestringテレメトリをファイルに書き込むパス。設定すると、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, "userId": "user-079458", "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 のアプローチについては、Authentication を参照してください。

Tip

環境変数の除外: CLI の動作への干渉を防ぐため、一部の環境変数(DEBUGDEBUG_MODE など)はデフォルトでプロジェクトの .env ファイルから自動的に除外されます。.qwen/.env ファイルの変数は除外されません。この動作は、settings.json ファイルの advanced.excludedEnvVars 設定を使用してカスタマイズできます。

Warning

ローダーに影響する変数は常に拒否されます: 生成された Node.js プロセスや OS ローダーに攻撃者が選択したファイルを実行させる変数 — NODE_OPTIONSnpm_config_node_options(および npm の設定ファイルリダイレクト npm_config_userconfignpm_config_globalconfignpm_config_script_shellnpm_config_prefix)、NODE_PATHOPENSSL_CONF(起動時に攻撃者の OpenSSL エンジンを dlopen します)、NODE_REPL_EXTERNAL_MODULEnpm_config_node_gypnpm_config_init_moduleLD_PRELOADLD_AUDITDYLD_INSERT_LIBRARIESBASH_ENVZDOTDIR、およびエクスポートされた bash 関数定義(BASH_FUNC_*)— は、.env ファイル(.qwen/.env やユーザーレベルのファイルを含むすべてのスコープ)またはトップレベルの settings.jsonenv セクションからは決して読み込まれません。ワークスペースが制御する値がそこに存在すると、Qwen Code が生成するすべてのサブプロセスのモジュール解決をハイジャックされる可能性があるため、Qwen Code はそのようなキーを拒否した際に警告を出力します(プロセスごとに 1 回、キーとソースごと — マルチワークスペースのデーモンでは、各ワークスペースの拒否が個別に報告されます)。これらの変数のいずれかを使用するには、Qwen Code を起動する環境でエクスポートしてください。qwen serve デーモンがホストするセッションは意図的にそれらを継承しませんが、直接のエディタ(ACP)セッションとプレーンな CLI はエクスポートされた値を保持します。ライブラリの_検索_パス(LD_LIBRARY_PATHDYLD_LIBRARY_PATH)およびインタラクティブシェルのみの ENV は意図的にこのリストに含まれていません — それらを拒否すると主流のツールチェーン(ENV=production、conda/CUDA ライブラリディレクトリ)が壊れるためです — ただし、プロジェクトの .env はリロード時にそれらを適用できません。この拒否はトップレベルの env セクションにのみ適用されます。サーバーごとの mcpServers[].env とフックごとの hooks[].env は意図的にそのサーバーまたはフックにスコープされており、引き続き適用されます(両方のインターフェースはワークスペース提供の設定に対してフォルダー信頼によってゲートされています)。別途、プロジェクトの .envQWEN_CLI_ENTRY(デーモンのセッションプロセスエントリポイント)、QWEN_CDP_MCP_COMMAND(デーモンがブラウザ自動化 MCP アダプターとして生成するコマンド)、QWEN_SERVE_CDP_TUNNEL_OVER_WS(そのトンネルサーフェースを有効化)、DEV(開発ハーネスの起動マーカー)、TLS 信頼アンカー変数(NODE_EXTRA_CA_CERTSSSL_CERT_FILESSL_CERT_DIRCURL_CA_BUNDLEREQUESTS_CA_BUNDLEGIT_SSL_CAINFOGIT_SSL_CAPATHnpm_config_cafilenpm_config_canpm_config_strict_sslPIP_CERT — ここに攻撃者の CA を設定するか、npm_config_strict_ssl=false にすると、セッションの git/npm/pip/curl 呼び出しが行うトークン保持トラフィックの MITM が可能になります)、git コマンド実行変数(GIT_SSH_COMMANDGIT_SSHGIT_EXEC_PATHGIT_TEMPLATE_DIRGIT_ASKPASSGIT_PROXY_COMMANDGIT_EDITORGIT_SEQUENCE_EDITORGIT_EXTERNAL_DIFFGIT_CONFIG_GLOBALGIT_CONFIG_SYSTEMGIT_CONFIG_COUNTGIT_CONFIG_PARAMETERS および番号付きの GIT_CONFIG_KEY_<n>/GIT_CONFIG_VALUE_<n> ペア — git はセッションの git 呼び出し時にこれらを実行します — および XDG_CONFIG_HOME$XDG_CONFIG_HOME/git/config をリダイレクトし、~/.gitconfig とマージします)、curl/wget rc ファイルリダイレクト(CURL_HOMEWGETRC — それらの rc ファイルは攻撃者のプロキシや CA をインストールできます)、PIP_CONFIG_FILE(pip の全設定をリダイレクトします — 攻撃者のファイル内の index-urltrusted-host、プロキシ、または証明書の設定により、セッションの pip トラフィックや認証情報が攻撃者のインフラストラクチャに送信されます)、SSH_ASKPASS(認証チャレンジ時にフォールバックのパスフレーズプロンプトプログラムとして git/ssh によって実行されます)、LESSOPEN および LESSCLOSEless がセッションが表示するすべてのファイルの入力プリプロセッサとして実行します)、node-gyp インタープリター選択変数(NODE_GYP_FORCE_PYTHONnpm_config_pythonPYTHON — ネイティブアドオンインストール中にビルド Python として実行されます — および npm_config_git、npm の git バイナリとして実行されます)、エディタおよび起動フック(VISUALEDITOR — git のエディタフォールバックチェーンであり、CLI 独自の外部エディタフローでも生成されます — および PYTHONSTARTUP、CPython がインタラクティブ起動時に実行します)、または BROWSER(CLI がセキュアなブラウザランチャー経由で実行します)を設定できません。それらはシェル環境またはユーザーレベルの .env から設定可能です。上記のローダーリストとは異なり、これらはプロジェクトファイルからのみ拒否されるため、自分でエクスポートした値は保持されます。また、ユーザーレベルの .env からのブート時に凍結されます。設定のリロードでは、そこでの編集や削除はプロセスが再起動するまで適用されません。アップグレードノート: この拒否リストが存在する前は、これらのキーの一部が一部のパスで .env ファイルまたは settings.jsonenv から読み込まれる可能性がありましたが、現在はすべての場所で警告付きで拒否され、qwen serve デーモンはセッションサブプロセスにそれらの継承された値を渡さなくなりました。

環境変数テーブル

変数説明備考
QWEN_HOMEグローバル設定ディレクトリをカスタマイズします(デフォルト: ~/.qwen)。絶対パスまたは相対パスを受け付けます(相対パスは現在の作業ディレクトリから解決されます)。先頭の ~ はユーザーのホームディレクトリに展開されます。認証情報、設定、メモリ、スキル、その他のグローバル状態を保存します。設定しても、プロジェクトレベルの .qwen/ ディレクトリには影響しません。空の文字列は未設定として扱われます。
QWEN_RUNTIME_DIRランタイム出力ディレクトリ(会話、ログ、todo)をオーバーライドします。未設定の場合、デフォルトで QWEN_HOME ディレクトリになります。一時的なランタイムデータを永続的な設定から分離するために使用します。QWEN_HOME が共有または低速なファイルシステム上にある場合に便利です。
QWEN_USAGE_STATISTICS_ENABLEDtrue または 1 に設定すると使用統計が有効になります。その他の値は無効として扱われます。privacy.usageStatisticsEnabled 設定をオーバーライドします。どちらも設定されていない場合はデフォルトで有効です。
QWEN_TELEMETRY_ENABLEDtrue または 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_PROTOCOLOTLP プロトコル(grpc または http)を設定します。telemetry.otlpProtocol 設定をオーバーライドします。
QWEN_TELEMETRY_LOG_PROMPTStrue または 1 に設定すると、ユーザープロンプトのログ記録が有効または無効になります。その他の値は無効として扱われます。telemetry.logPrompts 設定をオーバーライドします。
QWEN_TELEMETRY_USER_IDインタラクション、LLM、ツール、およびエージェントスパンに gen_ai.user.id として安定したエンドユーザー識別子を設定します。偽匿名値を推奨します。トリミング後に telemetry.userId をオーバーライドします。空の値は設定にフォールバックします。これはプロセス全体であり、共有マルチユーザープロセスでリクエストごとの ID として使用してはなりません。
QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTEStrue または 1 に設定すると、ユーザープロンプト、システムプロンプト、ツールの入出力、モデルの応答がそのままネイティブな 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_SANDBOXsettings.jsonsandbox 設定の代替手段です。truefalsedockerpodman、またはカスタムコマンド文字列を受け付けます。
QWEN_SANDBOX_IMAGEDocker/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_HYPERLINKMarkdown レンダラーでの OSC 8 クリック可能リンクの検出をオーバーライドします。1(または 0 以外の整数、あるいは空の文字列)に設定すると強制的に有効化します。0 または false / off などの非数値に設定すると強制的に無効化します。上位の NO_COLOR / QWEN_DISABLE_HYPERLINKS によるオプトアウトを尊重します。tmux / GNU screen 内で OSC 8 をオプトインするために使用します(ホストターミナルの機能がマルチプレクサーの背後に隠れているため、自動検出はデフォルトで拒否されます)。tmux 3.3+ では set -g allow-passthrough on が必要です。また、自動検出されない Hyper も有効にします。
QWEN_DISABLE_HYPERLINKS1 に設定すると、自動検出で対応可能と判定されるターミナル上でも、Markdown レンダラーでの OSC 8 クリック可能ハイパーリンクを強制的に無効にします。ターミナルがサポートを宣伝しているにもかかわらず長い URL で壊れる場合や、エスケープシーケンスを破損する中間処理を介して出力をパイプする場合に便利です。レンダラーはプレーンな label (url) のレンダリングにフォールバックします。
CLI_TITLE文字列に設定すると、CLI のタイトルをカスタマイズします。
CODE_ASSIST_ENDPOINTコードアシストサーバーのエンドポイントを指定します。開発およびテストに役立ちます。
QWEN_CODE_MAX_OUTPUT_TOKENSレスポンスごとのデフォルトの最大出力トークンをオーバーライドします。未設定の場合、Qwen Code はモデルの宣言された出力制限をデフォルトとし、レスポンスが切り捨てられた場合は自動的にエスカレーション(64K が下限)を行い、ターンをまたいで回復します。特定の値(例: 16000)に設定すると、代わりに固定制限を使用します。これは、リクエストごとのスロット予約を低く抑えたい容量制約のあるセルフホスト型バックエンドに便利です。設定ではモデル制限のデフォルトより優先されますが、samplingParams.max_tokens によってオーバーライドされます。設定すると自動エスカレーションが無効になります。例: export QWEN_CODE_MAX_OUTPUT_TOKENS=16000
QWEN_CODE_UNATTENDED_RETRYtrue または 1 に設定すると、永続的なリトライモードが有効になります。有効にすると、一時的な API 容量エラー(HTTP 429 Rate Limit および 529 Overloaded)が、指数関数的バックオフ(リトライごとに最大 5 分)と stderr への 30 秒ごとのハートビートキープアライブを用いて無期限にリトライされます。長時間実行されるタスクが一時的な API 停止からも生き残るべき CI/CD パイプラインやバックグラウンド自動化向けに設計されています。明示的に設定する必要があります。CI=true だけではこのモードは有効化されません。詳細については、Headless Mode を参照してください。例: export QWEN_CODE_UNATTENDED_RETRY=1
QWEN_CODE_ACP_REPEATED_TOOL_FAILURE_GUARDACP の繰り返しツール実行失敗保護のオペレーターロールアウトモード。offshadowwarn、または enforce を受け付けます。欠落または無効な値は shadow がデフォルトです。インタラクティブなフォアグラウンド ACP プロンプトにのみ適用されます。チャネル駆動および自動ルートはオフのままです。プロジェクトおよびワークスペースの環境ファイルはこのオペレーターポリシーを設定できません。Shadow はモデルの継続とメッセージは変更しませんが、craft/drainMidTurnQueue にキュー付きプロンプトウォッチフラグを追加します。off 以外のすべてのモードでは、信頼できるキュー付きプロンプト状態が必要です。空でない無効な値は診断を出力します。変数をプロセス環境またはユーザーレベルのファイルにエクスポートしてください。
QWEN_CODE_PROFILE_STARTUP1 に設定すると、スタートアップのパフォーマンスプロファイリングが有効になります。フェーズごとの所要時間を含む JSON タイミングレポートを ~/.qwen/startup-perf/ に書き込みます。サンドボックスの子プロセス内(または QWEN_CODE_PROFILE_STARTUP_OUTER=1 設定時)でのみ有効です。未設定時のオーバーヘッドはゼロです。例: export QWEN_CODE_PROFILE_STARTUP=1
QWEN_CODE_PROFILE_STARTUP_OUTERQWEN_CODE_PROFILE_STARTUP=1 と一緒に 1 に設定すると、外側(サンドボックス以前)のプロセスでもスタートアッププロファイルを収集します。外側プロセスのレポートは、サンドボックスの子プロセスのレポートと区別するために、ファイル名プレフィックス outer- が付与されます。デフォルトではオフです。重複レポートを避けるため、サンドボックスの子プロセスのみが収集します。CLI がサンドボックスに再起動されないローカル開発時に便利です。
QWEN_CODE_PROFILE_STARTUP_NO_HEAPQWEN_CODE_PROFILE_STARTUP=1 と一緒に 1 に設定すると、チェックポイントごとの process.memoryUsage() スナップショットをスキップします。プロファイラー自体のハイゼンベルグオーバーヘッドを測定する際に便利です。デフォルトではオフです。ヒープスナップショットはそれぞれ約 50 µs コストがかかります(スタートアップ全体の 1% を十分に下回るため)、ほとんどのユーザーはそのままにしておくべきです。
QWEN_CODE_LEGACY_MCP_BLOCKING1 に設定すると、Config.initialize() が戻る前に設定されたすべての MCP サーバーの discover ハンドシェイクを同期的に待機する、プログレッシブ MCP 以前の動作に戻します。デフォルトではオフです。最新の qwen-code では、UI がすでにインタラクティブな状態で MCP サーバーがバックグラウンドでオンラインになり、モデルはサーバーが安定してから約 16 ms 以内に新しいツールの各バッチを認識します。このフラグは、少なくとも 1 リリースの間、ロールバック用の脱出ハッチとして保持されています。例: export QWEN_CODE_LEGACY_MCP_BLOCKING=1
QWEN_CODE_LEGACY_ERASE_LINES=1 でターミナルの再描画オプティマイザーを強制的に無効化(行ごとの消去シーケンスを復元)。=0 では WSL でも強制的に有効化(WSL では ConPTY がオプティマイザーのバッチ処理されたカーソル移動を誤って処理するため、デフォルトでスキップされる(issue #7634))。未設定 = プラットフォームのデフォルト(WSL_DISTRO_NAME または WSL_INTEROP が設定されている場合はスキップ)。ストリーミング出力の回帰用の脱出ハッチ。環境から読み取られるため、環境をスクラブするランチャー(sudo など)もそれを削除します。代わりに起動時に渡してください: sudo QWEN_CODE_LEGACY_ERASE_LINES=1 qwen。例: export QWEN_CODE_LEGACY_ERASE_LINES=1
両方のユーザーレベルの .env ファイルで同じ変数が定義されている場合、Qwen 固有のファイルが優先されます。<QWEN_HOME>/.envQWEN_HOME が未設定の場合は ~/.qwen/.env)は ~/.env よりも先に読み込まれ、既存の環境変数の値は上書きされません。

コマンドライン引数

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 と組み合わせて使用できます。例については Headless Mode を参照してください。
--output-format-o非対話モードにおける CLI 出力のフォーマットを指定します。text, json, stream-jsontext: (デフォルト) 標準の人間が読みやすい出力。json: 実行終了時に出力されるマシンリーダブルな JSON 出力。stream-json: 実行中に発生するたびにストリーミングされる JSON メッセージ。構造化された出力やスクリプト作成には、--output-format json または --output-format stream-json フラグを使用します。詳細については Headless Mode を参照してください。
--input-format標準入力から消費されるフォーマットを指定します。text, stream-jsontext: (デフォルト) stdin またはコマンドライン引数からの標準テキスト入力。stream-json: 双方向通信のための stdin 経由の JSON メッセージプロトコル。要件: --input-format stream-json を使用するには、--output-format stream-json の設定が必要です。stream-json を使用する場合、stdin はプロトコルメッセージ用に予約されます。詳細については Headless Mode を参照してください。
--include-partial-messagesstream-json 出力フォーマットを使用する際に、部分的なアシスタントメッセージを含めます。有効にすると、ストリーミング中に発生するストリームイベント(message_startcontent_block_delta など)を出力します。デフォルト: false。要件: --output-format stream-json の設定が必要です。ストリームイベントの詳細については Headless Mode を参照してください。
--sandbox-sこのセッションのサンドボックスモードを有効にします。
--sandbox-imageサンドボックスイメージの URI を設定します。
--debug-dこのセッションのデバッグモードを有効にし、より詳細な出力を提供します。
--help-hコマンドライン引数に関するヘルプ情報を表示します。
--yoloすべてのツール呼び出しを自動的に承認する YOLO モードを有効にします。
--approval-modeツール呼び出しの承認モードを設定します。plan, default, auto-edit, auto, yoloサポートされているモード: plan: 分析のみ。ファイルの修正やコマンドの実行は行いません。default: ファイルの編集やシェルコマンドの実行に承認を要求します(デフォルトの動作)。auto-edit: 編集ツール(editwrite_filenotebook_edit)を自動的に承認し、その他のツールについてはプロンプトを表示します。auto: LLM クラシファイアが安全なアクションを自動的に承認し、リスクのあるアクションをブロックします。yolo: すべてのツール呼び出しを自動的に承認します(--yolo と同等)。--yolo と同時に使用することはできません。新しい統合アプローチでは、--yolo の代わりに --approval-mode=yolo を使用します。例: qwen --approval-mode auto-edit
詳細については Approval Mode を参照してください。
--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テレメトリ用のプロンプトのログ記録を有効にします。詳細については テレメトリ を参照してください。
--acpACP モード(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利用可能なすべての拡張機能を一覧表示して終了します。
--proxyCLI のプロキシを設定します。プロキシ URL例: --proxy http://localhost:7890
--include-directories複数ディレクトリサポートのために、ワークスペースに追加のディレクトリを含めます。ディレクトリパス複数回指定するか、カンマ区切りの値として指定できます。例: --include-directories /path/to/project1,/path/to/project2 または --include-directories /path/to/project1 --include-directories /path/to/project2
--screen-readerスクリーンリーダーモードを有効にし、TUI をスクリーンリーダーとの互換性が向上するように調整します。
--versionCLI のバージョンを表示します。
--openai-loggingデバッグおよび分析のために OpenAI API 呼び出しのログ記録を有効にします。このフラグは settings.jsonenableOpenAILogging 設定を上書きします。
--openai-logging-dirOpenAI API ログのカスタムディレクトリパスを設定します。ディレクトリパスこのフラグは settings.jsonopenAILoggingDir 設定を上書きします。絶対パス、相対パス、および ~ 展開をサポートします。例: 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 ダイアログから確認できます。一般的な読み込み順序は次のとおりです。
    1. グローバルコンテキストファイル:
      • 場所: ~/.qwen/<configured-context-filename>(例: ユーザーホームディレクトリ内の ~/.qwen/QWEN.md)。
      • 範囲: すべてのプロジェクトに対するデフォルトの指示を提供します。
    2. プロジェクトルートおよび祖先のコンテキストファイル:
      • 場所: CLIは、現在の作業ディレクトリで設定されたコンテキストファイルを検索し、次にプロジェクトルート(.git フォルダで識別)またはホームディレクトリまでの各親ディレクトリで検索します。
      • 範囲: プロジェクト全体またはその大部分に関連するコンテキストを提供します。
  • 連結とUI表示: 見つかったすべてのコンテキストファイルのコンテンツは(その由来とパスを示すセパレータ付きで)連結され、システムプロンプトの一部として提供されます。CLIフッターには読み込まれたコンテキストファイルの数が表示され、アクティブな指示コンテキストに関するクイックな視覚的な手がかりを提供します。
  • コンテンツのインポート: @path/to/file.md 構文を使用して他のMarkdownファイルをインポートすることで、コンテキストファイルをモジュール化できます。詳細については、Memory documentation を参照してください。
  • メモリ管理のコマンド:
    • /memory を使用して、メモリ管理ダイアログを開きます。
    • ダイアログからメモリを更新して、設定されたすべての場所からコンテキストファイルを再スキャンおよび再読み込みします。
    • /memory コマンドの完全な詳細については、Commands documentation を参照してください。

これらの設定レイヤーとコンテキストファイルの階層的な性質を理解して活用することで、AIのメモリを効果的に管理し、Qwen Code の応答を特定のニーズやプロジェクトに合わせて調整できます。

サンドボックス

Qwen Code は、システムを保護するために、サンドボックス化された環境内で潜在的に安全でない操作(シェルコマンドやファイルの変更など)を実行できます。

サンドボックスはデフォルトで無効になっていますが、いくつかの方法で有効にできます:

  • --sandbox または -s フラグを使用する。
  • QWEN_SANDBOX 環境変数を設定する。
  • 設定で tools.sandbox を設定する。

⚠️ --yolo ではサンドボックスは自動的に有効になり_ません_。 YOLOモードはツール呼び出しを自動承認するだけです。サンドボックス化は引き続き --sandboxQWEN_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がどのように使用されているかを理解し、一般的な問題を特定し、新機能の優先順位を決定するのに役立ちます。

収集する情報:

  • ツール呼び出し: 呼び出されたツールの名前とカテゴリ(ネイティブまたは MCP)、終了ステータス(成功、エラー、またはキャンセル)、および実行にかかった時間をログに記録します。ツールに渡された引数や、ツールから返されたデータは収集しません。
  • APIリクエスト: 各リクエストに使用されたモデル、リクエストの所要時間、および成功したかどうかをログに記録します。プロンプトや応答のコンテンツは収集しません。
  • セッション情報: 有効なツールや承認モードなど、CLIの設定に関する情報を収集します。

収集しない情報:

  • 個人を特定できる情報(PII): 名前、メールアドレス、APIキーなどの個人情報は収集しません。
  • プロンプトと応答のコンテンツ: プロンプトのコンテンツやモデルからの応答はログに記録しません。
  • ファイルコンテンツ: CLIによって読み書きされるファイルのコンテンツはログに記録しません。

オプトアウトする方法:

settings.json ファイルの privacy カテゴリ下にある usageStatisticsEnabled プロパティを false に設定することで、いつでも使用統計の収集をオプトアウトできます:

{ "privacy": { "usageStatisticsEnabled": false } }

または、環境で QWEN_USAGE_STATISTICS_ENABLED=false(または 0)を設定します。環境変数は設定よりも優先されます。いずれかの値を変更した後は Qwen Code を再起動してください。

Note

使用統計が有効になっている場合、イベントは Alibaba Cloud RUM 収集エンドポイントに送信されます。

Last updated on