@qwen-code/qwen-code 0.18.5-nightly.20260622.6bc3f853e → 0.18.5-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/SKILL.md +13 -5
- package/bundled/qc-helper/docs/configuration/_meta.ts +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +68 -48
- package/bundled/qc-helper/docs/configuration/model-providers.md +217 -195
- package/bundled/qc-helper/docs/configuration/qwen-ignore.md +31 -15
- package/bundled/qc-helper/docs/configuration/settings.md +44 -27
- package/bundled/qc-helper/docs/configuration/themes.md +7 -4
- package/bundled/qc-helper/docs/extension/extension-releasing.md +1 -1
- package/bundled/qc-helper/docs/extension/introduction.md +27 -21
- package/bundled/qc-helper/docs/features/arena.md +3 -3
- package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/commands.md +6 -1
- package/bundled/qc-helper/docs/features/headless.md +1 -1
- package/bundled/qc-helper/docs/features/mcp.md +33 -14
- package/bundled/qc-helper/docs/features/sandbox.md +2 -2
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
- package/bundled/qc-helper/docs/integration-github-action.md +2 -2
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +9 -5
- package/bundled/qc-helper/docs/qwen-serve.md +14 -2
- package/bundled/qc-helper/docs/support/tos-privacy.md +1 -1
- package/chunks/{agent-WFLPE5MW.js → agent-P4KSTVXX.js} +24 -22
- package/chunks/{agent-headless-Q27MG73I.js → agent-headless-QUAPWF55.js} +24 -22
- package/chunks/{anthropicContentGenerator-5S4OMMNL.js → anthropicContentGenerator-7352A7I5.js} +12 -11
- package/chunks/artifact-tool-5J4HUZAV.js +675 -0
- package/chunks/{askUserQuestion-WHVYL2S2.js → askUserQuestion-HF7HCWDD.js} +20 -7
- package/chunks/chunk-22IFUCVR.js +291 -0
- package/chunks/{chunk-26ZYKTYZ.js → chunk-2BIF2NVV.js} +2 -2
- package/chunks/{chunk-VKILGMZQ.js → chunk-2QDQTWCI.js} +1 -1
- package/chunks/{chunk-XGU3ETVO.js → chunk-3BR4OIOE.js} +3 -3
- package/chunks/{chunk-LTN3VYMZ.js → chunk-3UALQ56H.js} +1 -1
- package/chunks/{chunk-QBUR6J4B.js → chunk-BC5POO46.js} +8 -7
- package/chunks/{chunk-MSJ2MXJ6.js → chunk-BGUDAULQ.js} +11 -290
- package/chunks/{chunk-FH4P6RQA.js → chunk-BNXANYLH.js} +1 -1
- package/chunks/{chunk-WE6TNQJU.js → chunk-C4K3FEQ2.js} +36 -0
- package/chunks/{chunk-G4BUMVEY.js → chunk-CGEGHF2C.js} +2 -217
- package/chunks/chunk-EEEZIVFJ.js +908 -0
- package/chunks/{chunk-7Z2O7IBO.js → chunk-EIJYMXXX.js} +619 -135
- package/chunks/chunk-EJYJYJZ2.js +3703 -0
- package/chunks/{chunk-ATLUHLZE.js → chunk-EW6C27XX.js} +1 -1
- package/chunks/{chunk-42HGOMED.js → chunk-F6XNTYNE.js} +216 -1
- package/chunks/{chunk-C6MI2ASN.js → chunk-GZCJS5WH.js} +2 -2
- package/chunks/{chunk-KGV3F6UF.js → chunk-HGNSRCRB.js} +1 -1
- package/chunks/{chunk-CX3SGIPK.js → chunk-KBXLIVWQ.js} +2 -2
- package/chunks/{chunk-GOMVJKBL.js → chunk-L7U2RI5O.js} +59 -57
- package/chunks/{chunk-GBN55AWZ.js → chunk-NKJ6LRCR.js} +2 -2
- package/chunks/{chunk-2O3NAOJG.js → chunk-NWLUISRA.js} +1 -1
- package/chunks/{chunk-ID533GA3.js → chunk-OTBK43JR.js} +1 -1
- package/chunks/{chunk-AE6RQU6F.js → chunk-PRYMDRBV.js} +1 -1
- package/chunks/{chunk-KQIKOTQJ.js → chunk-RYLJU2DY.js} +60 -5
- package/chunks/{chunk-CTHZVIMD.js → chunk-T2VDEFUU.js} +2 -2
- package/chunks/{chunk-SWGPABMH.js → chunk-T336V435.js} +80 -83
- package/chunks/{chunk-LF6BKGZT.js → chunk-TXVGVZYR.js} +3 -3
- package/chunks/{chunk-GM3LTU6K.js → chunk-UMRZ7XCR.js} +170 -5015
- package/chunks/{chunk-XU7BKR3B.js → chunk-XU5P23GN.js} +3 -3
- package/chunks/{chunk-EJ6NFQ2L.js → chunk-ZC675NGC.js} +5 -5
- package/chunks/{chunk-CXZV4Q4J.js → chunk-ZXNEOCW2.js} +7118 -5113
- package/chunks/{computer-use-F5O56FVW.js → computer-use-4TLHI3UR.js} +24 -22
- package/chunks/contextCommand-HFEITKSR.js +56 -0
- package/chunks/{cron-create-THNDTYXU.js → cron-create-A5637KCI.js} +12 -9
- package/chunks/{cron-delete-BS5H6TFJ.js → cron-delete-AADOSEOZ.js} +4 -4
- package/chunks/{cron-list-7OBVHT7K.js → cron-list-OFCPTT2Y.js} +4 -4
- package/chunks/{dist-GKRNVFBH.js → dist-ZBX7LPJZ.js} +2 -1
- package/chunks/{edit-UV7MBOJU.js → edit-B7H73V6O.js} +24 -22
- package/chunks/{en-S3OQBISC.js → en-7OGNWWME.js} +48 -0
- package/chunks/{enter-worktree-TSCHZMJ3.js → enter-worktree-GG7ZHYPS.js} +24 -22
- package/chunks/{enterPlanMode-LKS7VIUG.js → enterPlanMode-RHTAKG52.js} +27 -23
- package/chunks/{exit-worktree-Q6EWFLZU.js → exit-worktree-U7VQZRMG.js} +24 -22
- package/chunks/{exitPlanMode-HS6I4D2O.js → exitPlanMode-S35A36II.js} +36 -28
- package/chunks/{geminiContentGenerator-GEZ63VSW.js → geminiContentGenerator-W7KVATBA.js} +4 -4
- package/chunks/{glob-ZN5LKB7E.js → glob-WOFF7ECI.js} +26 -23
- package/chunks/{grep-NIKBBYBU.js → grep-MWNYWYWQ.js} +24 -22
- package/chunks/{keychain-token-storage-YHXIWXIB.js → keychain-token-storage-CSYMNRPP.js} +2 -2
- package/chunks/{loop-wakeup-SSBWZ64K.js → loop-wakeup-DGSMT4N6.js} +5 -5
- package/chunks/{ls-YPFUHZRQ.js → ls-UGRZ4ZOM.js} +6 -6
- package/chunks/{lsp-FD6DNVAF.js → lsp-72IJURW3.js} +2 -2
- package/chunks/{monitor-A25XKPU5.js → monitor-AYUINLYN.js} +24 -22
- package/chunks/{notebook-edit-E72AIOUS.js → notebook-edit-EP4D4WFD.js} +25 -23
- package/chunks/{openaiContentGenerator-ZDLZDXLU.js → openaiContentGenerator-SLYYF7AM.js} +12 -15
- package/chunks/{qwenContentGenerator-HVJPPMTT.js → qwenContentGenerator-VZ7JYU4A.js} +26 -24
- package/chunks/{qwenOAuth2-WZ54YZ4J.js → qwenOAuth2-K4AASPCV.js} +5 -4
- package/chunks/{read-file-L6FM3KUX.js → read-file-65EQ53KS.js} +9 -8
- package/chunks/{ripGrep-YRJCUISE.js → ripGrep-5XLHJDDM.js} +24 -22
- package/chunks/{scheduler-M3742P2I.js → scheduler-5GLJSA2H.js} +73 -27
- package/chunks/{send-message-FWFTX62Q.js → send-message-URUZ7PLA.js} +24 -4
- package/chunks/{serve-ZIP2GDFY.js → serve-MUROZGCG.js} +618 -92
- package/chunks/{shell-T5VSPJLU.js → shell-ET3BQWKB.js} +24 -22
- package/chunks/{skill-ETTFYDOV.js → skill-YEYABCAF.js} +11 -10
- package/chunks/{src-UKOPSYDK.js → src-POVOI65Y.js} +140 -67
- package/chunks/{syntheticOutput-JY5NEDTV.js → syntheticOutput-65FRJGWM.js} +3 -3
- package/chunks/{task-create-IGILDV25.js → task-create-IH45HOFT.js} +6 -6
- package/chunks/{task-list-KBEJVAAG.js → task-list-FUB6JWSX.js} +5 -5
- package/chunks/{task-stop-WFTMQ6AC.js → task-stop-P6IOHQM3.js} +2 -2
- package/chunks/{task-update-UIVX7ZEV.js → task-update-RTUT7LJV.js} +6 -6
- package/chunks/{team-create-DRKUVGBN.js → team-create-EFZFKQFP.js} +28 -26
- package/chunks/{team-delete-LPOXDPVB.js → team-delete-RXGYRMHC.js} +5 -5
- package/chunks/{todoWrite-R4RIJKOD.js → todoWrite-O6JK24G6.js} +4 -4
- package/chunks/{tool-search-EIIK27ON.js → tool-search-BRJC42TE.js} +9 -8
- package/chunks/{web-fetch-JU7SS6KE.js → web-fetch-KUMBROUI.js} +4 -4
- package/chunks/{workflow-4RGAYFSJ.js → workflow-UDRBNFTT.js} +557 -97
- package/chunks/{write-file-GLQYJFEZ.js → write-file-F7TAHAHF.js} +24 -22
- package/chunks/{zh-QXLZV2PX.js → zh-3RMSEO5M.js} +48 -0
- package/chunks/{zh-TW-3OKU7LDA.js → zh-TW-R7WRLTJS.js} +48 -0
- package/cli.js +8473 -5091
- package/locales/en.js +69 -0
- package/locales/zh-TW.js +66 -0
- package/locales/zh.js +66 -0
- package/package.json +3 -2
- package/web-shell/assets/{arc-CRFN10gD.js → arc-DHUeMnnj.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-IRlu1CpH.js → architectureDiagram-3BPJPVTR-DlX12yyj.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-htIZ6iw8.js → blockDiagram-GPEHLZMM-DTFUXMUT.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-A2GoRq3O.js → c4Diagram-AAUBKEIU-CWdB54fk.js} +1 -1
- package/web-shell/assets/channel-C3WhMjjP.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CdP2AC6u.js → chunk-2J33WTMH-CF5C5jNR.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DrA07nW2.js → chunk-4BX2VUAB-Cw7Ydfji.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CFGnVU2f.js → chunk-55IACEB6-CnbI1ZCw.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BTMkq3Tk.js → chunk-727SXJPM-DmSy00Pe.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C9sYg04Z.js → chunk-AQP2D5EJ-DgNgXqBu.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-Cag-cj6I.js → chunk-FMBD7UC4-tz2IvOXv.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-CDSTFoR7.js → chunk-ND2GUHAM-DaBLEBPa.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CN9Z6oOs.js → chunk-QZHKN3VN-DVCQST3O.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CQ6TXPif.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ6TXPif.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-DuN9j8Du.js → cose-bilkent-S5V4N54A-CAKTcdCQ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-ByCWe45f.js → dagre-BM42HDAG-BdkBwlKg.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-eWyU_pKZ.js → diagram-2AECGRRQ-DYt3G65F.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-0Bfu3Fq5.js → diagram-5GNKFQAL-BWvROWjY.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-B6KBKkQP.js → diagram-KO2AKTUF-BvvgwIaQ.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-TToDmeA_.js → diagram-LMA3HP47-E7NLSNKg.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CQCkC2Yx.js → diagram-OG6HWLK6-CYmUBgpE.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Cm9ls1iB.js → erDiagram-TEJ5UH35-BU5gY30h.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Dyoz80Pv.js → flowDiagram-I6XJVG4X-V_ZssSZ9.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-Cfut9yaU.js → ganttDiagram-6RSMTGT7-QIShlsdI.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BCuJdlfD.js → gitGraphDiagram-PVQCEYII-DJxdu2YS.js} +1 -1
- package/web-shell/assets/index-BPnhI7gl.css +1 -0
- package/web-shell/assets/index-De4rqTsW.js +706 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CXKxF2VL.js → infoDiagram-5YYISTIA-BqjdrFeO.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DE7HWSU8.js → ishikawaDiagram-YF4QCWOH-BP_a2YZ2.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-D__YUfds.js → journeyDiagram-JHISSGLW-BXg-S3Lk.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-D82R169M.js → kanban-definition-UN3LZRKU-BksAkdEJ.js} +1 -1
- package/web-shell/assets/{linear-DpyMbKqT.js → linear-D2m9-ODE.js} +1 -1
- package/web-shell/assets/{mermaid.core-D1KEFDhn.js → mermaid.core-dTtkZp2F.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BwVUFGFE.js → mindmap-definition-RKZ34NQL-Bft9my8O.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BO_qoEGx.js → pieDiagram-4H26LBE5-Cw8S-alZ.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Cx0ZaWPo.js → quadrantDiagram-W4KKPZXB-DaDoTMts.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BJPXejOA.js → requirementDiagram-4Y6WPE33-Cp5kSpwj.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C1xeIL9i.js → sankeyDiagram-5OEKKPKP-CW8RsJJZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CSYKQUjf.js → sequenceDiagram-3UESZ5HK-DTfpIiJK.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-d9hiHlAW.js → stateDiagram-AJRCARHV-DixFVzEs.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DZgE04s3.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BhCBkq8k.js → timeline-definition-PNZ67QCA-DYsbXn5l.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DPPFWp_y.js → vennDiagram-CIIHVFJN-HUpRpuUp.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CcOUIgXY.js → wardley-L42UT6IY-cT3nQH_T.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-p7oR5X7r.js → wardleyDiagram-YWT4CUSO-Dmm7J6Qc.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-Dfr7-SEy.js → xychartDiagram-2RQKCTM6-CX0L5p9C.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/chunk-77WXWU44.js +0 -26
- package/chunks/contextCommand-WBVNKL2C.js +0 -54
- package/web-shell/assets/channel-WwImfsc7.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CJKQYFeJ.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CJKQYFeJ.js +0 -1
- package/web-shell/assets/index-BDZiTAkl.css +0 -1
- package/web-shell/assets/index-DaebdpHq.js +0 -516
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DgReoybQ.js +0 -1
|
@@ -88,12 +88,16 @@ Settings are organized into categories. Most settings should be placed within th
|
|
|
88
88
|
| `general.gitCoAuthor.pr` | boolean | Append a Qwen Code attribution line to pull request descriptions when running `gh pr create`. | `true` |
|
|
89
89
|
| `general.defaultFileEncoding` | string | Default encoding for new files. Use `"utf-8"` (default) for UTF-8 without BOM, or `"utf-8-bom"` for UTF-8 with BOM. Only change this if your project specifically requires BOM. | `"utf-8"` |
|
|
90
90
|
| `general.cleanupPeriodDays` | number | Days to retain `~/.qwen/file-history/` session backups used by `/rewind`. Backups older than this are removed by a background pass that runs at most once per day. `0` = minimum retention (~1 hour): keeps sessions touched in the last hour plus the currently active one. Changes take effect after restart. | `30` |
|
|
91
|
+
| `general.language` | enum | Language for the user interface. Use `"auto"` to detect from system settings, or a language code (e.g. `"zh-CN"`, `"fr"`). Custom codes can be added by placing JS locale files in `~/.qwen/locales/`. See [i18n](../features/language). Requires restart. | `"auto"` |
|
|
92
|
+
| `general.outputLanguage` | string | Language for model output. Use `"auto"` to detect from system settings, or set a specific language. Requires restart. | `"auto"` |
|
|
93
|
+
| `general.dynamicCommandTranslation` | boolean | Enable AI translation of dynamic slash-command descriptions. When disabled, dynamic commands keep their original descriptions and skip translation model calls. | `false` |
|
|
91
94
|
|
|
92
95
|
#### output
|
|
93
96
|
|
|
94
97
|
| Setting | Type | Description | Default | Possible Values |
|
|
95
98
|
| --------------- | ------ | ----------------------------- | -------- | ------------------ |
|
|
96
|
-
| `output.format`
|
|
99
|
+
| `output.format` | string | The format of the CLI output. | `"text"` | `"text"`, `"json"` |
|
|
100
|
+
| `output.showTimestamps` | boolean | Show an `[HH:MM:SS]` timestamp before each assistant response. | `false` | |
|
|
97
101
|
|
|
98
102
|
#### ui
|
|
99
103
|
|
|
@@ -122,7 +126,6 @@ Settings are organized into categories. Most settings should be placed within th
|
|
|
122
126
|
| `ui.enableFollowupSuggestions` | boolean | Enable [followup suggestions](../features/followup-suggestions) that predict what you want to type next after the model responds. Suggestions appear as placeholder text and are accepted with Tab, Enter, or Right Arrow (which fill the input — they do not auto-submit). On by default; set to `false` to opt out. | `true` |
|
|
123
127
|
| `ui.enableCacheSharing` | boolean | Use cache-aware forked queries for suggestion generation. Reduces cost on providers that support prefix caching (experimental). | `true` |
|
|
124
128
|
| `ui.enableSpeculation` | boolean | Speculatively execute accepted suggestions before submission. Results appear instantly when you accept (experimental). | `false` |
|
|
125
|
-
| `experimental.emitToolUseSummaries` | boolean | Generate short LLM-based labels summarizing each tool-call batch. See [Tool-Use Summaries](../features/tool-use-summaries). Requires `fastModel` to be configured; silently skipped otherwise. Can be overridden per-session with `QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0` or `=1`. | `true` |
|
|
126
129
|
|
|
127
130
|
#### ide
|
|
128
131
|
|
|
@@ -235,25 +238,26 @@ The `extra_body` field allows you to add custom parameters to the request body s
|
|
|
235
238
|
|
|
236
239
|
#### context
|
|
237
240
|
|
|
238
|
-
| Setting | Type | Description | Default
|
|
239
|
-
| ----------------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
240
|
-
| `context.fileName` | string or array of strings | The name of the context file(s). | `undefined`
|
|
241
|
-
| `context.importFormat` | string | The format to use when importing memory. | `undefined`
|
|
242
|
-
| `context.includeDirectories` | array | Additional directories to include in the workspace context. Specifies an array of additional absolute or relative paths to include in the workspace context. Missing directories will be skipped with a warning by default. Paths can use `~` to refer to the user's home directory. This setting can be combined with the `--include-directories` command-line flag. | `[]`
|
|
243
|
-
| `context.loadFromIncludeDirectories` | boolean | Controls the behavior of the `/memory refresh` command. If set to `true`, `QWEN.md` files should be loaded from all directories that are added. If set to `false`, `QWEN.md` should only be loaded from the current directory. | `false`
|
|
244
|
-
| `context.fileFiltering.respectGitIgnore` | boolean | Respect .gitignore files when searching. | `true`
|
|
245
|
-
| `context.fileFiltering.respectQwenIgnore` | boolean | Respect .qwenignore files when searching.
|
|
246
|
-
| `context.fileFiltering.
|
|
247
|
-
| `context.fileFiltering.
|
|
248
|
-
| `context.
|
|
249
|
-
| `context.clearContextOnIdle.
|
|
250
|
-
| `context.clearContextOnIdle.
|
|
241
|
+
| Setting | Type | Description | Default |
|
|
242
|
+
| ----------------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
|
|
243
|
+
| `context.fileName` | string or array of strings | The name of the context file(s). | `undefined` |
|
|
244
|
+
| `context.importFormat` | string | The format to use when importing memory. | `undefined` |
|
|
245
|
+
| `context.includeDirectories` | array | Additional directories to include in the workspace context. Specifies an array of additional absolute or relative paths to include in the workspace context. Missing directories will be skipped with a warning by default. Paths can use `~` to refer to the user's home directory. This setting can be combined with the `--include-directories` command-line flag. | `[]` |
|
|
246
|
+
| `context.loadFromIncludeDirectories` | boolean | Controls the behavior of the `/memory refresh` command. If set to `true`, `QWEN.md` files should be loaded from all directories that are added. If set to `false`, `QWEN.md` should only be loaded from the current directory. | `false` |
|
|
247
|
+
| `context.fileFiltering.respectGitIgnore` | boolean | Respect .gitignore files when searching. | `true` |
|
|
248
|
+
| `context.fileFiltering.respectQwenIgnore` | boolean | Respect .qwenignore and configured custom ignore files when searching. | `true` |
|
|
249
|
+
| `context.fileFiltering.customIgnoreFiles` | array | Project-root-relative ignore files to use instead of the default compatibility files (`.agentignore`, `.aiignore`) when `respectQwenIgnore` is enabled. `.qwenignore` is always included. | `[".agentignore", ".aiignore"]` |
|
|
250
|
+
| `context.fileFiltering.enableRecursiveFileSearch` | boolean | Whether to enable searching recursively for filenames under the current tree when completing `@` prefixes in the prompt. | `true` |
|
|
251
|
+
| `context.fileFiltering.enableFuzzySearch` | boolean | When `true`, enables fuzzy search capabilities when searching for files. Set to `false` to improve performance on projects with a large number of files. | `true` |
|
|
252
|
+
| `context.clearContextOnIdle.toolResultsThresholdMinutes` | number | Minutes of inactivity before clearing old tool result content. Use `-1` to disable the idle trigger. | `60` |
|
|
253
|
+
| `context.clearContextOnIdle.toolResultsNumToKeep` | integer | Integer number of most-recent compactable tool results to preserve when clearing. Values below 1 are floored to 1. | `5` |
|
|
254
|
+
| `context.clearContextOnIdle.toolResultsTotalCharsThreshold` | number | Total compactable tool result output characters allowed in history before clearing oldest results. Use `-1` to disable the size trigger. This is a soft threshold: protected recent tool results may keep the total above it. | `500000` |
|
|
251
255
|
|
|
252
256
|
#### Troubleshooting File Search Performance
|
|
253
257
|
|
|
254
258
|
If you are experiencing performance issues with file searching (e.g., with `@` completions), especially in projects with a very large number of files, here are a few things you can try in order of recommendation:
|
|
255
259
|
|
|
256
|
-
1. **Use
|
|
260
|
+
1. **Use an ignore file:** Create a `.qwenignore` or configured custom ignore file in your project root to exclude directories that contain a large number of files that you don't need to reference (e.g., build artifacts, logs, `node_modules`). Reducing the total number of files crawled is the most effective way to improve performance.
|
|
257
261
|
2. **Disable Fuzzy Search:** If ignoring files is not enough, you can disable fuzzy search by setting `enableFuzzySearch` to `false` in your `settings.json` file. This will use a simpler, non-fuzzy matching algorithm, which can be faster.
|
|
258
262
|
3. **Disable Recursive File Search:** As a last resort, you can disable recursive file search entirely by setting `enableRecursiveFileSearch` to `false`. This will be the fastest option as it avoids a recursive crawl of your project. However, it means you will need to type the full path to files when using `@` completions.
|
|
259
263
|
|
|
@@ -459,6 +463,19 @@ LSP server configuration is done through `.lsp.json` files in your project root
|
|
|
459
463
|
| `advanced.bugCommand` | object | Configuration for the bug report command. Overrides the default URL for the `/bug` command. Properties: `urlTemplate` (string): A URL that can contain `{title}` and `{info}` placeholders. Example: `"bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }` | `undefined` |
|
|
460
464
|
| `plansDirectory` | string | Custom directory for approved Plan Mode files. Relative paths are resolved from the project root, and the resolved path must stay within the project root. If unset, plan files are stored in `~/.qwen/plans`. **Requires restart.** If the directory is inside the project root, add it to `.gitignore` to avoid committing plan files. | `undefined` |
|
|
461
465
|
|
|
466
|
+
#### experimental
|
|
467
|
+
|
|
468
|
+
> [!warning]
|
|
469
|
+
>
|
|
470
|
+
> **Experimental features.** These toggles gate in-development capabilities and may change or be removed in future releases.
|
|
471
|
+
|
|
472
|
+
| Setting | Type | Description | Default |
|
|
473
|
+
| ----------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
474
|
+
| `experimental.cron` | boolean | Enable in-session cron/loop tools (`cron_create`, `cron_list`, `cron_delete`) so the model can create recurring prompts. Can be disabled via the `QWEN_CODE_DISABLE_CRON=1` environment variable. Requires restart. | `true` |
|
|
475
|
+
| `experimental.agentTeam` | boolean | Enable agent-team collaboration tools (`team_create`, `task_create`, `task_update`, `send_message`, etc.) for multi-agent coordination. Can also be enabled via `QWEN_CODE_ENABLE_AGENT_TEAM=1`. Requires restart. | `false` |
|
|
476
|
+
| `experimental.artifact` | boolean | Enable the Artifact tool, letting the model publish a self-contained HTML page and open it in the browser. Interactive, non-SDK sessions only. Toggle via `QWEN_CODE_ENABLE_ARTIFACT=1` / `QWEN_CODE_DISABLE_ARTIFACT=1`. Requires restart. | `false` |
|
|
477
|
+
| `experimental.emitToolUseSummaries` | boolean | Generate a short LLM-based label after each tool-call batch completes. See [Tool-Use Summaries](../features/tool-use-summaries). Requires a fast model to be configured (`fastModel`); silently skipped otherwise. Can be overridden per-session with `QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0` or `=1`. | `true` |
|
|
478
|
+
|
|
462
479
|
#### mcpServers
|
|
463
480
|
|
|
464
481
|
Configures connections to one or more Model-Context Protocol (MCP) servers for discovering and using custom tools. Qwen Code attempts to connect to each configured MCP server to discover available tools. If multiple MCP servers expose a tool with the same name, the tool names will be prefixed with the server alias you defined in the configuration (e.g., `serverAlias__actualToolName`) to avoid conflicts. Note that the system might strip certain schema properties from MCP tool definitions for compatibility. At least one of `command`, `url`, or `httpUrl` must be provided. If multiple are specified, the order of precedence is `httpUrl`, then `url`, then `command`.
|
|
@@ -480,7 +497,7 @@ Configures connections to one or more Model-Context Protocol (MCP) servers for d
|
|
|
480
497
|
|
|
481
498
|
#### telemetry
|
|
482
499
|
|
|
483
|
-
Configures logging and metrics collection for Qwen Code. For more information, see [telemetry](
|
|
500
|
+
Configures logging and metrics collection for Qwen Code. For more information, see [telemetry](../../developers/development/telemetry.md).
|
|
484
501
|
|
|
485
502
|
| Setting | Type | Description | Default |
|
|
486
503
|
| ------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
@@ -640,11 +657,11 @@ For sandbox image selection, precedence is:
|
|
|
640
657
|
| `--approval-mode` | | Sets the approval mode for tool calls. | `plan`, `default`, `auto-edit`, `auto`, `yolo` | Supported modes: `plan`: Analyze only—do not modify files or execute commands. `default`: Require approval for file edits or shell commands (default behavior). `auto-edit`: Automatically approve edit tools (`edit`, `write_file`, `notebook_edit`) while prompting for others. `auto`: LLM classifier auto-approves safe actions and blocks risky ones. `yolo`: Automatically approve all tool calls (equivalent to `--yolo`). Cannot be used together with `--yolo`. Use `--approval-mode=yolo` instead of `--yolo` for the new unified approach. Example: `qwen --approval-mode auto-edit`<br>See more about [Approval Mode](../features/approval-mode). |
|
|
641
658
|
| `--allowed-tools` | | A comma-separated list of tool names that will bypass the confirmation dialog. | Tool names | Example: `qwen --allowed-tools "Shell(git status)"` |
|
|
642
659
|
| `--disabled-slash-commands` | | Slash command names to hide/disable (comma-separated or repeated). Unioned with the `slashCommands.disabled` setting and the `QWEN_DISABLED_SLASH_COMMANDS` environment variable. Matched case-insensitively against the final command name. | Command names | Example: `qwen --disabled-slash-commands "auth,mcp,extensions"` |
|
|
643
|
-
| `--telemetry` | | Enables [telemetry](
|
|
644
|
-
| `--telemetry-target` | | Sets the telemetry target. | | See [telemetry](
|
|
645
|
-
| `--telemetry-otlp-endpoint` | | Sets the OTLP endpoint for telemetry. | | See [telemetry](../../developers/development/telemetry) for more information.
|
|
646
|
-
| `--telemetry-otlp-protocol` | | Sets the OTLP protocol for telemetry (`grpc` or `http`). | | Defaults to `grpc`. See [telemetry](../../developers/development/telemetry) for more information.
|
|
647
|
-
| `--telemetry-log-prompts` | | Enables logging of prompts for telemetry. | | See [telemetry](../../developers/development/telemetry) for more information.
|
|
660
|
+
| `--telemetry` | | Enables [telemetry](../../developers/development/telemetry.md). | | |
|
|
661
|
+
| `--telemetry-target` | | Sets the telemetry target. | | See [telemetry](../../developers/development/telemetry.md) for more information. |
|
|
662
|
+
| `--telemetry-otlp-endpoint` | | Sets the OTLP endpoint for telemetry. | | See [telemetry](../../developers/development/telemetry.md) for more information. |
|
|
663
|
+
| `--telemetry-otlp-protocol` | | Sets the OTLP protocol for telemetry (`grpc` or `http`). | | Defaults to `grpc`. See [telemetry](../../developers/development/telemetry.md) for more information. |
|
|
664
|
+
| `--telemetry-log-prompts` | | Enables logging of prompts for telemetry. | | See [telemetry](../../developers/development/telemetry.md) for more information. |
|
|
648
665
|
| `--acp` | | Enables ACP mode (Agent Client Protocol). Useful for IDE/editor integrations like [Zed](../integration-zed). | | Stable. Replaces the deprecated `--experimental-acp` flag. |
|
|
649
666
|
| `--experimental-lsp` | | Enables experimental [LSP (Language Server Protocol)](../features/lsp) feature for code intelligence (go-to-definition, find references, diagnostics, etc.). | | Experimental. Requires language servers to be installed. |
|
|
650
667
|
| `--extensions` | `-e` | Specifies a list of extensions to use for the session. | Extension names | If not provided, all available extensions are used. Use the special term `qwen -e none` to disable all extensions. Example: `qwen -e my-extension -e my-other-extension` |
|
|
@@ -693,7 +710,7 @@ Here's a conceptual example of what a context file at the root of a TypeScript p
|
|
|
693
710
|
|
|
694
711
|
This example demonstrates how you can provide general project context, specific coding conventions, and even notes about particular files or components. The more relevant and precise your context files are, the better the AI can assist you. Project-specific context files are highly encouraged to establish conventions and context.
|
|
695
712
|
|
|
696
|
-
- **Hierarchical Loading and Precedence:** The CLI implements a hierarchical memory system by loading context files (e.g., `QWEN.md`) from several locations. Content from files lower in this list (more specific) typically overrides or supplements content from files higher up (more general). The exact concatenation order and final context can be inspected
|
|
713
|
+
- **Hierarchical Loading and Precedence:** The CLI implements a hierarchical memory system by loading context files (e.g., `QWEN.md`) from several locations. Content from files lower in this list (more specific) typically overrides or supplements content from files higher up (more general). The exact concatenation order and final context can be inspected from the `/memory` dialog. The typical loading order is:
|
|
697
714
|
1. **Global Context File:**
|
|
698
715
|
- Location: `~/.qwen/<configured-context-filename>` (e.g., `~/.qwen/QWEN.md` in your user home directory).
|
|
699
716
|
- Scope: Provides default instructions for all your projects.
|
|
@@ -701,11 +718,11 @@ This example demonstrates how you can provide general project context, specific
|
|
|
701
718
|
- Location: The CLI searches for the configured context file in the current working directory and then in each parent directory up to either the project root (identified by a `.git` folder) or your home directory.
|
|
702
719
|
- Scope: Provides context relevant to the entire project or a significant portion of it.
|
|
703
720
|
- **Concatenation & UI Indication:** The contents of all found context files are concatenated (with separators indicating their origin and path) and provided as part of the system prompt. The CLI footer displays the count of loaded context files, giving you a quick visual cue about the active instructional context.
|
|
704
|
-
- **Importing Content:** You can modularize your context files by importing other Markdown files using the `@path/to/file.md` syntax. For more details, see the [Memory
|
|
721
|
+
- **Importing Content:** You can modularize your context files by importing other Markdown files using the `@path/to/file.md` syntax. For more details, see the [Memory documentation](../features/memory.md).
|
|
705
722
|
- **Commands for Memory Management:**
|
|
706
|
-
- Use `/memory
|
|
707
|
-
-
|
|
708
|
-
- See the [Commands documentation](../features/commands) for full details on the `/memory` command
|
|
723
|
+
- Use `/memory` to open the memory management dialog.
|
|
724
|
+
- Refresh memory from the dialog to re-scan and reload context files from all configured locations.
|
|
725
|
+
- See the [Commands documentation](../features/commands.md) for full details on the `/memory` command.
|
|
709
726
|
|
|
710
727
|
By understanding and utilizing these configuration layers and the hierarchical nature of context files, you can effectively manage the AI's memory and tailor Qwen Code's responses to your specific needs and projects.
|
|
711
728
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Themes
|
|
2
2
|
|
|
3
|
-
Qwen Code supports a variety of themes to customize its color scheme and appearance. You can change the theme to suit your preferences via the `/theme` command or `"theme"
|
|
3
|
+
Qwen Code supports a variety of themes to customize its color scheme and appearance. You can change the theme to suit your preferences via the `/theme` command or the `"ui.theme"` configuration setting.
|
|
4
4
|
|
|
5
5
|
## Available Themes
|
|
6
6
|
|
|
@@ -13,12 +13,15 @@ Qwen Code comes with a selection of pre-defined themes, which you can list using
|
|
|
13
13
|
- `Default`
|
|
14
14
|
- `Dracula`
|
|
15
15
|
- `GitHub`
|
|
16
|
+
- `Qwen Dark`
|
|
17
|
+
- `Shades Of Purple`
|
|
16
18
|
- **Light Themes:**
|
|
17
19
|
- `ANSI Light`
|
|
18
20
|
- `Ayu Light`
|
|
19
21
|
- `Default Light`
|
|
20
22
|
- `GitHub Light`
|
|
21
23
|
- `Google Code`
|
|
24
|
+
- `Qwen Light`
|
|
22
25
|
- `Xcode`
|
|
23
26
|
|
|
24
27
|
### Changing Themes
|
|
@@ -28,7 +31,7 @@ Qwen Code comes with a selection of pre-defined themes, which you can list using
|
|
|
28
31
|
3. Using the arrow keys, select a theme. Some interfaces might offer a live preview or highlight as you select.
|
|
29
32
|
4. Confirm your selection to apply the theme.
|
|
30
33
|
|
|
31
|
-
**Note:** If a theme is defined in your `settings.json` file (either by name or by a file path), you must remove the `"theme"` setting from the file before you can change the theme using the `/theme` command.
|
|
34
|
+
**Note:** If a theme is defined in your `settings.json` file (either by name or by a file path), you must remove the `"ui.theme"` setting from the file before you can change the theme using the `/theme` command.
|
|
32
35
|
|
|
33
36
|
### Theme Persistence
|
|
34
37
|
|
|
@@ -139,7 +142,7 @@ You can define multiple custom themes by adding more entries to the `customTheme
|
|
|
139
142
|
|
|
140
143
|
In addition to defining custom themes in `settings.json`, you can also load a theme directly from a JSON file by specifying the file path in your `settings.json`. This is useful for sharing themes or keeping them separate from your main configuration.
|
|
141
144
|
|
|
142
|
-
To load a theme from a file, set the `theme` property in your `settings.json` to the path of your theme file:
|
|
145
|
+
To load a theme from a file, set the `ui.theme` property in your `settings.json` to the path of your theme file:
|
|
143
146
|
|
|
144
147
|
```json
|
|
145
148
|
{
|
|
@@ -175,7 +178,7 @@ The theme file must be a valid JSON file that follows the same structure as a cu
|
|
|
175
178
|
}
|
|
176
179
|
```
|
|
177
180
|
|
|
178
|
-
**Security Note:** For your safety,
|
|
181
|
+
**Security Note:** For your safety, Qwen Code will only load theme files that are located within your home directory. If you attempt to load a theme from outside your home directory, a warning will be displayed and the theme will not be loaded. This is to prevent loading potentially malicious theme files from untrusted sources.
|
|
179
182
|
|
|
180
183
|
### Example Custom Theme
|
|
181
184
|
|
|
@@ -75,7 +75,7 @@ To ensure Qwen Code can automatically find the correct release asset for each pl
|
|
|
75
75
|
|
|
76
76
|
Archives must be fully contained extensions and have all the standard requirements - specifically the `qwen-extension.json` file must be at the root of the archive.
|
|
77
77
|
|
|
78
|
-
The rest of the layout should look exactly the same as a typical extension, see [
|
|
78
|
+
The rest of the layout should look exactly the same as a typical extension, see [introduction.md](./introduction.md).
|
|
79
79
|
|
|
80
80
|
#### Example GitHub Actions workflow
|
|
81
81
|
|
|
@@ -12,11 +12,11 @@ We offer a suite of extension management tools using both `qwen extensions` CLI
|
|
|
12
12
|
|
|
13
13
|
You can manage extensions at runtime within the interactive CLI using `/extensions` slash commands. These commands support hot-reloading, meaning changes take effect immediately without restarting the application.
|
|
14
14
|
|
|
15
|
-
| Command | Description
|
|
16
|
-
| ------------------------------------- |
|
|
17
|
-
| `/extensions` or `/extensions manage` | Manage all installed extensions
|
|
18
|
-
| `/extensions install <source>` | Install an extension from a git URL, local path, npm package, or marketplace |
|
|
19
|
-
| `/extensions explore [source]` | Open extensions source page(Gemini or ClaudeCode) in your browser
|
|
15
|
+
| Command | Description |
|
|
16
|
+
| ------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| `/extensions` or `/extensions manage` | Manage all installed extensions |
|
|
18
|
+
| `/extensions install <source>` | Install an extension from a git URL, local path or archive, archive URL, npm package, or marketplace |
|
|
19
|
+
| `/extensions explore [source]` | Open extensions source page(Gemini or ClaudeCode) in your browser |
|
|
20
20
|
|
|
21
21
|
#### The interactive extension manager
|
|
22
22
|
|
|
@@ -141,8 +141,26 @@ This will install the github mcp server extension.
|
|
|
141
141
|
qwen extensions install /path/to/your/extension
|
|
142
142
|
```
|
|
143
143
|
|
|
144
|
+
Local `.zip` and `.tar.gz` archives are also supported:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
qwen extensions install /path/to/your/extension.zip
|
|
148
|
+
qwen extensions install /path/to/your/extension.tar.gz
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The archive must contain a complete extension at its root, or a single top-level directory containing the extension.
|
|
152
|
+
|
|
144
153
|
Note that we create a copy of the installed extension, so you will need to run `qwen extensions update` to pull in changes from both locally-defined extensions and those on GitHub.
|
|
145
154
|
|
|
155
|
+
#### From Archive URL
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
qwen extensions install https://example.com/your/extension.zip
|
|
159
|
+
qwen extensions install https://example.com/your/extension.tar.gz
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Archive URLs can be updated later as long as the URL continues to point at a newer archive for the same extension.
|
|
163
|
+
|
|
146
164
|
#### Choosing an install scope
|
|
147
165
|
|
|
148
166
|
By default, an installed extension is enabled globally (user scope). Pass `--scope project` to enable it only for the current workspace:
|
|
@@ -193,7 +211,7 @@ This is useful if you have an extension disabled at the top-level and only enabl
|
|
|
193
211
|
|
|
194
212
|
### Updating an extension
|
|
195
213
|
|
|
196
|
-
For extensions installed from a local path, a git repository, or an npm registry, you can explicitly update to the latest version with `qwen extensions update extension-name`. For npm extensions installed without a version pin (e.g. `@scope/pkg`), updates check the `latest` dist-tag. For those installed with a specific dist-tag (e.g. `@scope/pkg@beta`), updates track that tag. Extensions pinned to an exact version (e.g. `@scope/pkg@1.2.0`) are always considered up-to-date.
|
|
214
|
+
For extensions installed from a local path or archive, an archive URL, a git repository, or an npm registry, you can explicitly update to the latest version with `qwen extensions update extension-name`. For npm extensions installed without a version pin (e.g. `@scope/pkg`), updates check the `latest` dist-tag. For those installed with a specific dist-tag (e.g. `@scope/pkg@beta`), updates track that tag. Extensions pinned to an exact version (e.g. `@scope/pkg@1.2.0`) are always considered up-to-date.
|
|
197
215
|
|
|
198
216
|
You can update all extensions with:
|
|
199
217
|
|
|
@@ -245,7 +263,7 @@ The `qwen-extension.json` file contains the configuration for the extension. The
|
|
|
245
263
|
|
|
246
264
|
- `name`: The name of the extension. This is used to uniquely identify the extension and for conflict resolution when extension commands have the same name as user or project commands. The name should be lowercase or numbers and use dashes instead of underscores or spaces. This is how users will refer to your extension in the CLI. Note that we expect this name to match the extension directory name.
|
|
247
265
|
- `version`: The version of the extension.
|
|
248
|
-
- `mcpServers`: A map of MCP servers to configure. The key is the name of the server, and the value is the server configuration. These servers will be loaded on startup just like MCP servers configured in a [`settings.json` file](
|
|
266
|
+
- `mcpServers`: A map of MCP servers to configure. The key is the name of the server, and the value is the server configuration. These servers will be loaded on startup just like MCP servers configured in a [`settings.json` file](../configuration/settings.md). If both an extension and a `settings.json` file configure an MCP server with the same name, the server defined in the `settings.json` file takes precedence.
|
|
249
267
|
- Note that all MCP server configuration options are supported except for `trust`.
|
|
250
268
|
- `channels`: A map of custom channel adapters. The key is the channel type name, and the value has an `entry` (path to compiled JS entry point) and optional `displayName`. The entry point must export a `plugin` object conforming to the `ChannelPlugin` interface. See [Channel Plugins](../features/channels/plugins) for a full guide.
|
|
251
269
|
- `contextFileName`: The name of the file that contains the context for the extension. This will be used to load the context from the extension directory. If this property is not used but a `QWEN.md` file is present in your extension directory, then that file will be loaded.
|
|
@@ -269,24 +287,12 @@ Extensions can require configuration through settings (such as API keys or crede
|
|
|
269
287
|
qwen extensions settings set <extension-name> <setting-name> [--scope user|workspace]
|
|
270
288
|
```
|
|
271
289
|
|
|
272
|
-
**List all settings for an extension:**
|
|
290
|
+
**List all settings and current values for an extension:**
|
|
273
291
|
|
|
274
292
|
```bash
|
|
275
293
|
qwen extensions settings list <extension-name>
|
|
276
294
|
```
|
|
277
295
|
|
|
278
|
-
**View current values (user and workspace):**
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
qwen extensions settings show <extension-name> <setting-name>
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
**Remove a setting value:**
|
|
285
|
-
|
|
286
|
-
```bash
|
|
287
|
-
qwen extensions settings unset <extension-name> <setting-name> [--scope user|workspace]
|
|
288
|
-
```
|
|
289
|
-
|
|
290
296
|
Settings can be configured at two levels:
|
|
291
297
|
|
|
292
298
|
- **User level** (default): Settings apply across all projects (`~/.qwen/.env`)
|
|
@@ -298,7 +304,7 @@ When Qwen Code starts, it loads all the extensions and merges their configuratio
|
|
|
298
304
|
|
|
299
305
|
### Custom commands
|
|
300
306
|
|
|
301
|
-
Extensions can provide [custom commands](
|
|
307
|
+
Extensions can provide [custom commands](../features/commands.md#4-custom-commands) by placing Markdown files in a `commands/` subdirectory within the extension directory. These commands follow the same format as user and project custom commands and use standard naming conventions.
|
|
302
308
|
|
|
303
309
|
> **Note:** The command format has been updated from TOML to Markdown. TOML files are deprecated but still supported. You can migrate existing TOML commands using the automatic migration prompt that appears when TOML files are detected.
|
|
304
310
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
Agent Arena lets you pit multiple AI models against each other on the same task. Each model runs as a fully independent agent in its own isolated Git worktree, so file operations never interfere. When all agents finish, you compare results and select a winner to merge back into your main workspace.
|
|
9
9
|
|
|
10
|
-
Unlike [subagents](
|
|
10
|
+
Unlike [subagents](./sub-agents.md), which delegate focused subtasks within a single session, Arena agents are complete, top-level agent instances — each with its own model, context window, and full tool access.
|
|
11
11
|
|
|
12
12
|
This page covers:
|
|
13
13
|
|
|
@@ -104,7 +104,7 @@ If you want to inspect the complete reasoning path before deciding, each agent's
|
|
|
104
104
|
|
|
105
105
|
## Configuration
|
|
106
106
|
|
|
107
|
-
Arena behavior can be customized in [settings.json](
|
|
107
|
+
Arena behavior can be customized in [settings.json](../configuration/settings.md):
|
|
108
108
|
|
|
109
109
|
```json
|
|
110
110
|
{
|
|
@@ -215,5 +215,5 @@ Agent Arena is one of several planned multi-agent modes in Qwen Code. **Agent Te
|
|
|
215
215
|
|
|
216
216
|
Explore related approaches for parallel and delegated work:
|
|
217
217
|
|
|
218
|
-
- **Lightweight delegation**: [Subagents](
|
|
218
|
+
- **Lightweight delegation**: [Subagents](./sub-agents.md) handle focused subtasks within your session — better when you don't need model comparison
|
|
219
219
|
- **Manual parallel sessions**: Run multiple Qwen Code sessions yourself in separate terminals with [Git worktrees](https://git-scm.com/docs/git-worktree) for full manual control
|
|
@@ -7,7 +7,7 @@ Channels let you interact with a Qwen Code agent from messaging platforms like T
|
|
|
7
7
|
When you run `qwen channel start`, Qwen Code:
|
|
8
8
|
|
|
9
9
|
1. Reads channel configurations from your `settings.json`
|
|
10
|
-
2. Spawns a single agent process using the [Agent Client Protocol (ACP)](
|
|
10
|
+
2. Spawns a single agent process using the [Agent Client Protocol (ACP)](../../../developers/architecture.md)
|
|
11
11
|
3. Connects to each messaging platform and starts listening for messages
|
|
12
12
|
4. Routes incoming messages to the agent and sends responses back to the correct chat
|
|
13
13
|
|
|
@@ -84,4 +84,4 @@ Custom channels automatically support everything built-in channels do:
|
|
|
84
84
|
|
|
85
85
|
## Building Your Own Channel Plugin
|
|
86
86
|
|
|
87
|
-
Want to build a channel plugin for a new platform? See the [Channel Plugin Developer Guide](
|
|
87
|
+
Want to build a channel plugin for a new platform? See the [Channel Plugin Developer Guide](../../../developers/channel-plugins.md) for the `ChannelPlugin` interface, the `Envelope` format, and extension points.
|
|
@@ -43,10 +43,13 @@ Commands for adjusting interface appearance and work environment.
|
|
|
43
43
|
| `/clear` | Clear terminal screen content | `/clear` (shortcut: `Ctrl+L`) |
|
|
44
44
|
| `/context` | Show context window usage breakdown | `/context` |
|
|
45
45
|
| → `detail` | Show per-item context usage breakdown | `/context detail` |
|
|
46
|
+
| `/history` | Control history display preferences and visibility | `/history collapse-on-resume`, `/history expand-on-resume`, `/history expand-now` |
|
|
46
47
|
| `/diff` | Open an interactive diff viewer showing uncommitted changes and per-turn diffs. Use ←/→ to switch between current git diff and individual conversation turns, ↑/↓ to browse files | `/diff` |
|
|
47
48
|
| `/theme` | Change Qwen Code visual theme | `/theme` |
|
|
48
49
|
| `/vim` | Turn input area Vim editing mode on/off | `/vim` |
|
|
50
|
+
| `/voice` | Toggle voice dictation input | `/voice`, `/voice status` |
|
|
49
51
|
| `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests` |
|
|
52
|
+
| `/cd` | Move this session to a new working directory | `/cd ../other-project` |
|
|
50
53
|
| `/editor` | Open dialog to select supported editor | `/editor` |
|
|
51
54
|
| `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline` |
|
|
52
55
|
| `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch` |
|
|
@@ -72,6 +75,7 @@ Commands for managing AI tools and models.
|
|
|
72
75
|
| Command | Description | Usage Examples |
|
|
73
76
|
| ---------------- | --------------------------------------------- | --------------------------------------------- |
|
|
74
77
|
| `/mcp` | List configured MCP servers and tools | `/mcp`, `/mcp desc` |
|
|
78
|
+
| `/import-config` | Import MCP servers from Claude configs | `/import-config claude-code`, `/import-config claude-desktop --scope project` |
|
|
75
79
|
| `/tools` | Display currently available tool list | `/tools`, `/tools desc` |
|
|
76
80
|
| `/skills` | List and run available skills | `/skills`, `/skills <name>` |
|
|
77
81
|
| `/plan` | Switch to plan mode or exit plan mode | `/plan`, `/plan <task>`, `/plan exit` |
|
|
@@ -81,8 +85,9 @@ Commands for managing AI tools and models.
|
|
|
81
85
|
| →`auto-edit` | Automatically approve edits | Trusted environment |
|
|
82
86
|
| →`auto` | Classifier-evaluated approval | Autonomous sessions with safety guardrails |
|
|
83
87
|
| →`yolo` | Automatically approve all | Quick prototyping |
|
|
84
|
-
| `/model` | Switch model used in current session | `/model
|
|
88
|
+
| `/model` | Switch model used in current session | `/model`, `/model <model-id>` (switch immediately) |
|
|
85
89
|
| `/model --fast` | Set a lighter model for prompt suggestions | `/model --fast qwen3-coder-flash` |
|
|
90
|
+
| `/model --voice` | Set the model used for voice transcription | `/model --voice <model-id>` |
|
|
86
91
|
| `/extensions` | List all active extensions in current session | `/extensions` |
|
|
87
92
|
| `/memory` | Open the Memory Manager dialog | `/memory` |
|
|
88
93
|
| `/remember` | Save a durable memory | `/remember Prefer terse responses` |
|
|
@@ -406,6 +406,6 @@ These messages keep CI runners alive and let you monitor progress. They do not a
|
|
|
406
406
|
## Resources
|
|
407
407
|
|
|
408
408
|
- [CLI Configuration](../configuration/settings#command-line-arguments) - Complete configuration guide
|
|
409
|
-
- [Authentication](../configuration/
|
|
409
|
+
- [Authentication](../configuration/auth.md) - Setup authentication
|
|
410
410
|
- [Commands](../features/commands) - Interactive commands reference
|
|
411
411
|
- [Tutorials](../quickstart) - Step-by-step automation guides
|
|
@@ -20,7 +20,7 @@ With MCP servers connected, you can ask Qwen Code to:
|
|
|
20
20
|
Qwen Code loads MCP servers from `mcpServers` in your `settings.json`. You can configure servers either:
|
|
21
21
|
|
|
22
22
|
- By editing `settings.json` directly
|
|
23
|
-
- By using `qwen mcp` commands (see [CLI reference](#qwen-mcp
|
|
23
|
+
- By using `qwen mcp` commands (see [CLI reference](#manage-mcp-servers-with-qwen-mcp))
|
|
24
24
|
|
|
25
25
|
### Add your first server
|
|
26
26
|
|
|
@@ -30,20 +30,28 @@ Qwen Code loads MCP servers from `mcpServers` in your `settings.json`. You can c
|
|
|
30
30
|
qwen mcp add --transport http my-server http://localhost:3000/mcp
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
2.
|
|
33
|
+
2. Start Qwen Code and open the MCP management dialog to view and manage
|
|
34
|
+
servers:
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
|
-
qwen
|
|
37
|
+
qwen
|
|
37
38
|
```
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
Then enter:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
/mcp
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
3. If Qwen Code was already running before you added the server, restart it in
|
|
47
|
+
the same project. Then ask the model to use tools from that server.
|
|
40
48
|
|
|
41
49
|
## Where configuration is stored (scopes)
|
|
42
50
|
|
|
43
51
|
Most users only need these two scopes:
|
|
44
52
|
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
53
|
+
- **User scope (default)**: `~/.qwen/settings.json` across all projects on your machine
|
|
54
|
+
- **Project scope**: `.qwen/settings.json` in your project root
|
|
47
55
|
|
|
48
56
|
Write to user scope:
|
|
49
57
|
|
|
@@ -94,7 +102,7 @@ JSON (`.qwen/settings.json`):
|
|
|
94
102
|
}
|
|
95
103
|
```
|
|
96
104
|
|
|
97
|
-
CLI (writes to
|
|
105
|
+
CLI (writes to user scope by default):
|
|
98
106
|
|
|
99
107
|
```bash
|
|
100
108
|
qwen mcp add pythonTools -e DATABASE_URL=$DB_CONNECTION_STRING -e API_KEY=$EXTERNAL_API_KEY \
|
|
@@ -177,8 +185,11 @@ The prompt's messages are sent to the model, which then acts on them.
|
|
|
177
185
|
|
|
178
186
|
Resources a server advertises via `resources/list` are discovered per
|
|
179
187
|
server. Open the management dialog with `/mcp` and select a server to see
|
|
180
|
-
its **Resources** count alongside its tools and prompts.
|
|
181
|
-
the
|
|
188
|
+
its **Resources** count alongside its tools and prompts. Choose **View
|
|
189
|
+
resources** to browse the server's resource URIs; selecting one shows its
|
|
190
|
+
description and MIME type along with the exact `@server:uri` reference to
|
|
191
|
+
paste into a message. As with prompts, the `resources` capability is not
|
|
192
|
+
required to be declared.
|
|
182
193
|
|
|
183
194
|
Inject a resource's contents into your message with the `@server:uri`
|
|
184
195
|
syntax — type `@`, then the server name, a colon, and the resource URI:
|
|
@@ -187,8 +198,12 @@ syntax — type `@`, then the server name, a colon, and the resource URI:
|
|
|
187
198
|
summarize @myserver:file:///docs/spec.md and list the open questions
|
|
188
199
|
```
|
|
189
200
|
|
|
190
|
-
Typing `@myserver:` shows an autocomplete list of that server's
|
|
191
|
-
|
|
201
|
+
Typing `@myserver:` shows an autocomplete list of that server's resources;
|
|
202
|
+
keep typing to filter, matching (case-insensitively) either the resource URI
|
|
203
|
+
or its friendly name/title. You don't have to know a URI by heart — before
|
|
204
|
+
you reach the colon, typing part of a server name also suggests matching
|
|
205
|
+
servers that expose resources, so you can pick one and drill straight into
|
|
206
|
+
its resource list. On submit, the referenced resource is read and its contents are
|
|
192
207
|
appended to your message (text inline, binary blobs as attachments); the
|
|
193
208
|
`@server:uri` reference is preserved in the prompt so the model knows what
|
|
194
209
|
it is looking at. The `server` prefix must match a configured MCP server —
|
|
@@ -330,11 +345,15 @@ OAuth configuration properties:
|
|
|
330
345
|
|
|
331
346
|
OAuth tokens are automatically:
|
|
332
347
|
|
|
333
|
-
- **Stored
|
|
348
|
+
- **Stored** in `~/.qwen/mcp-oauth-tokens.json` (plaintext, mode 0600) by default. If `QWEN_CODE_FORCE_ENCRYPTED_FILE_STORAGE=true` is set, Qwen Code uses keychain-backed storage where available, or `~/.qwen/mcp-oauth-tokens-v2.json` with AES-256-GCM encryption.
|
|
334
349
|
- **Refreshed** when expired (if refresh tokens are available)
|
|
335
350
|
- **Validated** before each connection attempt
|
|
336
351
|
|
|
337
|
-
|
|
352
|
+
> [!WARNING]
|
|
353
|
+
> By default, OAuth tokens are stored unencrypted on disk. On shared or multi-user machines, set `QWEN_CODE_FORCE_ENCRYPTED_FILE_STORAGE=true` to protect credentials.
|
|
354
|
+
|
|
355
|
+
Use the `/mcp` dialog within Qwen Code to inspect MCP servers and manage
|
|
356
|
+
authentication interactively.
|
|
338
357
|
|
|
339
358
|
### Tool filtering (allow/deny tools per server)
|
|
340
359
|
|
|
@@ -447,7 +466,7 @@ qwen mcp add [options] <name> <commandOrUrl> [args...]
|
|
|
447
466
|
| `<name>` | A unique name for the server. | — | `example-server` |
|
|
448
467
|
| `<commandOrUrl>` | The command to execute (for `stdio`) or the URL (for `http`/`sse`). | — | `/usr/bin/python` or `http://localhost:8` |
|
|
449
468
|
| `[args...]` | Optional arguments for a `stdio` command. | — | `--port 5000` |
|
|
450
|
-
| `-s`, `--scope` | Configuration scope (user or project). | `
|
|
469
|
+
| `-s`, `--scope` | Configuration scope (user or project). | `user` | `-s user` |
|
|
451
470
|
| `-t`, `--transport` | Transport type (`stdio`, `sse`, `http`). | `stdio` | `-t sse` |
|
|
452
471
|
| `-e`, `--env` | Set environment variables. | — | `-e KEY=value` |
|
|
453
472
|
| `-H`, `--header` | Set HTTP headers for SSE and HTTP transports. | — | `-H "X-Api-Key: abc123"` |
|
|
@@ -163,7 +163,7 @@ If you want to restrict outbound network access to an allowlist, you can run a l
|
|
|
163
163
|
|
|
164
164
|
This is especially useful with `*-proxied` Seatbelt profiles.
|
|
165
165
|
|
|
166
|
-
For a working allowlist-style proxy example, see: [Example Proxy Script](
|
|
166
|
+
For a working allowlist-style proxy example, see: [Example Proxy Script](../../developers/examples/proxy-script.md).
|
|
167
167
|
|
|
168
168
|
## Linux UID/GID handling
|
|
169
169
|
|
|
@@ -210,7 +210,7 @@ Then rebuild the sandbox image:
|
|
|
210
210
|
QWEN_SANDBOX=docker BUILD_SANDBOX=1 qwen -s
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
-
For more details on customizing the sandbox, see [Customizing the sandbox environment](
|
|
213
|
+
For more details on customizing the sandbox, see [Customizing the sandbox environment](../../developers/tools/sandbox.md).
|
|
214
214
|
|
|
215
215
|
**Network issues**
|
|
216
216
|
|
|
@@ -174,5 +174,5 @@ If you do not want the extra cost, turn the feature off via `experimental.emitTo
|
|
|
174
174
|
|
|
175
175
|
## Related
|
|
176
176
|
|
|
177
|
-
- [Compact Mode](../configuration/settings#ui
|
|
177
|
+
- [Compact Mode](../configuration/settings#ui) — toggle with `Ctrl+O`; the summary replaces the generic tool-group header when compact mode is on.
|
|
178
178
|
- [Followup Suggestions](./followup-suggestions) — another fast-model-driven UX enhancement that shares the same `fastModel` setting.
|