@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260630.e00fe6a27

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 (286) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +21 -7
  3. package/bundled/loop/SKILL.test.ts +41 -0
  4. package/bundled/loop/loop-task-file.test.ts +1064 -0
  5. package/bundled/loop/loop-task-file.ts +404 -0
  6. package/bundled/loop/loop-tick-resolver.test.ts +665 -0
  7. package/bundled/loop/loop-tick-resolver.ts +347 -0
  8. package/bundled/qc-helper/SKILL.md +26 -19
  9. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  10. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  11. package/bundled/qc-helper/docs/configuration/settings.md +76 -75
  12. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  13. package/bundled/qc-helper/docs/features/commands.md +108 -77
  14. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  15. package/bundled/qc-helper/docs/features/memory.md +52 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  17. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  18. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
  19. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
  20. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
  21. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
  22. package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
  23. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
  24. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
  25. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  26. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  27. package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
  28. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  29. package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
  30. package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
  31. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  32. package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
  33. package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
  34. package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
  35. package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
  36. package/chunks/chunk-5GOVVXEV.js +73 -0
  37. package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
  38. package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
  39. package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
  40. package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
  41. package/chunks/chunk-7UNP2XM7.js +840 -0
  42. package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
  43. package/chunks/chunk-BC3C4F3Q.js +40 -0
  44. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  45. package/chunks/chunk-BMFMJINR.js +45 -0
  46. package/chunks/chunk-BOJWHRMX.js +11273 -0
  47. package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
  48. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  49. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  50. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  51. package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
  52. package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
  53. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  54. package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
  55. package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
  56. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  57. package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
  58. package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
  59. package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
  60. package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
  61. package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
  62. package/chunks/chunk-HEVBZSXG.js +4923 -0
  63. package/chunks/chunk-HFQ2XSE7.js +690 -0
  64. package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
  65. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  66. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  67. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  68. package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
  69. package/chunks/chunk-K5XU6E4T.js +167 -0
  70. package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
  71. package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
  72. package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
  73. package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
  74. package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
  75. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  76. package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
  77. package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
  78. package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
  79. package/chunks/chunk-NDOC6M5S.js +481 -0
  80. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  81. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  82. package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
  83. package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
  84. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  85. package/chunks/chunk-QYUE6W3T.js +123 -0
  86. package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
  87. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  88. package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
  89. package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
  90. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  91. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  92. package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
  93. package/chunks/chunk-SMXULRAN.js +37 -0
  94. package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
  95. package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
  96. package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
  97. package/chunks/chunk-UAKXW3DN.js +30 -0
  98. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  99. package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
  100. package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
  101. package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
  102. package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
  103. package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
  104. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  105. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  106. package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
  107. package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
  108. package/chunks/chunk-YTFBURQD.js +313 -0
  109. package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
  110. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  111. package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
  112. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
  113. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  114. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  115. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  116. package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
  117. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  118. package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
  119. package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
  120. package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
  121. package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
  122. package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
  123. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
  124. package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
  125. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  126. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
  127. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
  128. package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
  129. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
  130. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
  131. package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
  132. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
  133. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  134. package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
  135. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
  136. package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
  137. package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
  138. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
  139. package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
  140. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  141. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  142. package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
  143. package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
  144. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
  145. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  146. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  147. package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
  148. package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
  149. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
  150. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
  151. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  152. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
  153. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
  154. package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
  155. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  156. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
  157. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  158. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
  159. package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
  160. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  161. package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
  162. package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
  163. package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
  164. package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
  165. package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
  166. package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
  167. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
  168. package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
  169. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
  170. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  171. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  172. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  173. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  174. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  175. package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
  176. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  177. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
  178. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  179. package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
  180. package/chunks/trustedFolders-F7TBU5CD.js +76 -0
  181. package/chunks/types-QX5C3CHJ.js +12 -0
  182. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
  183. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
  184. package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
  185. package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
  186. package/chunks/workspace-service-VTG4G6CW.js +75 -0
  187. package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
  188. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  189. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  190. package/cli-entry.js +20 -9
  191. package/cli.js +6 -6
  192. package/locales/ca.js +2 -0
  193. package/locales/de.js +2 -0
  194. package/locales/en.js +14 -0
  195. package/locales/fr.js +2 -0
  196. package/locales/ja.js +1 -0
  197. package/locales/pt.js +2 -0
  198. package/locales/ru.js +2 -0
  199. package/locales/zh-TW.js +12 -0
  200. package/locales/zh.js +12 -0
  201. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  202. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  203. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  204. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  205. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  206. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  208. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  209. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  210. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  211. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  212. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  213. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  214. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  215. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  216. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  217. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  218. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  219. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  220. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  221. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  222. package/package.json +18 -6
  223. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  224. package/postinstall.js +50 -0
  225. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
  226. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
  227. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
  228. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
  229. package/web-shell/assets/channel-CbzRbdpA.js +1 -0
  230. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
  231. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
  232. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
  233. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
  234. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
  235. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
  236. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
  237. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
  238. package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
  239. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
  240. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
  241. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
  242. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  243. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
  244. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
  245. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
  246. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
  247. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
  248. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
  249. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
  250. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
  251. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
  252. package/web-shell/assets/index-B3XUm7dw.js +713 -0
  253. package/web-shell/assets/index-CHmzAWys.css +5 -0
  254. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
  255. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  256. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
  257. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
  258. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
  259. package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
  260. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
  261. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
  262. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
  263. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
  264. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  265. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
  266. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
  267. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
  268. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
  269. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
  270. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
  271. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
  272. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-B6HQGTYR.js +0 -410
  277. package/chunks/chunk-R2BXK7SX.js +0 -13
  278. package/chunks/chunk-RKIZXJMB.js +0 -13
  279. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  280. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  281. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  282. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  283. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  284. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  285. package/web-shell/assets/index-oVK7qhre.css +0 -5
  286. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -22,9 +22,9 @@ These commands help you save, restore, and summarize work progress.
