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 Skills(各 Skill はSKILL.mdを含むディレクトリです)。
設定の移行
Qwen Code は、レガシーな設定を新しい形式に自動的に移行します。古い設定ファイルは移行前にバックアップされます。以下の設定は、否定形(disable*)から肯定形(enable*)の命名に変更されました:
| 旧設定 | 新設定 | 備考 |
|---|---|---|
disableAutoUpdate + disableUpdateNag | general.enableAutoUpdate | 単一の設定に統合 |
disableLoadingPhrases | ui.accessibility.enableLoadingPhrases | |
disableFuzzySearch | context.fileFiltering.enableFuzzySearch | |
disableCacheControl | model.generationConfig.enableCacheControl |
ブール値の反転: 移行時、ブール値は反転されます(例: disableAutoUpdate: true は enableAutoUpdate: false になります)。
disableAutoUpdate と disableUpdateNag の統合ポリシー
両方のレガシー設定が異なる値で存在する場合、移行は次のポリシーに従います: disableAutoUpdate または disableUpdateNag の どちらか一方 でも true の場合、enableAutoUpdate は false になります:
disableAutoUpdate | disableUpdateNag | 移行後の enableAutoUpdate |
|---|---|---|
false | false | true |
false | true | false |
true | false | false |
true | true | false |
settings.json で利用可能な設定
設定はカテゴリごとに整理されています。ほとんどの設定は、settings.json ファイル内の対応するトップレベルのカテゴリオブジェクト内に配置する必要があります。proxy や plansDirectory などの一部のトップレベル設定は、互換性のために直接ルートキーとして残っています。
general
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
general.preferredEditor | string | ファイルを開く際に使用する優先エディタ。 | undefined |
general.vimMode | boolean | Vim キーバインドを有効にします。 | false |
general.enableAutoUpdate | boolean | 起動時の自動アップデートチェックとインストールを有効にします。 | true |
general.showSessionRecap | boolean | ターミナルから離れて戻った際に、一行の「前回までの状況」要約を自動表示します。デフォルトではオフです。この設定に関係なく、/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 | enum | 新規ファイルのデフォルトエンコーディング。BOM なし UTF-8 の場合は "utf-8"(デフォルト)、BOM 付き UTF-8 の場合は "utf-8-bom" を使用します。プロジェクトで特に BOM が必要な場合のみ変更してください。 | "utf-8" |
general.voice.enabled | boolean | プロンプト入力での音声ディクテーションを有効にします。/voice コマンドでも切り替え可能です。トランスクリプションモデル(voiceModel)の設定が必要です。 | false |
general.voice.mode | enum | プッシュツートークの動作: "hold" はキーを押し続けている間話す、"tap" はタップで開始し、再度タップ(または一時停止)で停止して送信します。 | "hold" |
general.voice.language | string | 音声トランスクリプションの優先言語(例: "english"、"chinese")。空欄にすると自動検出されます。 | "" |
general.voice.keytermsFile | string | 音声トランスクリプションをドメイン固有の用語にバイアスさせるカスタムキーワードファイル(1 行に 1 つの用語、# はコメント)へのパス。相対パスはワークスペースルートからの相対で解決され、存在する場合はデフォルトで .qwen/voice-keyterms.txt になります。信頼されたワークスペースでのみ読み取られます。Qwen ASR モデル(qwen3-asr-*)にのみ適用されます。 | "" |
general.voice.refineTranscript | boolean | 挿入前に高速モデルを使用して音声トランスクリプトをクリーンアップします。フィラーワードを削除し、認識エラーを修正しながら意味を保持します。失敗した場合は生のトランスクリプトにフォールバックし、高速モデルが設定されていない場合はスキップされます。 | true |
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 |
general.terminalBell | boolean | レスポンスが完了したか、承認を必要とする際にターミナルベル音を鳴らします。 | true |
general.preventSystemSleep | boolean | Qwen Code がモデルレスポンスをストリーミング中、またはツールを実行中にシステムがスリープ状態になるのを防ぎます。アイドルプロンプト時間と権限プロンプトはスリープを抑制しません。起動時に 1 回だけ読み取られるため、変更は再起動後に有効になります。 | true |
general.chatRecording | boolean | チャット履歴をディスクに保存します。これを無効にすると、--continue と --resume も機能しなくなります。再起動が必要です。 | true |
output
| 設定 | 型 | 説明 | デフォルト | 指定可能な値 |
|---|---|---|---|---|
output.format | string | CLI 出力のフォーマット。 | "text" | "text", "json" |
output.showTimestamps | boolean | 各アシスタントの応答の前に [HH:MM:SS] のタイムスタンプを表示します。 | false |
ui
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
ui.theme | string | UI のカラーテーマ。利用可能なオプションについては Themes を参照してください。 | "Qwen Dark" |
ui.customThemes | object | カスタムテーマの定義。 | {} |
ui.statusLine | object | カスタムステータスラインの設定。command、refreshInterval、respectUserColors、hideContextIndicator オプションをサポートします。詳細は Status Line を参照してください。 | undefined |
ui.hideWindowTitle | boolean | ウィンドウのタイトルバーを非表示にします。 | false |
ui.hideTips | boolean | UI 内のすべてのヒント(起動時および応答後)を非表示にします。詳細は Contextual Tips を参照してください。 | false |
ui.hideBanner | boolean | 起動時の ASCII ロゴと情報パネルを非表示にします。ui.hideTips も設定されていない限り、ヒントとチャット入力は引き続き表示されます。 | false |
ui.customBannerTitle | string | バナー情報パネルのデフォルトの >_ Qwen Code タイトルを置き換えます。(vX.Y.Z) のバージョンサフィックスは常に追加され、auth、model、path の行は影響を受けません。サニタイズされ、最大 80 文字に制限されます。 | "" |
ui.customBannerSubtitle | string | バナータイトルと auth/model 行の間に、空白のスペーサー行の代わりにレンダリングされるオプションのサブタイトル行。サニタイズされ、最大 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 Rendering を参照してください。 | "render" |
ui.showCitations | boolean | チャット内の生成テキストの引用を表示します。 | false |
ui.history.collapseOnResume | boolean | セッションを再開するときにデフォルトで履歴を折りたたむかどうか。/history collapse-on-resume および /history expand-on-resume で切り替えることができます。 | false |
ui.history.collapsePreviewCount | number | ui.history.collapseOnResume が有効な場合に、表示されたままにする最新のユーザーターンの数。0 はデフォルトですべての復元された履歴を折りたたみます。-1 はすべての復元された履歴を表示します。 | 0 |
ui.compactMode | boolean | よりクリーンなビューのためにツールの出力と考えプロセスを非表示にします。セッション中は Ctrl+O で、または設定ダイアログから切り替えます。ツール承認プロンプトは、コンパクトモードでも非表示になりません。この設定はセッションをまたいで保持されます。 | false |
ui.shellOutputMaxLines | number | インラインで表示されるシェル出力の最大行数。0 に設定すると上限が無効になり、完全な出力が表示されます。非表示の行は +N lines インジケーターで表示されます。エラー、! プレフィックスのユーザー開始コマンド、ツールの確認、およびフォーカスされた埋め込みシェルは常に完全な出力を表示します。 | 5 |
ui.enableWelcomeBack | boolean | 会話履歴のあるプロジェクトに戻ったときに、ウェルカムバックダイアログを表示します。有効にすると、Qwen Code は以前に生成されたプロジェクトサマリー(.qwen/PROJECT_SUMMARY.md)を持つプロジェクトに戻っているかどうかを自動的に検出し、以前の会話を続行するか、新規に開始するかを選択できるダイアログを表示します。Start new chat session を選択した場合、その選択はプロジェクトサマリーが変更されるまで、現在のプロジェクトに対して記憶されます。この機能は /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 | モデルの応答後に次に入力したい内容を予測する followup suggestions を有効にします。提案はプレースホルダーテキストとして表示され、Tab、Enter、または右矢印キーで受け入れられます(これらは入力を補完しますが、自動送信はしません)。デフォルトでオンになっています。オプトアウトする場合は false に設定します。 | true |
ui.enableCacheSharing | boolean | 提案生成にキャッシュ対応のフォーククエリを使用します。プレフィックスキャッシュをサポートするプロバイダーのコストを削減します(実験的)。 | true |
ui.enableSpeculation | boolean | 送信前に受け入れられた提案を投機的に実行します。受け入れると結果が即座に表示されます(実験的)。 | false |
ui.showStatusInTitle | boolean | ターミナルウィンドウのタイトルに Qwen Code のセッション名とステータスを表示します。 | true |
ui.disableWorkflowKeywordTrigger | boolean | true の場合、プロンプトで workflow という単語に言及しても、ターンが Workflow ツールへ暗黙的に誘導されなくなります(また、フッターの workflow active インジケーターも抑制されます)。ワークフローが有効な場合にのみ適用されます。 | false |
ui.enableUserFeedback | boolean | 会話後にオプションのフィードバックダイアログを表示し、Qwen のパフォーマンス向上に役立てます。 | true |
ui.compactInline | boolean | グループ間をマージするのではなく、各グループ内でツールの表示をコンパクトにします。ui.compactMode が有効である必要があります。再起動が必要です。 | false |
ui.useTerminalBuffer | boolean | ターミナルのスクロールバックバッファーではなく、アプリ内のスクロール可能なビューポートで会話履歴をレンダリングします。長いセッションでちらつき、スクロールストーム、またはインターフェースのフリーズが発生する場合に推奨されます。Shift+↑/↓(行)、PgUp/PgDn(ページ)、Ctrl+Home/End(最上部/最下部)、またはマウスホイールでスクロールします。有効な間はホストターミナルのスクロールバックを使用しません。ネイティブのテキスト選択を行うには、ドラッグ中に Shift(macOS の場合は Option)を押し続けます。 | false |
ui.hideBuiltinWorktreeIndicator | boolean | フッターの組み込み ⎇ worktree-<branch> (<slug>) 行を非表示にします。worktree の状態は引き続き stdin ペイロード経由でカスタムステータスラインスクリプトに渡されます。カスタムステータスラインが worktree 自体をレンダリングする場合を除き、デフォルトのままにしてください。 | false |
ide
| Setting | Type | Description | Default |
|---|---|---|---|
ide.enabled | boolean | IDE 統合モードを有効にします。 | false |
ide.hasSeenNudge | boolean | ユーザーが IDE 統合の案内を見たかどうか。 | false |
privacy
| Setting | Type | Description | Default |
|---|---|---|---|
privacy.usageStatisticsEnabled | boolean | 使用統計の収集を有効にします。 | true |
model
| Setting | Type | Description | Default |
|---|---|---|---|
model.name | string | 会話に使用する Qwen モデル。 | undefined |
model.reasoningEffort | enum | 推論対応モデルがどの程度深く思考するかを指定し、すべてのプロバイダーに適用されます。/effort コマンド(low、medium、high、xhigh、max)で設定します。各プロバイダーは、アクティブなモデルがサポートする範囲にこの値をマッピングおよびクランプします(例:Gemini は high で上限設定、Anthropic はモデルが欠落しているティアをクランプ)。未設定の場合は、モデル/プロバイダーのデフォルトが使用されます。 | undefined |
model.baseUrl | string | 複数の modelProviders エントリが同じモデル ID を共有する場合の曖昧さを解消するために、モデルピッカーによって自動的に永続化されます。手動で設定することは意図されていません。代わりに /model ピッカーまたは modelProviders エントリを使用してください。古い手動編集値は、リクエストを同じ ID の別のプロバイダーにサイレントにルーティングする可能性があります。 | undefined |
model.sessionTokenLimit | number | 次のメッセージを送信する前に許可される、記録されたプロンプトトークン数の最大値。-1 は無制限を意味し、0 も無制限として扱われます(model.maxToolCalls とは異なり、そちらでは 0 はすべての呼び出しを許可しません)。記録されたプロンプト数が制限を超えると、次の送信は破棄されます(セッションは中止されません)。 | -1 |
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 | 1 回の実行における累積ツール呼び出し予算(成功または失敗に関わらず、実行されたすべてのツールをカウントします。--json-schema 下の structured_output は免除されます)。-1 は無制限、0 は「ツール呼び出し不可」を意味します。タイプミスを検出するために 1,000,000 で上限設定されます。--max-tool-calls 経由でオーバーライド可能です。超過すると終了コード 55 で中止されます。 | -1 |
model.maxSubagentDepth | number | サブエージェントのネスト深度の最大値(1 ベースのレベル:トップレベルのサブエージェントはレベル 1)。1 はサブエージェントを有効にしたままネストを無効にします(ネスト導入前の動作)。値は 1〜100 の範囲にクランプされ、非有限値はデフォルトにフォールバックします。チームメイト、フォーク、およびワークフローから生成されたエージェントは、この設定に関係なくネストされません。--max-subagent-depth 経由でオーバーライド可能です。 | 5 |
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 | 削除済み。 context.autoCompactThreshold に置き換えられました(以下の #### context セクションを参照)。自動コンパクションは現在、computeThresholds() 関数を介してモデルのコンテキストウィンドウから内部的に計算される 3 段階のしきい値ラダー(警告/自動/ハード)を使用します。古い設定はサイレントに無視されます(起動時の警告はありません)。再設計の根拠については、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 が有効な場合のみ)。コンパクションはカウントをリセットします。生き残った画像はトップレベルのパーツとして再埋め込みされ、トリガーはこれをカウントしないため、すぐに再発生することはありません。環境変数オーバーライド:QWEN_COMPACT_SCREENSHOT_THRESHOLD。 | 50 |
model.skipNextSpeakerCheck | boolean | 次のスピーカーチェックをスキップします。 | true |
model.skipLoopDetection | boolean | ストリーミングループ検出チェックを無効にします。デフォルトは true(ループ検出がスキップされる)で、正当なワークフローを中断する誤検出を回避します。false に設定すると、ストリーミングループ検出が再度有効になります。これは、ヘッドレス/非対話型実行において、繰り返しの停滞が予算を無駄にするのを防ぐガードレールとして有用です。 | true |
model.maxToolCallsPerTurn | number | 1 つのターン内(1 つのモデルターンとそのツール結果の継続;/goal イテレーションなどのブロックする Stop-hook 継続は新しい予算を開始します)でのツール呼び出しのハードキャップ。model.skipLoopDetection とは独立した、暴走ターンに対する常時オンのサーキットブレーカー。パターンベースのループ検出器はこのキャップよりもずっと前に発生し、これは総量のみを制限します。キャップを無効にするには 0 または負の値に設定します。ループ検出ダイアログで「このセッションのループ検出を無効にする」を選択すると、セッションの残りの間も抑制されます。 | 100 |
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
}
}
}
}timeout (リクエストタイムアウト):
timeout はリクエストごとのタイムアウト時間(ミリ秒単位、デフォルト 120000)です。リクエストを中止するのではなく、リクエストタイムアウトを無効にするには 0 に設定します(QWEN_STREAM_IDLE_TIMEOUT_MS=0 の規約に準拠)。QWEN_CODE_API_TIMEOUT_MS 環境変数を通じて設定することもできます。これは、ストリーミングチャンク間の非アクティブ時間を制限する QWEN_STREAM_IDLE_TIMEOUT_MS とは異なります。
max_tokens (出力トークン制限):
samplingParams.max_tokens も QWEN_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 ではなく、そのプロバイダーエントリの generationConfig で contextWindowSize を設定します。プロバイダーモデルのエントリはシールされているため、トップレベルの生成設定は欠落しているプロバイダーフィールドを補完しません。
modalities:
選択されたモデルの自動検出された入力モダリティをオーバーライドします。Qwen Code は、モデル名のパターンマッチングに基づいて、サポートされているモダリティ(image、PDF、audio、video)を自動的に検出します。自動検出が正しくない場合、たとえばサポートされているが認識されていないモデルに対して pdf を有効にする場合などに、この設定を使用します。形式: { "image": true, "pdf": true, "audio": true, "video": true }。サポートされていないタイプについては、キーを省略するか false に設定します。
customHeaders:
すべての API リクエストにカスタム HTTP ヘッダーを追加できます。これは、リクエストのトレース、モニタリング、API ゲートウェイのルーティング、またはモデルごとに異なるヘッダーが必要な場合に便利です。プロバイダーモデルの場合、customHeaders を modelProviders[].generationConfig.customHeaders で定義します。一致するプロバイダーエントリがないランタイムモデルの場合は、model.generationConfig.customHeaders で定義します。これら 2 つのレベル間でマージは行われません。
extra_body フィールドを使用すると、API に送信されるリクエストボディにカスタムパラメータを追加できます。これは、標準の設定フィールドでカバーされていないプロバイダー固有のオプションに役立ちます。注: このフィールドは OpenAI 互換プロバイダー(openai、qwen-oauth)でのみサポートされています。Anthropic および Gemini プロバイダーでは無視されます。 プロバイダーモデルの場合、extra_body を modelProviders[].generationConfig.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 を通じて設定することもできます。 | "" |
visionModel
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
visionModel | string | ビジョンブリッジとして使用される画像対応モデル: テキストのみのメインモデルが画像を受け取ると、まずこのモデルによってトランスクリプト(テキスト化)が行われます。空欄にすると、同じプロバイダーのビジョンモデルが自動的に選択されます。/model --vision を通じて設定することもできます。 | "" |
voiceModel
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
voiceModel | string | 音声トランスクリプションに使用されるモデル。空欄にすると、音声モデルが選択されるまで音声入力(ディクテーション)が無効のままになります。/model --voice を通じて設定することもできます。 | "" |
modelFallbacks
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
modelFallbacks | string | プライマリモデルがキャパシティエラー(429/503/529)に遭遇したときに試行するフォールバックモデル ID の順序付きリスト(カンマ区切り、最大 3 つ)。例: "qwen-plus,qwen-turbo"。--fallback-model CLI フラグを通じて設定することもできます。再起動が必要です。 | "" |
modelPricing
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
modelPricing | object | /stats model でのコスト見積もりのためのオプションのモデルごとの価格設定。例: { "qwen3-coder": { "inputPerMillionTokens": 0.30, "outputPerMillionTokens": 1.20 } }。 | undefined |
context
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
context.fileName | string or array of strings | コンテキストファイルの名前。 | undefined |
context.autoCompactThreshold | number | 自動コンパクションがトリガーされるコンテキストウィンドウの割合。0 より大きく 1 以下である必要があります。デフォルトは 0.7(70%)です。大きなコンテキストウィンドウ(>110K トークン)の場合、3 段階のしきい値システムの絶対値ブランチが支配的になるため、約 0.7 未満の値は目に見える効果を持たない可能性があります。カスタムしきい値は主に小ウィンドウモデル(≤128K)に影響します。古い model.chatCompression.contextPercentageThreshold を置き換えます。 | undefined(内部で 0.7 を使用) |
context.importFormat | string | メモリをインポートする際に使用する形式。 | undefined |
context.includeDirectories | array | ワークスペースコンテキストに含める追加のディレクトリ。ワークスペースコンテキストに含める追加の絶対パスまたは相対パスの配列を指定します。存在しないディレクトリは、デフォルトで警告とともにスキップされます。パスには ~ を使用してユーザーのホームディレクトリを参照できます。この設定は --include-directories コマンドラインフラグと組み合わせて使用できます。 | [] |
context.loadFromIncludeDirectories | boolean | /memory refresh コマンドの動作を制御します。true に設定すると、追加されたすべてのディレクトリから QWEN.md ファイルが読み込まれます。false に設定すると、QWEN.md はカレントディレクトリからのみ読み込まれます。 | false |
context.fileFiltering.respectGitIgnore | boolean | 検索時に .gitignore ファイルを尊重します。 | true |
context.fileFiltering.respectQwenIgnore | boolean | 検索時に .qwenignore および設定されたカスタム無視ファイルを尊重します。 | true |
context.fileFiltering.customIgnoreFiles | array | 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 |
ファイル検索パフォーマンスのトラブルシューティング
ファイル検索(@ 補完など)でパフォーマンスの問題が発生している場合、特にファイル数が非常に多いプロジェクトでは、推奨順に以下の対処法を試してください。
- ignore ファイルを使用する: プロジェクトのルートに
.qwenignoreまたは設定済みのカスタム ignore ファイルを作成し、参照する必要のない大量のファイルを含むディレクトリ(ビルド成果物、ログ、node_modulesなど)を除外します。クロールされるファイルの総数を減らすことが、パフォーマンスを向上させる最も効果的な方法です。 - Fuzzy Search を無効にする: ファイルの除外だけでは不十分な場合、
settings.jsonファイルでenableFuzzySearchをfalseに設定して、ファジー検索を無効にできます。これにより、よりシンプルでファジーでないマッチングアルゴリズムが使用され、高速化が期待できます。 - 再帰的ファイル検索を無効にする: 最後の手段として、
enableRecursiveFileSearchをfalseに設定して、再帰的ファイル検索を完全に無効にできます。プロジェクトの再帰的クロールを回避するため、これが最も高速なオプションとなります。ただし、@補完を使用する際に、ファイルのフルパスを入力する必要があることに注意してください。
tools
| 設定 | 型 | 説明 | デフォルト | 備考 |
|---|---|---|---|---|
tools.sandbox | boolean または string | サンドボックス実行環境(boolean またはパス文字列を指定可能)。 | undefined | |
tools.sandboxImage | string | --sandbox-image および QWEN_SANDBOX_IMAGE が設定されていない場合に Docker/Podman によって使用されるサンドボックスイメージの URI。 | undefined | |
tools.shell.enableInteractiveShell | boolean | インタラクティブなシェル体験のために node-pty を使用します。child_process へのフォールバックも引き続き適用されます。 | true | |
tools.core | 文字列の配列 | 非推奨。 次のバージョンで削除されます。代わりに permissions.allow + permissions.deny を使用してください。組み込みツールを許可リストに制限します。リストにないすべてのツールは無効になります。 | undefined | |
tools.exclude | 文字列の配列 | 非推奨。 代わりに permissions.deny を使用してください。検出から除外するツール名。初回読み込み時に permissions 形式に自動的に移行されます。 | undefined | |
tools.allowed | 文字列の配列 | 非推奨。 代わりに 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(function declaration と全く同じ)を受け取る必要があります。functionCall.args と同様に、stdin で関数の引数を JSON として読み取る必要があります。functionResponse.response.content と同様に、stdout で関数の出力を JSON として返す必要があります。 | 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.computerUse.idleTimeoutMs | number | 最後の computer_use__* 呼び出し後に cua-driver プロセスを存続させるミリ秒。デフォルトは 300000(5分)です。0 に設定すると、Qwen Code が終了するまで実行され続けます。 | 300000 | 再起動が必要: はい |
tools.toolSearch.enabled | boolean | ToolSearch 経由で MCP ツールをオンデマンドで読み込み、プロンプトサイズを削減します。プレフィックスベースの KV キャッシングに依存するモデル(DeepSeek など)では、これを無効にしてプロンプトのプレフィックスを安定させ、キャッシュヒット率を最大化してください。 | true | 再起動が必要: はい |
tools.core / tools.exclude / tools.allowed からの移行: これらのレガシー設定は非推奨となり、初回ロード時に新しい permissions 形式へ自動的に移行されます。permissions.allow / permissions.deny を直接設定することを推奨します。対話的にルールを管理するには /permissions を使用してください。
memory
| Setting | Type | Description | Default |
|---|---|---|---|
memory.enableManagedAutoMemory | boolean | 会話からメモリをバックグラウンドで抽出する機能を有効にします。 | true |
memory.enableManagedAutoDream | boolean | 収集されたメモリの自動統合(重複排除とクリーンアップ)を有効にします。 | true |
memory.enableAutoSkill | boolean | ツールを多用するセッション後に、再利用可能なプロジェクトスキルをバックグラウンドでレビューする機能を有効にします。 | true |
memory.autoSkillConfirm | boolean | 自動生成されたスキルをスキルライブラリに追加する前に確認を求めます。オフにすると、自動スキルは即座に保存されます。 | true |
memory.enableTeamMemory | boolean | Git で追跡される .qwen/team-memory/ ディレクトリを介して共同作業者と共有されるプロジェクトメモリ階層を有効にします。ここへの書き込みはシークレットスキャンされ、git diff でレビュー可能です。 | false |
memory.enableTeamMemorySync | boolean | チームメモリが有効な場合、セッション開始時に .qwen/team-memory/ ディレクトリを自動的にコミット、fast-forward プル、およびプッシュし、共同作業者間の同期を維持します。設定済みの git upstream が必要です。 | false |
自動メモリの仕組みと、/memory、/remember、/dream コマンドの使用方法の詳細については、Memory を参照してください。
permissions
権限システムは、どのツールを実行可能か、どのツールに確認が必要か、そしてどのツールをブロックするかについて、きめ細かな制御を提供します。
判断の優先順位(高い順): deny > ask > allow > (デフォルト/対話モード)
最初に一致したルールが適用されます。ルールは "ToolName" または "ToolName(specifier)" の形式を使用します。
| Setting | Type | Description | Default |
|---|---|---|---|
permissions.allow | array of strings | 自動承認されるツール呼び出しのルール(確認不要)。すべてのスコープ(ユーザー + プロジェクト + システム)にまたがってマージされます。 | undefined |
permissions.ask | array of strings | 常にユーザーの確認を必要とするツール呼び出しのルール。allow より優先されます。 | undefined |
permissions.deny | array of strings | ブロックされるツール呼び出しのルール。最も高い優先度を持ち、allow と ask の両方をオーバーライドします。 | undefined |
ツール名のエイリアス(ルール内でこれらいずれも使用可能です):
| Alias | Canonical tool | Notes |
|---|---|---|
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 |
メタカテゴリ:
一部のルール名は、自動的に複数のツールをカバーします。
| Rule name | Tools covered |
|---|---|
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/**)を使用してください。
ルールの構文例:
| Rule | Meaning |
|---|---|
"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 サーバーのすべてのツール |
パスパターンのプレフィックス:
| Prefix | Meaning | Example |
|---|---|---|
// | ファイルシステムルートからの絶対パス | //etc/passwd |
~/ | ホームディレクトリからの相対パス | ~/Documents/*.pdf |
/ | プロジェクトルートからの相対パス | /src/**/*.ts |
./ | 現在の作業ディレクトリからの相対パス | ./secrets/** |
| (none) | ./ と同じ | secrets/** |
シェルコマンドによるバイパス防止:
Read、Edit、および WebFetch の権限ルールは、エージェントが同等のシェルコマンドを実行する際にも適用されます。たとえば、Read(./.env) が deny に含まれている場合、エージェントはシェルコマンドで cat .env を実行してこれをバイパスすることはできません。サポートされるシェルコマンドには cat、grep、curl、wget、cp、mv、rm、chmod など多数が含まれます。不明/安全なコマンド(例: git)は、ファイル/ネットワークルールの影響を受けません。
レガシー設定からの移行:
| Legacy setting | Equivalent permissions rule | Notes |
|---|---|---|
tools.allowed | permissions.allow | 初回ロード時に自動移行 |
tools.exclude | permissions.deny | 初回ロード時に自動移行 |
tools.core | permissions.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 で利用可能なスラッシュコマンドを制御します。マルチテナント環境やエンタープライズ環境でコマンド操作を制限するのに便利です。
| Setting | Type | Description | Default |
|---|---|---|---|
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などのキーボードショートカットをインターセプトすることはありません。
skills
モデルに公開される Skills を制御します。
| Setting | Type | Description | Default |
|---|---|---|---|
skills.disabled | array of strings | 非表示にするスキル名。スキル名に対して大文字と小文字を区別せずにマッチングされます。非表示にされたスキルは <available_skills> や /<name> スラッシュコマンドとして表示されません。ユーザー/プロジェクト/システムスコープをまたいで和集合としてマージされるため、プロジェクトはユーザーまたはシステム設定で定義されたエントリを削除できません。 | undefined |
mcp
| Setting | Type | Description | Default |
|---|---|---|---|
mcp.serverCommand | string | MCP サーバーを起動するコマンド。 | undefined |
mcp.allowed | array of strings | 許可する MCP サーバーの許可リスト。モデルが利用できるようにする MCP サーバー名のリストを指定できます。これは、接続する MCP サーバーのセットを制限するために使用できます。グロブパターン(* は任意の文字列に、? は単一の文字にマッチします。例: "*puppeteer*")をサポートしており、グロブ文字を含まないエントリは完全に一致します。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。 | undefined |
mcp.excluded | array of strings | 除外する MCP サーバーの拒否リスト。mcp.excluded と mcp.allowed の両方にリストされているサーバーは除外されます。mcp.allowed と同じ方法でグロブパターン(*、?)をサポートします。--allowed-mcp-server-names が設定されている場合、これは無視されることに注意してください。 | undefined |
mcp.toolIdleTimeoutMs | number | MCP ツール呼び出しのアイドルタイムアウト(ミリ秒単位)。この時間内に MCP サーバーから応答や進捗の更新がない場合、呼び出しは中止されます。10000 から 3600000 の間でなければなりません。QWEN_CODE_MCP_TOOL_IDLE_TIMEOUT_MS 環境変数でオーバーライドできます。 | 300000 |
MCP サーバーに関するセキュリティ注意事項: これらの設定は MCP サーバー名に対して単純な文字列マッチングを使用しますが、これは変更される可能性があります。ユーザーによるこの回避を防ぎたいシステム管理者は、ユーザーが独自の MCP サーバーを設定できないように、システム設定レベルで mcpServers を構成することを検討してください。これは厳密なセキュリティメカニズムとして使用すべきではありません。
lsp
[!warning] 実験的機能: LSP サポートは現在実験的であり、デフォルトで無効になっています。
--experimental-lspコマンドラインフラグを使用して有効にしてください。
Language Server Protocol (LSP) は、定義へ移動、参照の検索、診断などのコードインテリジェンス機能を提供します。
LSP サーバーの構成は、settings.json ではなく、プロジェクトのルートディレクトリにある .lsp.json ファイルを通じて行います。構成の詳細と例については、LSP ドキュメント を参照してください。
security
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
security.folderTrust.enabled | boolean | フォルダーの信頼が有効かどうかを追跡する設定。 | false |
security.auth.selectedType | string | 現在選択されている認証タイプ。 | undefined |
security.auth.enforcedType | string | 必須の認証タイプ(企業環境などで有用)。 | undefined |
security.auth.useExternal | boolean | 外部認証フローを使用するかどうか。 | undefined |
security.auth.apiKey | string | 非推奨。 OpenAI 互換認証用の API キー。代わりに envKey を使用して modelProviders に移行してください — Model Providers を参照。 | undefined |
security.auth.baseUrl | string | 非推奨。 OpenAI 互換 API のベース URL。代わりに modelProviders に移行してください — Model Providers を参照。 | 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.cronRecurringMaxAgeDays | number | 繰り返しの cron/loop ジョブが自動失効するまでの存続日数(最後に 1 回実行された後、削除されます)。0 に設定すると失効が無効になり、ジョブは削除されるまで実行されます。長時間実行されるデーモンのデプロイに有用です。QWEN_CODE_CRON_MAX_AGE_DAYS 環境変数でオーバーライドできます。再起動が必要です。 | 7 |
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 は、非 SDK デーモンセッション用にメタデータのみの record_artifact を有効にし、インタラクティブセッションでも Artifact ツールを有効にします。QWEN_CODE_DISABLE_ARTIFACT=1 は両方を無効にします。再起動が必要です。 | false |
experimental.emitToolUseSummaries | boolean | 各ツール呼び出しバッチが完了するたびに、短い 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 ツール定義から特定のスキーマプロパティを削除する場合があることに注意してください。command、url、または httpUrl の少なくとも 1 つを指定する必要があります。複数指定されている場合、優先順位は httpUrl、次に url、次に command の順です。
| プロパティ | 型 | 説明 | オプション |
|---|---|---|---|
mcpServers.<SERVER_NAME>.command | string | 標準 I/O 経由で MCP サーバーを起動するために実行するコマンド。 | Yes |
mcpServers.<SERVER_NAME>.args | array of strings | コマンドに渡す引数。 | Yes |
mcpServers.<SERVER_NAME>.env | object | サーバープロセスに対して設定する環境変数。 | Yes |
mcpServers.<SERVER_NAME>.cwd | string | サーバーを起動する作業ディレクトリ。 | Yes |
mcpServers.<SERVER_NAME>.url | string | 通信に Server-Sent Events (SSE) を使用する MCP サーバーの URL。 | Yes |
mcpServers.<SERVER_NAME>.httpUrl | string | 通信にストリーマブル HTTP を使用する MCP サーバーの URL。 | Yes |
mcpServers.<SERVER_NAME>.headers | object | url または httpUrl へのリクエストで送信する HTTP ヘッダーのマップ。 | Yes |
mcpServers.<SERVER_NAME>.timeout | number | この MCP サーバーへのリクエストのタイムアウト(ミリ秒)。 | Yes |
mcpServers.<SERVER_NAME>.trust | boolean | このサーバーを信頼し、すべてのツール呼び出しの確認をバイパスします。 | Yes |
mcpServers.<SERVER_NAME>.description | string | サーバーの簡単な説明。表示目的で使用される場合があります。 | Yes |
mcpServers.<SERVER_NAME>.includeTools | array of strings | この MCP サーバーからインクルードするツール名のリスト。指定すると、ここにリストされているツールのみがこのサーバーから利用可能になります(許可リスト動作)。指定しない場合、デフォルトでサーバーのすべてのツールが有効になります。 | Yes |
mcpServers.<SERVER_NAME>.excludeTools | array of strings | この MCP サーバーから除外するツール名のリスト。ここにリストされているツールは、サーバーによって公開されている場合でも、モデルが利用することはできません。注: excludeTools は includeTools よりも優先されます。ツールが両方のリストにある場合、それは除外されます。 | Yes |
telemetry
Qwen Code のログ記録とメトリクス収集を設定します。詳細については、telemetry を参照してください。
| 設定 | 型 | 説明 | デフォルト |
|---|---|---|---|
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 のアプローチについては、Authentication を参照してください。
環境変数の除外: CLI の動作への干渉を防ぐため、一部の環境変数(DEBUG や DEBUG_MODE など)はデフォルトでプロジェクトの .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 に設定すると、ユーザープロンプト、システムプロンプト、ツールの入出力、モデルの応答がそのままネイティブな 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 | Markdown レンダラーでの 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_HYPERLINKS | 1 に設定すると、自動検出で対応可能と判定されるターミナル上でも、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_RETRY | true または 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_PROFILE_STARTUP | 1 に設定すると、スタートアップのパフォーマンスプロファイリングが有効になります。フェーズごとの所要時間を含む JSON タイミングレポートを ~/.qwen/startup-perf/ に書き込みます。 | サンドボックスの子プロセス内(または 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 サーバーの discover ハンドシェイクを同期的に待機する、プログレッシブ MCP 以前の動作に戻します。 | デフォルトではオフです。最新の qwen-code では、UI がすでにインタラクティブな状態で MCP サーバーがバックグラウンドでオンラインになり、モデルはサーバーが安定してから約 16 ms 以内に新しいツールの各バッチを認識します。このフラグは、少なくとも 1 リリースの間、ロールバック用の脱出ハッチとして保持されています。例: export QWEN_CODE_LEGACY_MCP_BLOCKING=1 |
両方のユーザーレベルの .env ファイルで同じ変数が定義されている場合、Qwen 固有のファイルが優先されます。<QWEN_HOME>/.env(QWEN_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-json | text: (デフォルト) 標準の人間が読みやすい出力。json: 実行終了時に出力されるマシンリーダブルな JSON 出力。stream-json: 実行中に発生するたびにストリーミングされる JSON メッセージ。構造化された出力やスクリプト作成には、--output-format json または --output-format stream-json フラグを使用します。詳細については Headless Mode を参照してください。 |
--input-format | 標準入力から消費されるフォーマットを指定します。 | text, stream-json | text: (デフォルト) stdin またはコマンドライン引数からの標準テキスト入力。stream-json: 双方向通信のための stdin 経由の JSON メッセージプロトコル。要件: --input-format stream-json を使用するには、--output-format stream-json の設定が必要です。stream-json を使用する場合、stdin はプロトコルメッセージ用に予約されます。詳細については Headless Mode を参照してください。 | |
--include-partial-messages | stream-json 出力フォーマットを使用する際に、部分的なアシスタントメッセージを含めます。有効にすると、ストリーミング中に発生するストリームイベント(message_start、content_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: 編集ツール(edit、write_file、notebook_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 | テレメトリ用のプロンプトのログ記録を有効にします。 | 詳細については テレメトリ を参照してください。 | ||
--acp | ACP モード(Agent Client Protocol)を有効にします。Zed のような IDE/エディタ統合に役立ちます。 | 安定版。非推奨となった --experimental-acp フラグを置き換えます。 | ||
--experimental-lsp | コードインテリジェンス(定義へ移動、参照の検索、診断など)のための実験的な LSP (Language Server Protocol) 機能を有効にします。 | 実験的機能。言語サーバーのインストールが必要です。 | ||
--extensions | -e | このセッションで使用する拡張機能のリストを指定します。 | 拡張機能名 | 指定しない場合は、利用可能なすべての拡張機能が使用されます。すべての拡張機能を無効にするには、特別なキーワード qwen -e none を使用します。例: qwen -e my-extension -e my-other-extension |
--list-extensions | -l | 利用可能なすべての拡張機能を一覧表示して終了します。 | ||
--proxy | CLI のプロキシを設定します。 | プロキシ URL | 例: --proxy http://localhost:7890 | |
--include-directories | 複数ディレクトリサポートのために、ワークスペースに追加のディレクトリを含めます。 | ディレクトリパス | 複数回指定するか、カンマ区切りの値として指定できます。最大 5 つのディレクトリを追加できます。例: --include-directories /path/to/project1,/path/to/project2 または --include-directories /path/to/project1 --include-directories /path/to/project2 | |
--screen-reader | スクリーンリーダーモードを有効にし、TUI をスクリーンリーダーとの互換性が向上するように調整します。 | |||
--version | CLI のバージョンを表示します。 | |||
--openai-logging | デバッグおよび分析のために OpenAI API 呼び出しのログ記録を有効にします。 | このフラグは settings.json の enableOpenAILogging 設定を上書きします。 | ||
--openai-logging-dir | OpenAI API ログのカスタムディレクトリパスを設定します。 | ディレクトリパス | このフラグは settings.json の openAILoggingDir 設定を上書きします。絶対パス、相対パス、および ~ 展開をサポートします。例: qwen --openai-logging-dir "~/qwen-logs" --openai-logging |
コンテキストファイル(階層的な指示コンテキスト)
CLIの_動作_に対する厳密な設定ではありませんが、コンテキストファイル(デフォルトは QWEN.md ですが、context.fileName 設定で変更可能)は、指示コンテキスト(「メモリ」とも呼ばれます)を設定するために不可欠です。この強力な機能により、プロジェクト固有の指示、コーディングスタイルガイド、または関連する背景情報をAIに与えることができ、その応答をニーズに合わせてより適切で正確なものにします。CLIには、フッターに読み込まれたコンテキストファイルの数を表示するインジケーターなど、アクティブなコンテキストに関する情報を提供するUI要素が含まれています。
- 目的: これらのMarkdownファイルには、対話中にQwenモデルに認識させたい指示、ガイドライン、またはコンテキストが含まれています。システムは、この指示コンテキストを階層的に管理するように設計されています。
コンテキストファイルのコンテンツ例(例: QWEN.md)
TypeScriptプロジェクトのルートにあるコンテキストファイルにどのような内容が含まれるかの概念的な例を以下に示します:
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 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/<configured-context-filename>(例: ユーザーホームディレクトリ内の~/.qwen/QWEN.md)。 - 範囲: すべてのプロジェクトに対するデフォルトの指示を提供します。
- 場所:
- プロジェクトルートおよび祖先のコンテキストファイル:
- 場所: CLIは、現在の作業ディレクトリで設定されたコンテキストファイルを検索し、次にプロジェクトルート(
.gitフォルダで識別)またはホームディレクトリまでの各親ディレクトリで検索します。 - 範囲: プロジェクト全体またはその大部分に関連するコンテキストを提供します。
- 場所: CLIは、現在の作業ディレクトリで設定されたコンテキストファイルを検索し、次にプロジェクトルート(
- グローバルコンテキストファイル:
- 連結と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モードはツール呼び出しを自動承認するだけです。サンドボックス化は引き続き--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収集エンドポイントに送信されます。