@qwen-code/qwen-code 0.18.5 → 0.19.1-nightly.20260624.a234860a4

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.
Files changed (165) hide show
  1. package/bundled/qc-helper/SKILL.md +13 -5
  2. package/bundled/qc-helper/docs/configuration/_meta.ts +1 -0
  3. package/bundled/qc-helper/docs/configuration/auth.md +68 -48
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +217 -195
  5. package/bundled/qc-helper/docs/configuration/qwen-ignore.md +31 -15
  6. package/bundled/qc-helper/docs/configuration/settings.md +44 -27
  7. package/bundled/qc-helper/docs/configuration/themes.md +7 -4
  8. package/bundled/qc-helper/docs/extension/extension-releasing.md +1 -1
  9. package/bundled/qc-helper/docs/extension/introduction.md +27 -21
  10. package/bundled/qc-helper/docs/features/arena.md +3 -3
  11. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  12. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  13. package/bundled/qc-helper/docs/features/commands.md +6 -1
  14. package/bundled/qc-helper/docs/features/headless.md +1 -1
  15. package/bundled/qc-helper/docs/features/mcp.md +33 -14
  16. package/bundled/qc-helper/docs/features/sandbox.md +2 -2
  17. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  18. package/bundled/qc-helper/docs/integration-github-action.md +2 -2
  19. package/bundled/qc-helper/docs/overview.md +1 -1
  20. package/bundled/qc-helper/docs/quickstart.md +9 -5
  21. package/bundled/qc-helper/docs/qwen-serve.md +14 -2
  22. package/bundled/qc-helper/docs/support/tos-privacy.md +1 -1
  23. package/chunks/{agent-2TEY55UD.js → agent-6KV474S5.js} +24 -22
  24. package/chunks/{agent-headless-SCUAXEEE.js → agent-headless-XO7MM6JT.js} +24 -22
  25. package/chunks/{anthropicContentGenerator-5S4OMMNL.js → anthropicContentGenerator-7352A7I5.js} +12 -11
  26. package/chunks/artifact-tool-5J4HUZAV.js +675 -0
  27. package/chunks/{askUserQuestion-WHVYL2S2.js → askUserQuestion-HF7HCWDD.js} +20 -7
  28. package/chunks/chunk-22IFUCVR.js +291 -0
  29. package/chunks/{chunk-26ZYKTYZ.js → chunk-2BIF2NVV.js} +2 -2
  30. package/chunks/{chunk-VKILGMZQ.js → chunk-2QDQTWCI.js} +1 -1
  31. package/chunks/{chunk-XGU3ETVO.js → chunk-3BR4OIOE.js} +3 -3
  32. package/chunks/{chunk-LTN3VYMZ.js → chunk-3UALQ56H.js} +1 -1
  33. package/chunks/{chunk-F5E6IKYN.js → chunk-54J4JDWT.js} +619 -135
  34. package/chunks/{chunk-KZGQ3G3Q.js → chunk-76BDT2HH.js} +80 -83
  35. package/chunks/{chunk-VECKCOH6.js → chunk-7QBKO4A6.js} +7118 -5113
  36. package/chunks/{chunk-MSJ2MXJ6.js → chunk-BGUDAULQ.js} +11 -290
  37. package/chunks/{chunk-FH4P6RQA.js → chunk-BNXANYLH.js} +1 -1
  38. package/chunks/{chunk-SIJKWK35.js → chunk-C4JC2FL3.js} +8 -7
  39. package/chunks/{chunk-WE6TNQJU.js → chunk-C4K3FEQ2.js} +36 -0
  40. package/chunks/{chunk-G4BUMVEY.js → chunk-CGEGHF2C.js} +2 -217
  41. package/chunks/chunk-EEEZIVFJ.js +908 -0
  42. package/chunks/chunk-EJYJYJZ2.js +3703 -0
  43. package/chunks/{chunk-ATLUHLZE.js → chunk-EW6C27XX.js} +1 -1
  44. package/chunks/{chunk-42HGOMED.js → chunk-F6XNTYNE.js} +216 -1
  45. package/chunks/{chunk-C6MI2ASN.js → chunk-GZCJS5WH.js} +2 -2
  46. package/chunks/{chunk-KGV3F6UF.js → chunk-HGNSRCRB.js} +1 -1
  47. package/chunks/{chunk-2CNO5W47.js → chunk-HNYTRFAM.js} +171 -5016
  48. package/chunks/{chunk-CX3SGIPK.js → chunk-KBXLIVWQ.js} +2 -2
  49. package/chunks/{chunk-GOMVJKBL.js → chunk-L7U2RI5O.js} +59 -57
  50. package/chunks/{chunk-GBN55AWZ.js → chunk-NKJ6LRCR.js} +2 -2
  51. package/chunks/{chunk-2O3NAOJG.js → chunk-NWLUISRA.js} +1 -1
  52. package/chunks/{chunk-ID533GA3.js → chunk-OTBK43JR.js} +1 -1
  53. package/chunks/{chunk-AE6RQU6F.js → chunk-PRYMDRBV.js} +1 -1
  54. package/chunks/{chunk-KQIKOTQJ.js → chunk-RYLJU2DY.js} +60 -5
  55. package/chunks/{chunk-CTHZVIMD.js → chunk-T2VDEFUU.js} +2 -2
  56. package/chunks/{chunk-C7JA3XCX.js → chunk-TKXRLRTF.js} +5 -5
  57. package/chunks/{chunk-LF6BKGZT.js → chunk-TXVGVZYR.js} +3 -3
  58. package/chunks/{chunk-XU7BKR3B.js → chunk-XU5P23GN.js} +3 -3
  59. package/chunks/{computer-use-OB3C5QG2.js → computer-use-WOKHYISX.js} +24 -22
  60. package/chunks/contextCommand-JSYQAO3O.js +56 -0
  61. package/chunks/{cron-create-THNDTYXU.js → cron-create-A5637KCI.js} +12 -9
  62. package/chunks/{cron-delete-BS5H6TFJ.js → cron-delete-AADOSEOZ.js} +4 -4
  63. package/chunks/{cron-list-7OBVHT7K.js → cron-list-OFCPTT2Y.js} +4 -4
  64. package/chunks/{dist-GKRNVFBH.js → dist-ZBX7LPJZ.js} +2 -1
  65. package/chunks/{edit-GNCLIF67.js → edit-6EN6NO6G.js} +24 -22
  66. package/chunks/{en-S3OQBISC.js → en-7OGNWWME.js} +48 -0
  67. package/chunks/{enter-worktree-E7BNZOGT.js → enter-worktree-XJ4S74CL.js} +24 -22
  68. package/chunks/{enterPlanMode-IA42A5EU.js → enterPlanMode-GQNQIH2V.js} +27 -23
  69. package/chunks/{exit-worktree-QJ2K74UT.js → exit-worktree-6MKLATVB.js} +24 -22
  70. package/chunks/{exitPlanMode-UKKHBUYJ.js → exitPlanMode-YACWA5GO.js} +36 -28
  71. package/chunks/{geminiContentGenerator-ICSDM37U.js → geminiContentGenerator-OLJGOIWO.js} +4 -4
  72. package/chunks/{glob-IGD7LWYX.js → glob-YHSIN2LG.js} +26 -23
  73. package/chunks/{grep-IZM3IVND.js → grep-5EMEAJBO.js} +24 -22
  74. package/chunks/{keychain-token-storage-YHXIWXIB.js → keychain-token-storage-CSYMNRPP.js} +2 -2
  75. package/chunks/{loop-wakeup-SSBWZ64K.js → loop-wakeup-DGSMT4N6.js} +5 -5
  76. package/chunks/{ls-YPFUHZRQ.js → ls-UGRZ4ZOM.js} +6 -6
  77. package/chunks/{lsp-FD6DNVAF.js → lsp-72IJURW3.js} +2 -2
  78. package/chunks/{monitor-ALJNE3R4.js → monitor-ZGXTGINM.js} +24 -22
  79. package/chunks/{notebook-edit-7XRZX55T.js → notebook-edit-O7WO3APR.js} +25 -23
  80. package/chunks/{openaiContentGenerator-FWKITDFJ.js → openaiContentGenerator-N4FCEGU2.js} +12 -15
  81. package/chunks/{qwenContentGenerator-5RPGQZ63.js → qwenContentGenerator-BOAZ7MMG.js} +26 -24
  82. package/chunks/{qwenOAuth2-WZ54YZ4J.js → qwenOAuth2-K4AASPCV.js} +5 -4
  83. package/chunks/{read-file-4WN2DT5N.js → read-file-RB35MI5I.js} +9 -8
  84. package/chunks/{ripGrep-4ZKT6KBQ.js → ripGrep-CWJOA6JG.js} +24 -22
  85. package/chunks/{scheduler-O2E65VDK.js → scheduler-XUBHNI2Z.js} +73 -27
  86. package/chunks/{send-message-FWFTX62Q.js → send-message-URUZ7PLA.js} +24 -4
  87. package/chunks/{serve-3DM6CRGD.js → serve-P356SCA2.js} +618 -92
  88. package/chunks/{shell-ARVZK6RF.js → shell-5TRHTPML.js} +24 -22
  89. package/chunks/{skill-BFUBGA4I.js → skill-RW6N7GHL.js} +11 -10
  90. package/chunks/{src-5YMCDSII.js → src-SPEHQKTK.js} +140 -67
  91. package/chunks/{syntheticOutput-JY5NEDTV.js → syntheticOutput-65FRJGWM.js} +3 -3
  92. package/chunks/{task-create-IGILDV25.js → task-create-IH45HOFT.js} +6 -6
  93. package/chunks/{task-list-KBEJVAAG.js → task-list-FUB6JWSX.js} +5 -5
  94. package/chunks/{task-stop-WFTMQ6AC.js → task-stop-P6IOHQM3.js} +2 -2
  95. package/chunks/{task-update-UIVX7ZEV.js → task-update-RTUT7LJV.js} +6 -6
  96. package/chunks/{team-create-HRBV5ATK.js → team-create-D6GSPXCO.js} +28 -26
  97. package/chunks/{team-delete-LPOXDPVB.js → team-delete-RXGYRMHC.js} +5 -5
  98. package/chunks/{todoWrite-R4RIJKOD.js → todoWrite-O6JK24G6.js} +4 -4
  99. package/chunks/{tool-search-67HI54YA.js → tool-search-6YIMUUVD.js} +9 -8
  100. package/chunks/{web-fetch-JU7SS6KE.js → web-fetch-KUMBROUI.js} +4 -4
  101. package/chunks/{workflow-W4SCLWLU.js → workflow-ML3XFTCN.js} +557 -97
  102. package/chunks/{write-file-TLNXC2NR.js → write-file-VLT6ODLK.js} +24 -22
  103. package/chunks/{zh-QXLZV2PX.js → zh-3RMSEO5M.js} +48 -0
  104. package/chunks/{zh-TW-3OKU7LDA.js → zh-TW-R7WRLTJS.js} +48 -0
  105. package/cli.js +8559 -5100
  106. package/locales/en.js +69 -0
  107. package/locales/zh-TW.js +66 -0
  108. package/locales/zh.js +66 -0
  109. package/package.json +3 -2
  110. package/web-shell/assets/{arc-CRFN10gD.js → arc-DHUeMnnj.js} +1 -1
  111. package/web-shell/assets/{architectureDiagram-3BPJPVTR-IRlu1CpH.js → architectureDiagram-3BPJPVTR-DlX12yyj.js} +1 -1
  112. package/web-shell/assets/{blockDiagram-GPEHLZMM-htIZ6iw8.js → blockDiagram-GPEHLZMM-DTFUXMUT.js} +1 -1
  113. package/web-shell/assets/{c4Diagram-AAUBKEIU-A2GoRq3O.js → c4Diagram-AAUBKEIU-CWdB54fk.js} +1 -1
  114. package/web-shell/assets/channel-C3WhMjjP.js +1 -0
  115. package/web-shell/assets/{chunk-2J33WTMH-CdP2AC6u.js → chunk-2J33WTMH-CF5C5jNR.js} +1 -1
  116. package/web-shell/assets/{chunk-4BX2VUAB-DrA07nW2.js → chunk-4BX2VUAB-Cw7Ydfji.js} +1 -1
  117. package/web-shell/assets/{chunk-55IACEB6-CFGnVU2f.js → chunk-55IACEB6-CnbI1ZCw.js} +1 -1
  118. package/web-shell/assets/{chunk-727SXJPM-BTMkq3Tk.js → chunk-727SXJPM-DmSy00Pe.js} +1 -1
  119. package/web-shell/assets/{chunk-AQP2D5EJ-C9sYg04Z.js → chunk-AQP2D5EJ-DgNgXqBu.js} +1 -1
  120. package/web-shell/assets/{chunk-FMBD7UC4-Cag-cj6I.js → chunk-FMBD7UC4-tz2IvOXv.js} +1 -1
  121. package/web-shell/assets/{chunk-ND2GUHAM-CDSTFoR7.js → chunk-ND2GUHAM-DaBLEBPa.js} +1 -1
  122. package/web-shell/assets/{chunk-QZHKN3VN-CN9Z6oOs.js → chunk-QZHKN3VN-DVCQST3O.js} +1 -1
  123. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ6TXPif.js +1 -0
  124. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ6TXPif.js +1 -0
  125. package/web-shell/assets/{cose-bilkent-S5V4N54A-DuN9j8Du.js → cose-bilkent-S5V4N54A-CAKTcdCQ.js} +1 -1
  126. package/web-shell/assets/{dagre-BM42HDAG-ByCWe45f.js → dagre-BM42HDAG-BdkBwlKg.js} +1 -1
  127. package/web-shell/assets/{diagram-2AECGRRQ-eWyU_pKZ.js → diagram-2AECGRRQ-DYt3G65F.js} +1 -1
  128. package/web-shell/assets/{diagram-5GNKFQAL-0Bfu3Fq5.js → diagram-5GNKFQAL-BWvROWjY.js} +1 -1
  129. package/web-shell/assets/{diagram-KO2AKTUF-B6KBKkQP.js → diagram-KO2AKTUF-BvvgwIaQ.js} +1 -1
  130. package/web-shell/assets/{diagram-LMA3HP47-TToDmeA_.js → diagram-LMA3HP47-E7NLSNKg.js} +1 -1
  131. package/web-shell/assets/{diagram-OG6HWLK6-CQCkC2Yx.js → diagram-OG6HWLK6-CYmUBgpE.js} +1 -1
  132. package/web-shell/assets/{erDiagram-TEJ5UH35-Cm9ls1iB.js → erDiagram-TEJ5UH35-BU5gY30h.js} +1 -1
  133. package/web-shell/assets/{flowDiagram-I6XJVG4X-Dyoz80Pv.js → flowDiagram-I6XJVG4X-V_ZssSZ9.js} +1 -1
  134. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Cfut9yaU.js → ganttDiagram-6RSMTGT7-QIShlsdI.js} +1 -1
  135. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BCuJdlfD.js → gitGraphDiagram-PVQCEYII-DJxdu2YS.js} +1 -1
  136. package/web-shell/assets/index-BPnhI7gl.css +1 -0
  137. package/web-shell/assets/index-De4rqTsW.js +706 -0
  138. package/web-shell/assets/{infoDiagram-5YYISTIA-CXKxF2VL.js → infoDiagram-5YYISTIA-BqjdrFeO.js} +1 -1
  139. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DE7HWSU8.js → ishikawaDiagram-YF4QCWOH-BP_a2YZ2.js} +1 -1
  140. package/web-shell/assets/{journeyDiagram-JHISSGLW-D__YUfds.js → journeyDiagram-JHISSGLW-BXg-S3Lk.js} +1 -1
  141. package/web-shell/assets/{kanban-definition-UN3LZRKU-D82R169M.js → kanban-definition-UN3LZRKU-BksAkdEJ.js} +1 -1
  142. package/web-shell/assets/{linear-DpyMbKqT.js → linear-D2m9-ODE.js} +1 -1
  143. package/web-shell/assets/{mermaid.core-D1KEFDhn.js → mermaid.core-dTtkZp2F.js} +5 -5
  144. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BwVUFGFE.js → mindmap-definition-RKZ34NQL-Bft9my8O.js} +1 -1
  145. package/web-shell/assets/{pieDiagram-4H26LBE5-BO_qoEGx.js → pieDiagram-4H26LBE5-Cw8S-alZ.js} +1 -1
  146. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Cx0ZaWPo.js → quadrantDiagram-W4KKPZXB-DaDoTMts.js} +1 -1
  147. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BJPXejOA.js → requirementDiagram-4Y6WPE33-Cp5kSpwj.js} +1 -1
  148. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C1xeIL9i.js → sankeyDiagram-5OEKKPKP-CW8RsJJZ.js} +1 -1
  149. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CSYKQUjf.js → sequenceDiagram-3UESZ5HK-DTfpIiJK.js} +1 -1
  150. package/web-shell/assets/{stateDiagram-AJRCARHV-d9hiHlAW.js → stateDiagram-AJRCARHV-DixFVzEs.js} +1 -1
  151. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DZgE04s3.js +1 -0
  152. package/web-shell/assets/{timeline-definition-PNZ67QCA-BhCBkq8k.js → timeline-definition-PNZ67QCA-DYsbXn5l.js} +1 -1
  153. package/web-shell/assets/{vennDiagram-CIIHVFJN-DPPFWp_y.js → vennDiagram-CIIHVFJN-HUpRpuUp.js} +1 -1
  154. package/web-shell/assets/{wardley-L42UT6IY-CcOUIgXY.js → wardley-L42UT6IY-cT3nQH_T.js} +1 -1
  155. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-p7oR5X7r.js → wardleyDiagram-YWT4CUSO-Dmm7J6Qc.js} +1 -1
  156. package/web-shell/assets/{xychartDiagram-2RQKCTM6-Dfr7-SEy.js → xychartDiagram-2RQKCTM6-CX0L5p9C.js} +1 -1
  157. package/web-shell/index.html +3 -3
  158. package/chunks/chunk-77WXWU44.js +0 -26
  159. package/chunks/contextCommand-3327KUC4.js +0 -54
  160. package/web-shell/assets/channel-WwImfsc7.js +0 -1
  161. package/web-shell/assets/classDiagram-4FO5ZUOK-CJKQYFeJ.js +0 -1
  162. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CJKQYFeJ.js +0 -1
  163. package/web-shell/assets/index-BDZiTAkl.css +0 -1
  164. package/web-shell/assets/index-DaebdpHq.js +0 -516
  165. 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` | string | The format of the CLI output. | `"text"` | `"text"`, `"json"` |
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. | `true` |
246
- | `context.fileFiltering.enableRecursiveFileSearch` | boolean | Whether to enable searching recursively for filenames under the current tree when completing `@` prefixes in the prompt. | `true` |
247
- | `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` |
248
- | `context.clearContextOnIdle.toolResultsThresholdMinutes` | number | Minutes of inactivity before clearing old tool result content. Use `-1` to disable the idle trigger. | `60` |
249
- | `context.clearContextOnIdle.toolResultsNumToKeep` | number | Number of most-recent compactable tool results to preserve when clearing. Floor at 1. | `5` |
250
- | `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` |
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 `.qwenignore`:** Create a `.qwenignore` 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.
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](/developers/development/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](/developers/development/telemetry). | | |
644
- | `--telemetry-target` | | Sets the telemetry target. | | See [telemetry](/developers/development/telemetry) for more information. |
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 using the `/memory show` command. The typical loading order is:
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 Import Processor documentation](../configuration/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 refresh` to force a re-scan and reload of all context files from all configured locations. This updates the AI's instructional context.
707
- - Use `/memory show` to display the combined instructional context currently loaded, allowing you to verify the hierarchy and content being used by the AI.
708
- - See the [Commands documentation](../features/commands) for full details on the `/memory` command and its sub-commands (`show` and `refresh`).
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":` configuration setting.
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, Gemini CLI 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.
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 [extensions.md](extension.md).
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](./cli/configuration.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.
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](./cli/commands.md#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.
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](/users/features/sub-agents), 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.
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](/users/configuration/settings):
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](/users/features/sub-agents) handle focused subtasks within your session — better when you don't need model comparison
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)](../../developers/architecture)
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](/developers/channel-plugins) for the `ChannelPlugin` interface, the `Envelope` format, and extension points.
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/settings#environment-variables-for-api-access) - Setup authentication
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-cli))
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. Open MCP management dialog to view and manage servers:
33
+ 2. Start Qwen Code and open the MCP management dialog to view and manage
34
+ servers:
34
35
 
35
36
  ```bash
36
- qwen mcp
37
+ qwen
37
38
  ```
38
39
 
39
- 3. Restart Qwen Code in the same project (or start it if it wasn’t running yet), then ask the model to use tools from that server.
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
- - **Project scope (default)**: `.qwen/settings.json` in your project root
46
- - **User scope**: `~/.qwen/settings.json` across all projects on your machine
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 project scope by default):
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. As with prompts,
181
- the `resources` capability is not required to be declared.
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 resource
191
- URIs. On submit, the referenced resource is read and its contents are
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 securely** in `~/.qwen/mcp-oauth-tokens-v2.json` (AES-256-GCM encrypted), with keychain storage preferred when available
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
- Use the `/mcp auth` command within Qwen Code to manage OAuth authentication interactively.
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). | `project` | `-s user` |
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](/developers/examples/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](/developers/tools/sandbox).
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.compactMode) — toggle with `Ctrl+O`; the summary replaces the generic tool-group header when compact mode is on.
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.