22
22
  | ---------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------- |
23
23
  | `/init` | Analyze current directory and create initial context file | `/init` |
24
24
  | `/summary` | Generate project summary based on conversation history | `/summary` |
25
- | `/compress` | Replace chat history with summary to save Tokens | `/compress` |
25
+ | `/compress` | Replace chat history with summary to save Tokens | `/compress` or `/summarize` |
26
26
  | `/compress-fast` | Fast compression without AI — strips old tool outputs and thinking parts | `/compress-fast` |
27
- | `/resume` | Resume a previous conversation session | `/resume` |
27
+ | `/resume` | Resume a previous conversation session | `/resume` or `/continue` |
28
28
  | `/recap` | Generate a one-line session recap now | `/recap` |
29
29
  | `/restore` | Revert project files to the checkpoint before a tool call ran | `/restore` (list) or `/restore <ID>` |
30
30
  | `/delete` | Delete a previous session | `/delete` |
@@ -34,26 +34,30 @@ These commands help you save, restore, and summarize work progress.
34
34
  | `/export` | Export session history to file | `/export html`, `/export md`, `/export json`, `/export jsonl` |
35
35
  | `/rename` | Rename or tag the current session | `/rename My Feature` or `/tag` |
36
36
 
37
+ > [!note]
38
+ >
39
+ > `/summarize` is an alias for `/compress` (it compresses chat history — a destructive operation). To generate a non-destructive project summary instead, use `/summary`.
40
+
37
41
  ### 1.2 Interface and Workspace Control
38
42
 
39
43
  Commands for adjusting interface appearance and work environment.
40
44
 
41
- | Command | Description | Usage Examples |
42
- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
43
- | `/clear` | Clear terminal screen content | `/clear` (shortcut: `Ctrl+L`) |
44
- | `/context` | Show context window usage breakdown | `/context` |
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` |
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` |
48
- | `/theme` | Change Qwen Code visual theme | `/theme` |
49
- | `/vim` | Turn input area Vim editing mode on/off | `/vim` |
50
- | `/voice` | Toggle voice dictation input | `/voice`, `/voice status` |
51
- | `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests` |
52
- | `/cd` | Move this session to a new working directory | `/cd ../other-project` |
53
- | `/editor` | Open dialog to select supported editor | `/editor` |
54
- | `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline` |
55
- | `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch` |
56
- | `/terminal-setup` | Configure terminal keybindings for multiline input | `/terminal-setup` |
45
+ | Command | Description | Usage Examples |
46
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
47
+ | `/clear` | Clear conversation history and free up context | `/clear`, `/reset`, `/new` |
48
+ | `/context` | Show context window usage breakdown | `/context` |
49
+ | → `detail` | Show per-item context usage breakdown | `/context detail` |
50
+ | `/history` | Control history display preferences and visibility | `/history collapse-on-resume`, `/history expand-on-resume`, `/history expand-now` |
51
+ | `/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` |
52
+ | `/theme` | Change Qwen Code visual theme | `/theme` |
53
+ | `/vim` | Turn input area Vim editing mode on/off | `/vim` |
54
+ | `/voice` | Toggle voice dictation input | `/voice`, `/voice hold`, `/voice tap`, `/voice off`, `/voice status` |
55
+ | `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests`, `/dir show` |
56
+ | `/cd` | Move this session to a new working directory | `/cd ../other-project` |
57
+ | `/editor` | Open dialog to select supported editor | `/editor` |
58
+ | `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline` |
59
+ | `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch` |
60
+ | `/terminal-setup` | Configure terminal keybindings for multiline input | `/terminal-setup` |
57
61
 
58
62
  ### 1.3 Language Settings
59
63
 
@@ -72,36 +76,52 @@ Commands specifically for controlling interface and output language.
72
76
 
73
77
  Commands for managing AI tools and models.
74
78
 
75
- | Command | Description | Usage Examples |
76
- | ---------------- | --------------------------------------------- | --------------------------------------------- |
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` |
79
- | `/tools` | Display currently available tool list | `/tools`, `/tools desc` |
80
- | `/skills` | List and run available skills | `/skills`, `/skills <name>` |
81
- | `/plan` | Switch to plan mode or exit plan mode | `/plan`, `/plan <task>`, `/plan exit` |
82
- | `/approval-mode` | Change approval mode for tool usage | `/approval-mode <mode (auto-edit)> --project` |
83
- | →`plan` | Analysis only, no execution | Secure review |
84
- | →`default` | Require approval for edits | Daily use |
85
- | →`auto-edit` | Automatically approve edits | Trusted environment |
86
- | →`auto` | Classifier-evaluated approval | Autonomous sessions with safety guardrails |
87
- | →`yolo` | Automatically approve all | Quick prototyping |
88
- | `/model` | Switch model used in current session | `/model`, `/model <model-id>` (switch immediately) |
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>` |
91
- | `/extensions` | List all active extensions in current session | `/extensions` |
92
- | `/memory` | Open the Memory Manager dialog | `/memory` |
93
- | `/remember` | Save a durable memory | `/remember Prefer terse responses` |
94
- | `/forget` | Remove matching entries from auto-memory | `/forget <query>` |
95
- | `/dream` | Manually run auto-memory consolidation | `/dream` |
96
- | `/hooks` | Manage Qwen Code hooks | `/hooks`, `/hooks list` |
97
- | `/permissions` | Manage permission rules | `/permissions` |
98
- | `/agents` | Manage subagents | `/agents manage`, `/agents create` |
99
- | `/arena` | Manage Arena sessions | `/arena start`, `/arena status` |
100
- | `/goal` | Set a goal — keep working until condition met | `/goal <condition>`, `/goal clear` |
101
- | `/tasks` | List background tasks | `/tasks` |
102
- | `/workflows` | Inspect workflow runs | `/workflows`, `/workflows <runId>` |
103
- | `/lsp` | Show LSP server status | `/lsp` |
104
- | `/trust` | Manage folder trust settings | `/trust` |
79
+ | Command | Description | Usage Examples |
80
+ | ---------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
81
+ | `/mcp` | List configured MCP servers and tools | `/mcp`, `/mcp desc`, `/mcp nodesc`, `/mcp schema` |
82
+ | `/import-config` | Import MCP servers from Claude configs | `/import-config all`, `/import-config claude-code`, `/import-config claude-desktop --scope user\|project` |
83
+ | `/tools` | Display currently available tool list | `/tools`, `/tools desc` |
84
+ | `/skills` | List and run available skills | `/skills`, `/skills <name>` |
85
+ | `/plan` | Switch to plan mode or exit plan mode | `/plan`, `/plan <task>`, `/plan exit` |
86
+ | `/approval-mode` | Change the tool-approval mode (current session only) | `/approval-mode`, `/approval-mode auto-edit` |
87
+ | → `plan` | Analysis only, no execution (secure review) | `/approval-mode plan` |
88
+ | → `default` | Require approval for edits (daily use) | `/approval-mode default` |
89
+ | → `auto-edit` | Auto-approve edits (trusted environment) | `/approval-mode auto-edit` |
90
+ | → `auto` | Classifier-evaluated approval (autonomous) | `/approval-mode auto` |
91
+ | → `yolo` | Auto-approve everything (quick prototyping) | `/approval-mode yolo` |
92
+ | `/model` | Switch model used in current session | `/model`, `/model <model-id>` (switch immediately) |
93
+ | `/model --fast` | Set a lighter model for prompt suggestions | `/model --fast qwen3-coder-flash` |
94
+ | `/model --voice` | Set the model used for voice transcription | `/model --voice <model-id>` |
95
+ | `/extensions` | Manage extensions | `/extensions list`, `/extensions manage` |
96
+ | `list` | List installed extensions | `/extensions list` |
97
+ | `manage` | Manage installed extensions (interactive) | `/extensions manage` |
98
+ | `explore` | Open extensions page in browser | `/extensions explore <Gemini\|ClaudeCode>` |
99
+ | `install` | Install an extension from a git repo or path | `/extensions install <repo-or-path>` |
100
+ | `/memory` | Open the Memory Manager dialog | `/memory` |
101
+ | `/remember` | Save a durable memory | `/remember Prefer terse responses` |
102
+ | `/forget` | Remove matching entries from auto-memory | `/forget <query>` |
103
+ | `/dream` | Manually run auto-memory consolidation | `/dream` |
104
+ | `/hooks` | Manage Qwen Code hooks | `/hooks`, `/hooks list` |
105
+ | `/permissions` | Manage permission rules | `/permissions` |
106
+ | `/agents` | Manage subagents | `/agents manage`, `/agents create` |
107
+ | `/arena` | Manage Arena sessions | `/arena start`, `/arena stop`, `/arena status`, `/arena select` (alias `choose`) |
108
+ | `/goal` | Set a goal — keep working until condition met | `/goal <condition>`, `/goal clear` |
109
+ | `/tasks` | List background tasks | `/tasks` |
110
+ | `/workflows` | Inspect workflow runs | `/workflows`, `/workflows <runId>` |
111
+ | `/lsp` | Show LSP server status | `/lsp` |
112
+ | `/trust` | Manage folder trust settings | `/trust` |
113
+
114
+ > [!warning]
115
+ >
116
+ > Only install extensions (`/extensions install`) from sources you trust. Extensions can bundle MCP servers, skills, and commands that run with the same permissions as Qwen Code itself — they can access your files, API keys, and conversation data. `/extensions install` does not prompt for confirmation.
117
+
118
+ > [!warning]
119
+ >
120
+ > The `auto-edit`, `auto`, and `yolo` approval modes bypass approval prompts for tool executions. In `yolo` mode, all actions — including shell commands, file writes, and network requests — run without confirmation. Only use these modes in trusted, sandboxed, or disposable environments.
121
+
122
+ > [!note]
123
+ >
124
+ > `/workflows`, `/lsp`, and `/trust` are registered only when their feature is enabled — via the `QWEN_CODE_ENABLE_WORKFLOWS=1` env var, the `--experimental-lsp` CLI flag, and the `security.folderTrust.enabled` setting respectively. When disabled they won't appear and will report an unknown command.
105
125
 
106
126
  ### 1.5 Built-in Skills
107
127
 
@@ -291,43 +311,54 @@ In headless (`--prompt`) or non-interactive contexts, `/diff` prints a plain-tex
291
311
 
292
312
  Commands for obtaining information and performing system settings.
293
313
 
294
- | Command | Description | Usage Examples |
295
- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
296
- | `/help` | Display help information for available commands | `/help` or `/?` |
297
- | `/status` | Display version information | `/status` or `/about` |
298
- | `/status paths` | Display current session file and log paths | `/status paths` |
299
- | `/stats` | Open interactive usage statistics dashboard with three tabs: Session (live metrics), Activity (heatmap, token trend, project ranking), and Efficiency (cache rate, tool leaderboard, model comparison). Use `tab` to switch tabs, `r` to cycle time ranges, `←→` to pan months, `esc` to close. | `/stats` |
300
- | `/stats model` | Show per-model token breakdown and estimated cost | `/stats model` |
301
- | `/stats tools` | Show per-tool call counts | `/stats tools` |
302
- | `/settings` | Open settings editor | `/settings` |
303
- | `/auth` | Change authentication method | `/auth` |
304
- | `/doctor` | Run installation and environment diagnostics | `/doctor`, `/doctor memory` |
305
- | `/docs` | Open full Qwen Code documentation in browser | `/docs` |
306
- | `/ide` | Manage IDE integration | `/ide status`, `/ide install` |
307
- | `/insight` | Generate programming insights from chat history | `/insight` |
308
- | `/setup-github` | Set up GitHub Actions | `/setup-github` |
309
- | `/bug` | Submit issue about Qwen Code | `/bug Button click unresponsive` |
310
- | `/copy` | Copy AI output to clipboard (`/copy N` = Nth-last AI message) | `/copy` or `/copy 2` |
311
- | `/quit` | Exit Qwen Code immediately | `/quit` or `/exit` |
314
+ | Command | Description | Usage Examples |
315
+ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
316
+ | `/help` | Display help information for available commands | `/help` or `/?` |
317
+ | `/status` | Display version information | `/status` or `/about` |
318
+ | `/status paths` | Display current session file and log paths | `/status paths` |
319
+ | `/stats` | Open the interactive usage statistics dashboard (Session, Activity, and Efficiency tabs) | `/stats` or `/usage` |
320
+ | `/stats model` | Show per-model token breakdown and estimated cost | `/stats model` |
321
+ | `/stats tools` | Show per-tool call counts | `/stats tools` |
322
+ | `/stats skills` | Show per-skill call counts for the current live session (live only; excludes cross-session daily/monthly activity) | `/stats skills` |
323
+ | `/stats daily` | Show daily token usage statistics | `/stats daily` (alias `day`), `/stats day [YYYY-MM-DD]` |
324
+ | `/stats monthly` | Show monthly token usage statistics | `/stats monthly` (alias `month`), `/stats month [YYYY-MM]` |
325
+ | `/stats export` | Export usage statistics to CSV or JSON | `/stats export <daily\|monthly> [date\|month] [--format csv\|json] [--output path]` |
326
+ | `/settings` | Open settings editor | `/settings` |
327
+ | `/auth` | Change authentication method | `/auth`, `/connect`, `/login` |
328
+ | `/doctor` | Run installation and environment diagnostics | `/doctor`, `/doctor memory` |
329
+ | `memory` | Show current process memory diagnostics | `/doctor memory [--json] [--sample] [--snapshot]` |
330
+ | `cpu-profile` | Record a CPU profile for Chrome DevTools analysis | `/doctor cpu-profile [--duration <seconds>]` |
331
+ | `rollback` | Roll back the standalone CLI binary to the previous version (standalone installs only; for conversation history use `/rewind`) | `/doctor rollback` |
332
+ | `/docs` | Open full Qwen Code documentation in browser | `/docs` |
333
+ | `/ide` | Manage IDE integration | `/ide status`, `/ide install`, `/ide enable`, `/ide disable` |
334
+ | `/insight` | Generate programming insights from chat history | `/insight` |
335
+ | `/setup-github` | Set up GitHub Actions | `/setup-github` |
336
+ | `/bug` | Submit issue about Qwen Code | `/bug Button click unresponsive` |
337
+ | `/copy` | Copy to clipboard: reply (Nth-last), code (by lang), LaTeX, or Mermaid | `/copy`, `/copy 2`, `/copy python`, `/copy latex`, `/copy mermaid` |
338
+ | `/quit` | Exit Qwen Code immediately | `/quit` or `/exit` |
339
+
340
+ > [!warning]
341
+ >
342
+ > `/doctor memory --snapshot` writes a V8 heap snapshot that may contain prompts, file contents, API keys, and tool results from the current session. Review the file before sharing it.
312
343
 
313
344
  ### 1.10 Common Shortcuts
314
345
 
315
- | Shortcut | Function | Note |
316
- | ------------------ | ----------------------- | ---------------------- |
317
- | `Ctrl/cmd+L` | Clear screen | Equivalent to `/clear` |
318
- | `Ctrl/cmd+T` | Toggle tool description | MCP tool management |
319
- | `Ctrl/cmd+C`×2 | Exit confirmation | Secure exit mechanism |
320
- | `Ctrl/cmd+Z` | Undo input | Text editing |
321
- | `Ctrl/cmd+Shift+Z` | Redo input | Text editing |
346
+ | Shortcut | Function | Note |
347
+ | ------------------ | ----------------------- | ------------------------------------------------------------------------- |
348
+ | `Ctrl/cmd+L` | Clear screen | Clears the visible screen only (does not reset the session like `/clear`) |
349
+ | `Ctrl/cmd+T` | Toggle tool description | MCP tool management |
350
+ | `Ctrl/cmd+C`×2 | Exit confirmation | Secure exit mechanism |
351
+ | `Ctrl/cmd+Z` | Undo input | Text editing |
352
+ | `Ctrl/cmd+Shift+Z` | Redo input | Text editing |
322
353
 
323
354
  ### 1.11 Authentication Commands
324
355
 
325
356
  Use `/auth` inside a Qwen Code session to configure authentication. Use `/doctor` to inspect the current authentication and environment status.
326
357
 
327
- | Command | Description |
328
- | --------- | ------------------------------------------ |
329
- | `/auth` | Configure authentication interactively |
330
- | `/doctor` | Show authentication and environment checks |
358
+ | Command | Description |
359
+ | --------- | ---------------------------------------------------------------------- |
360
+ | `/auth` | Configure authentication interactively (aliases: `/connect`, `/login`) |
361
+ | `/doctor` | Show authentication and environment checks |
331
362
 
332
363
  > [!note]
333
364
  >
@@ -566,10 +566,15 @@ Hook output supports three categories of fields:
566
566
  ```json
567
567
  {
568
568
  "stop_hook_active": "boolean indicating if stop hook is active",
569
- "last_assistant_message": "the last message from the assistant"
569
+ "last_assistant_message": "the last message from the assistant",
570
+ "context_usage": "ratio of context window used (may exceed 1 when tokens exceed window; optional)",
571
+ "context_limit": "context window size in tokens (optional)",
572
+ "input_tokens": "prompt token count (may include output tokens depending on provider; optional)"
570
573
  }
571
574
  ```
572
575
 
576
+ The `context_usage`, `context_limit`, and `input_tokens` fields allow hook scripts to observe context usage and implement custom compact strategies — for example, a script that prints a reminder to run `/compact` when usage exceeds a custom threshold.
577
+
573
578
  **Output Options**:
574
579
 
575
580
  - `decision`: "allow", "deny", "block", or "ask"
@@ -116,6 +116,58 @@ You can also set them in `~/.qwen/settings.json` (applies to all projects) or `.
116
116
  }
117
117
  ```
118
118
 
119
+ ### Team memory (shared with collaborators)
120
+
121
+ By default, auto-memory is **private to you** — it lives under your home directory and is never shared. Team memory is an opt-in tier that the whole team shares **through git**.
122
+
123
+ When enabled, Qwen gains a third memory directory at `.qwen/team-memory/` **inside the repository**. It uses the same one-file-per-memory layout and `MEMORY.md` index as the private tiers. Because it is committed to the repo, it is shared with every collaborator the normal way: you `git pull` to receive teammates' memories and commit/push to share yours. Qwen routes durable, project-wide knowledge here — conventions every contributor must follow, shared reference pointers (trackers, dashboards) — while personal and fast-decaying notes stay private.
124
+
125
+ Enable it per project (or globally) in `settings.json`:
126
+
127
+ ```json
128
+ {
129
+ "memory": {
130
+ "enableTeamMemory": true
131
+ }
132
+ }
133
+ ```
134
+
135
+ It is **off by default**. Keep these caveats in mind:
136
+
137
+ - **It is source-controlled and visible to everyone with repo access.** Treat a team memory like committing to the repo.
138
+ - **Secrets are blocked.** Writes to `.qwen/team-memory/` are scanned for credentials (API keys, tokens, private keys); a detected secret is rejected, never written. The scan is a backstop, not a guarantee — don't put sensitive data there.
139
+ - **Changes are reviewable.** Team memory writes appear in `git status` / the PR diff like any other file, so they can be reviewed before they're committed. In the default approval mode Qwen also asks before each team write; in `AUTO_EDIT`/YOLO mode (where you've opted into auto-approval) they are applied without a prompt but still surface in the diff.
140
+ - **The directory must be git-tracked.** If your project's `.gitignore` excludes `.qwen/*`, re-include the path so it can be shared:
141
+
142
+ ```gitignore
143
+ !.qwen/team-memory/
144
+ !.qwen/team-memory/**
145
+ ```
146
+
147
+ Caveat: use the file-glob ignore form (`.qwen/*`), not a directory form with a trailing slash (`.qwen/`). A directory-form ignore makes git skip the folder entirely, so a `!`-reinclude below it is a no-op and the team tier stays silently empty in git. Qwen warns once at startup when the tier is enabled but its directory is git-ignored or outside any git repository, so this misconfiguration does not pass unnoticed.
148
+
149
+ `QWEN_CODE_MEMORY_TEAM=1` / `=0` overrides the setting for a single run.
150
+
151
+ ### Automatic git sync (optional)
152
+
153
+ By default you share team memory with the normal git workflow (`pull` to receive, `commit`/`push` to share). To have Qwen do it for you, enable sync:
154
+
155
+ ```json
156
+ {
157
+ "memory": {
158
+ "enableTeamMemory": true,
159
+ "enableTeamMemorySync": true
160
+ }
161
+ }
162
+ ```
163
+
164
+ When on, at session start Qwen best-effort syncs the `.qwen/team-memory/` directory: it rebuilds the shared `MEMORY.md` index, fast-forward-pulls collaborators' updates **first**, then commits your team-memory changes on top, and pushes **only that sync commit** (via an explicit single-branch refspec) — so the index you load reflects the latest. It only **stages** the team directory (your other working changes are never committed), and never blocks the session on a git failure. Off by default. `QWEN_CODE_MEMORY_TEAM_SYNC=1` / `=0` overrides the setting for a single run.
165
+
166
+ Two things to know before enabling it:
167
+
168
+ - **The fast-forward pull acts on your whole current branch, not just `.qwen/team-memory/`** (git has no path-scoped pull). So sync will fast-forward your branch to the remote tip. The push, by contrast, is scoped: it publishes **only the commit this sync just created**, so it never pushes other unpushed commits you have — if your branch is already ahead of upstream, sync commits locally and skips the push. Enable it on branches where the fast-forward pull is fine — or run it on a dedicated checkout.
169
+ - **A diverged branch is left untouched** (`--ff-only` never merges). When that happens sync simply does nothing that session; resolve the divergence (`git pull`) and it resumes. A branch with no upstream (no tracking configuration) still commits locally but skips the push — there is nowhere to push to.
170
+
119
171
  ---
120
172
 
121
173
  ## Commands
@@ -86,9 +86,31 @@ The daemon also exposes read-only runtime snapshots for client UIs and
86
86
  operators: `GET /daemon/status`, `GET /workspace/mcp`,
87
87
  `GET /workspace/skills`, `GET /workspace/providers`, `GET /workspace/env`,
88
88
  `GET /workspace/preflight`,
89
- `GET /session/:id/context`, `GET /session/:id/supported-commands`, and
89
+ `GET /session/:id/status`, `GET /session/:id/context`,
90
+ `GET /session/:id/supported-commands`, and
90
91
  `GET /session/:id/tasks`, and `GET /session/:id/lsp`.
91
92
 
93
+ `GET /session/:id/status` returns the live bridge summary for a single session:
94
+ `sessionId`, `workspaceCwd`, `createdAt`, optional `displayName`, `clientCount`,
95
+ and `hasActivePrompt`. It answers `200` with the summary when the daemon holds a
96
+ live session with that id, and `404` (body `{ "error": …, "sessionId": … }`)
97
+ otherwise. Use it to poll whether one known session is still running
98
+ (`hasActivePrompt`) or how many clients are attached (`clientCount`) without
99
+ fetching and scanning the whole paginated session list:
100
+
101
+ ```bash
102
+ curl http://127.0.0.1:4170/session/$SESSION_ID/status
103
+ # → {"sessionId":"…","workspaceCwd":"…","createdAt":"…","clientCount":1,"hasActivePrompt":false}
104
+ ```
105
+
106
+ This is the raw live-session view, so `clientCount` and `hasActivePrompt` match
107
+ the corresponding entry in `GET /workspace/:id/sessions` — but the two routes
108
+ are not byte-identical. The list endpoint enriches each item with persisted
109
+ session-store data: its `createdAt` is the persisted first-prompt time, and it
110
+ adds `updatedAt` plus a `displayName` derived from the stored title or first
111
+ prompt. `/status` instead reports the live session's own `createdAt`, omits
112
+ `updatedAt`, and returns `displayName` only when one is set on the live session.
113
+
92
114
  `GET /session/:id/lsp` returns structured per-session LSP status. Start the
93
115
  daemon with `--experimental-lsp` to enable LSP in spawned agent sessions;
94
116
  otherwise the route returns `enabled: false` with no servers.
@@ -238,7 +260,7 @@ The token comparison is constant-time (SHA-256 + `crypto.timingSafeEqual`); 401
238
260
  | `--http-bridge` | `true` | Stage 1 mode: one `qwen --acp` child per daemon (bound to one workspace at boot, per [#3803](https://github.com/QwenLM/qwen-code/issues/3803) §02); N sessions multiplex onto that child via ACP `newSession()`. Stage 2 native in-process becomes available later. |
239
261
  | `--allow-origin <pat>` | — | T2.4 ([#4514](https://github.com/QwenLM/qwen-code/issues/4514)). Cross-origin allowlist for browser webui clients. Repeatable. Each value is `*` (any origin — boot refuses if no bearer token is configured; `--require-auth` on loopback is recommended so `/health` and `/demo` are also bearer-gated, since both are pre-auth on loopback by default) or a canonical URL origin (`<scheme>://<host>[:<port>]`, no trailing slash / path / userinfo / query). **Subdomain wildcards (`https://*.example.com`) are intentionally unsupported** — list each subdomain explicitly, or use `*` with a configured token (and `--require-auth` for full hardening). Matched origins receive CORS response headers (`Access-Control-Allow-Origin`, `Vary: Origin`, methods, headers, max-age, and exposed `Retry-After`); unmatched origins still get a 403 with the same envelope as today's wall. `Origin: null` (sandboxed iframes, file:// docs) is always rejected, even under `*`. Pre-flight via `caps.features.allow_origin`. Loopback self-origin hits are unaffected. |
240
262
  | `--web` / `--no-web` | `true` | Serve the built Web Shell SPA at the daemon root (`GET /`, `/assets/*`, and SPA deep-link fallback). The static shell is registered **before** the bearer-auth gate — a browser can't attach a token to a `<script>` subresource or an address-bar navigation, the shell carries no secrets, and every API route stays token-gated regardless. On non-loopback binds a one-line stderr warning notes the UI is reachable without auth. Use `--no-web` for an API-only daemon. No effect when the build omits the Web Shell assets (the daemon logs a breadcrumb and runs API-only). |
241
- | `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
263
+ | `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
242
264
 
243
265
  > **Sizing the load knobs.** `--max-sessions` is the **new-child** cap.
244
266
  > Three other layers also limit load — when sizing for a high-concurrency
@@ -4,11 +4,12 @@ Qwen Code is an open-source AI coding assistant tool maintained by the Qwen Code
4
4
 
5
5
  ## How to determine your authentication method
6
6
 
7
- Qwen Code supports three authentication methods to access AI models. Your authentication method determines which terms of service and privacy policies apply to your usage:
7
+ Qwen Code supports four authentication methods to access AI models. Your authentication method determines which terms of service and privacy policies apply to your usage:
8
8
 
9
9
  1. **Qwen OAuth** — Log in with your qwen.ai account (free tier discontinued 2026-04-15)
10
10
  2. **Alibaba Cloud Coding Plan** — Use an API key from Alibaba Cloud
11
11
  3. **API Key** — Bring your own API key
12
+ 4. **Vertex AI** — Use Google Cloud Vertex AI
12
13
 
13
14
  For each authentication method, different Terms of Service and Privacy Notices may apply depending on the underlying service provider.
14
15
 
@@ -17,6 +18,7 @@ For each authentication method, different Terms of Service and Privacy Notices m
17
18
  | Qwen OAuth | Qwen AI | [Qwen Terms of Service](https://qwen.ai/termsservice) | [Qwen Privacy Policy](https://qwen.ai/privacypolicy) |
18
19
  | Alibaba Cloud Coding Plan | Alibaba Cloud | See [details below](#2-if-you-are-using-alibaba-cloud-coding-plan) | See [details below](#2-if-you-are-using-alibaba-cloud-coding-plan) |
19
20
  | API Key | Various Providers | Depends on your chosen API provider (OpenAI, Anthropic, etc.) | Depends on your chosen API provider |
21
+ | Vertex AI | Google Cloud | [Google Cloud Terms](https://cloud.google.com/terms) | [Google Cloud Privacy](https://cloud.google.com/privacy) |
20
22
 
21
23
  ## 1. If you are using Qwen OAuth Authentication
22
24
 
@@ -50,6 +52,14 @@ When you authenticate using API keys from other providers, the applicable Terms
50
52
 
51
53
  Qwen Code supports various OpenAI-compatible providers. Please refer to your specific provider's terms of service and privacy policy for detailed information.
52
54
 
55
+ ## 4. If you are using Vertex AI
56
+
57
+ When you authenticate with Google Cloud Vertex AI, the applicable Terms of Service and Privacy Notice are Google Cloud's.
58
+
59
+ > [!important]
60
+ >
61
+ > When using Vertex AI, you are subject to [Google Cloud's Terms of Service](https://cloud.google.com/terms) and [Google Cloud Privacy Notice](https://cloud.google.com/privacy), not Qwen Code's terms. Please review Google Cloud's documentation for specific details about data usage, retention, and privacy practices.
62
+
53
63
  ## Usage Statistics and Telemetry
54
64
 
55
65
  Qwen Code may collect anonymous usage statistics and [telemetry](../../developers/development/telemetry) data to improve the user experience and product quality. This data collection is optional and can be controlled through configuration settings.
@@ -67,6 +77,7 @@ When enabled, Qwen Code may collect:
67
77
  - **Qwen OAuth:** Usage statistics are governed by Qwen's privacy policy. You can opt-out through Qwen Code's configuration settings.
68
78
  - **Alibaba Cloud Coding Plan:** Usage statistics are governed by Alibaba Cloud's privacy policy. You can opt-out through Qwen Code's configuration settings.
69
79
  - **API Key:** No additional data is collected by Qwen Code beyond what your chosen API provider collects.
80
+ - **Vertex AI:** Usage statistics are governed by Google Cloud's privacy policy. No additional data is collected by Qwen Code beyond what Google Cloud collects.
70
81
 
71
82
  ## Frequently Asked Questions (FAQ)
72
83
 
@@ -74,12 +85,14 @@ When enabled, Qwen Code may collect:
74
85
 
75
86
  Whether your code, including prompts and answers, is used to train AI models depends on your authentication method and the specific AI service provider you use:
76
87
 
77
- - **Qwen OAuth**: Data usage is governed by [Qwen's Privacy Policy](https://qwen.ai/privacy). Please refer to their policy for specific details about data collection and model training practices.
88
+ - **Qwen OAuth**: Data usage is governed by [Qwen's Privacy Policy](https://qwen.ai/privacypolicy). Please refer to their policy for specific details about data collection and model training practices.
78
89
 
79
90
  - **Alibaba Cloud Coding Plan**: Data usage is governed by Alibaba Cloud's privacy policy. Please refer to their policy for specific details about data collection and model training practices.
80
91
 
81
92
  - **API Key**: Data usage depends entirely on your chosen API provider. Each provider has their own data usage policies. Please review the privacy policy and terms of service of your specific provider.
82
93
 
94
+ - **Vertex AI**: Data usage is governed by [Google Cloud's Terms of Service](https://cloud.google.com/terms) and [Privacy Notice](https://cloud.google.com/privacy). Please review Google Cloud's policies for specific details about data collection and model training practices.
95
+
83
96
  **Important**: Qwen Code itself does not use your prompts, code, or responses for model training. Any data usage for training purposes would be governed by the policies of the AI service provider you authenticate with.
84
97
 
85
98
  ### 2. What are Usage Statistics and what does the opt-out control?
@@ -103,7 +116,7 @@ The Usage Statistics setting only controls data collection by Qwen Code itself.
103
116
 
104
117
  ### 3. How do I switch between authentication methods?
105
118
 
106
- You can switch between Qwen OAuth, Alibaba Cloud Coding Plan, and your own API key at any time:
119
+ You can switch between Qwen OAuth, Alibaba Cloud Coding Plan, your own API key, and Vertex AI at any time:
107
120
 
108
121
  1. **During startup**: Choose your preferred authentication method when prompted
109
122
  2. **Within the CLI**: Use the `/auth` command to reconfigure your authentication method
@@ -20,6 +20,12 @@ This guide provides solutions to common issues and debugging tips, including top
20
20
  - **Solution:** Set the `NODE_EXTRA_CA_CERTS` environment variable to the absolute path of your corporate root CA certificate file.
21
21
  - Example: `export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt`
22
22
 
23
+ - **Error: `Connection error. (cause: fetch failed)` against a self-signed endpoint**
24
+ - **Cause:** You are pointing Qwen Code at a self-hosted server (for example a local model behind `https://`) whose TLS certificate is self-signed, so Node.js rejects it.
25
+ - **Solution:** Prefer trusting the certificate via `NODE_EXTRA_CA_CERTS` (above). If that is not practical in a trusted lab/private network, skip verification with the `--insecure` flag (or `QWEN_TLS_INSECURE=1`):
26
+ - Example: `qwen --insecure --openaiBaseUrl https://192.168.1.10:8080 ...`
27
+ - **Warning:** Disabling verification removes protection against man-in-the-middle attacks. Only use it for endpoints you fully trust.
28
+
23
29
  - **Error: `Device authorization flow failed: fetch failed`**
24
30
  - **Cause:** Node.js could not reach Qwen OAuth endpoints (often a proxy or SSL/TLS trust issue). When available, Qwen Code will also print the underlying error cause (for example: `UNABLE_TO_VERIFY_LEAF_SIGNATURE`). Note: this error is specific to the legacy Qwen OAuth flow.
25
31
  - **Solution:**
@@ -4,53 +4,55 @@ import {
4
4
  MINIMUM_MAX_HEIGHT,
5
5
  MaxSizedBox,
6
6
  setMaxSizedBoxDebugging
7
- } from "./chunk-EL5IHQON.js";
8
- import "./chunk-UAARJR2G.js";
7
+ } from "./chunk-EWYQFWYF.js";
8
+ import "./chunk-SMXULRAN.js";
9
+ import "./chunk-WQT5SOI6.js";
9
10
  import "./chunk-KYMBIKIW.js";
10
- import "./chunk-TMBPDHXD.js";
11
- import "./chunk-CGOMICBE.js";
11
+ import "./chunk-I4H7PRWQ.js";
12
+ import "./chunk-BSZEQNUA.js";
12
13
  import "./chunk-TLRYABYP.js";
13
- import "./chunk-PXFFKNCO.js";
14
+ import "./chunk-RIP623NO.js";
14
15
  import "./chunk-K5PGHDBN.js";
15
16
  import "./chunk-5P5XGNYH.js";
16
17
  import "./chunk-SKAZWEV5.js";
17
- import "./chunk-TXVGVZYR.js";
18
- import "./chunk-XU5P23GN.js";
19
- import "./chunk-2BIF2NVV.js";
20
- import "./chunk-BG4BIP7F.js";
21
- import "./chunk-ZD3NW5KL.js";
18
+ import "./chunk-XJYUPHRC.js";
19
+ import "./chunk-QLDPRILK.js";
20
+ import "./chunk-BVSVIN45.js";
21
+ import "./chunk-SBBN4BWR.js";
22
+ import "./chunk-7LM4XHPE.js";
22
23
  import "./chunk-2MPVVENX.js";
23
24
  import "./chunk-ZTQ26VBE.js";
24
- import "./chunk-GZCJS5WH.js";
25
+ import "./chunk-O2VBQ3Y2.js";
25
26
  import "./chunk-MLZQVCF3.js";
26
27
  import "./chunk-LQ7TMOCE.js";
27
28
  import "./chunk-LD2XBG6Z.js";
28
- import "./chunk-OTBK43JR.js";
29
- import "./chunk-HGNSRCRB.js";
30
- import "./chunk-EEEZIVFJ.js";
31
- import "./chunk-PRYMDRBV.js";
32
- import "./chunk-WA5OJGFL.js";
29
+ import "./chunk-HYCC3XM3.js";
30
+ import "./chunk-NL4C3H6C.js";
31
+ import "./chunk-JOLIREYR.js";
32
+ import "./chunk-DDMOU62Q.js";
33
+ import "./chunk-SS6WJMQK.js";
33
34
  import "./chunk-3PJXIDKI.js";
34
35
  import "./chunk-UWCTAVOD.js";
35
36
  import "./chunk-OFEVLU4C.js";
36
37
  import "./chunk-OMX7CUOE.js";
37
- import "./chunk-BNXANYLH.js";
38
- import "./chunk-T2VDEFUU.js";
39
- import "./chunk-OIC6S73E.js";
40
- import "./chunk-TOEGRAVX.js";
41
- import "./chunk-BGUDAULQ.js";
42
- import "./chunk-EW6C27XX.js";
38
+ import "./chunk-RD6YJJJ6.js";
39
+ import "./chunk-SKQZZVAV.js";
40
+ import "./chunk-BUUQ5HPX.js";
41
+ import "./chunk-BX5YO7UW.js";
42
+ import "./chunk-3CPCDXFR.js";
43
+ import "./chunk-GEHVIWAT.js";
43
44
  import "./chunk-22IFUCVR.js";
44
- import "./chunk-64WXLC72.js";
45
- import "./chunk-3UALQ56H.js";
46
- import "./chunk-F6XNTYNE.js";
47
- import "./chunk-CGEGHF2C.js";
45
+ import "./chunk-3227DZO4.js";
46
+ import "./chunk-YTFBURQD.js";
47
+ import "./chunk-BKXBARJZ.js";
48
48
  import "./chunk-IRJWHZWU.js";
49
49
  import "./chunk-SYCJMSIJ.js";
50
50
  import "./chunk-55ZMG67I.js";
51
51
  import "./chunk-H6BD2ELD.js";
52
52
  import "./chunk-5IFG2VC4.js";
53
- import "./chunk-C4K3FEQ2.js";
53
+ import "./chunk-64WXLC72.js";
54
+ import "./chunk-E6XQPQXW.js";
55
+ import "./chunk-UX4SGCGN.js";
54
56
  import "./chunk-ZERZSAZL.js";
55
57
  import "./chunk-QN5NZ3UQ.js";
56
58
  import "./chunk-BR4QREVK.js";