@mmmbuto/qwen-code-termux 0.16.1-termux → 0.18.0-termux

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 (185) hide show
  1. package/README.md +79 -109
  2. package/bundled/new-app/SKILL.md +22 -0
  3. package/bundled/qc-helper/SKILL.md +29 -24
  4. package/bundled/qc-helper/docs/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/configuration/_meta.ts +0 -3
  6. package/bundled/qc-helper/docs/configuration/settings.md +37 -31
  7. package/bundled/qc-helper/docs/configuration/themes.md +39 -0
  8. package/bundled/qc-helper/docs/features/_meta.ts +1 -3
  9. package/bundled/qc-helper/docs/features/approval-mode.md +35 -35
  10. package/bundled/qc-helper/docs/features/auto-mode.md +54 -9
  11. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  12. package/bundled/qc-helper/docs/features/channels/feishu.md +170 -0
  13. package/bundled/qc-helper/docs/features/commands.md +115 -35
  14. package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
  15. package/bundled/qc-helper/docs/features/headless.md +32 -0
  16. package/bundled/qc-helper/docs/features/markdown-rendering.md +21 -1
  17. package/bundled/qc-helper/docs/features/memory.md +22 -5
  18. package/bundled/qc-helper/docs/features/scheduled-tasks.md +1 -1
  19. package/bundled/qc-helper/docs/features/status-line.md +168 -32
  20. package/bundled/qc-helper/docs/features/sub-agents.md +60 -0
  21. package/bundled/qc-helper/docs/features/worktree.md +345 -0
  22. package/bundled/qc-helper/docs/overview.md +4 -4
  23. package/bundled/qc-helper/docs/quickstart.md +4 -4
  24. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +221 -0
  25. package/bundled/qc-helper/docs/qwen-serve.md +234 -24
  26. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +16 -0
  27. package/bundled/qc-helper/docs/support/Uninstall.md +19 -1
  28. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  29. package/bundled/simplify/SKILL.md +123 -0
  30. package/chunks/agent-IDS4HMOX.js +56 -0
  31. package/chunks/agent-headless-5Q2EUSPS.js +50 -0
  32. package/chunks/{anthropicContentGenerator-SSGKR6DO.js → anthropicContentGenerator-2HBRNQ3B.js} +52 -9
  33. package/chunks/{askUserQuestion-PJWUUXKN.js → askUserQuestion-75TDJVK2.js} +45 -3
  34. package/chunks/{ca-UZ7BANMN.js → ca-BARBRL6N.js} +89 -5
  35. package/chunks/{chunk-GGNTZ2NH.js → chunk-2Y5SYSD3.js} +368 -597
  36. package/chunks/{chunk-2LA2TREA.js → chunk-3AA2DK35.js} +1448 -207
  37. package/chunks/{chunk-I2V5WXHJ.js → chunk-3AUHFMSK.js} +80 -38
  38. package/chunks/chunk-3DHXZ6EV.js +241 -0
  39. package/chunks/{chunk-PR4T27R7.js → chunk-3HTIVKZE.js} +42 -8
  40. package/chunks/chunk-3HX5LZ6R.js +1798 -0
  41. package/chunks/chunk-3PJXIDKI.js +2517 -0
  42. package/chunks/{chunk-MYAKAFEC.js → chunk-55ZMG67I.js} +7451 -3517
  43. package/chunks/{chunk-66CXYE4B.js → chunk-5IFG2VC4.js} +293 -242
  44. package/chunks/chunk-64WXLC72.js +98 -0
  45. package/chunks/{chunk-C6WMLUNB.js → chunk-72LDN5PP.js} +1 -1
  46. package/chunks/{chunk-F23NCRJ2.js → chunk-A7B4ISQP.js} +1 -1
  47. package/chunks/chunk-B7HXHOHU.js +393 -0
  48. package/chunks/{chunk-XEGHDASV.js → chunk-D3RHSPAS.js} +435 -540
  49. package/chunks/{chunk-XKS5KBFJ.js → chunk-EYENRK4D.js} +694 -384
  50. package/chunks/chunk-H6BD2ELD.js +36 -0
  51. package/chunks/{chunk-XP27SJMH.js → chunk-HR7SV7AY.js} +79 -48
  52. package/chunks/{chunk-D5NTAHYL.js → chunk-IDX6COTE.js} +7 -2
  53. package/chunks/{chunk-SHT4VJWU.js → chunk-IWKSG2AR.js} +2 -2
  54. package/chunks/chunk-J37FGIOA.js +1623 -0
  55. package/chunks/chunk-J5MDQKJL.js +2230 -0
  56. package/chunks/{chunk-USE2VQ5P.js → chunk-JTQAQBTV.js} +21 -0
  57. package/chunks/{chunk-NCTLV2NB.js → chunk-KQJMQJPI.js} +1 -1
  58. package/chunks/{chunk-5FBA5XC2.js → chunk-KRIHGKNA.js} +1 -1
  59. package/chunks/chunk-LD2XBG6Z.js +102 -0
  60. package/chunks/{chunk-MAY32HXD.js → chunk-M6VTDSVR.js} +3 -1
  61. package/chunks/chunk-MRO43B25.js +30 -0
  62. package/chunks/{chunk-N4WOREMD.js → chunk-NVFMZBX2.js} +43 -3
  63. package/chunks/chunk-OHEGWO4L.js +264 -0
  64. package/chunks/{chunk-K6O2NBMF.js → chunk-OQ7NJIY7.js} +4604 -6397
  65. package/chunks/chunk-QQDPRDVW.js +25 -0
  66. package/chunks/{chunk-KXZ4TJB4.js → chunk-SEGYWKIH.js} +1 -1
  67. package/chunks/chunk-SKBPNJEW.js +45 -0
  68. package/chunks/{chunk-4AOCVI6J.js → chunk-SNGELLWX.js} +52 -6
  69. package/chunks/{chunk-3OCRHZA3.js → chunk-TD4OPI4T.js} +56742 -44104
  70. package/chunks/{chunk-DQ4QTG7E.js → chunk-VV4F63BD.js} +11 -11
  71. package/chunks/chunk-XBY7E2FX.js +605 -0
  72. package/chunks/{chunk-JKMBWLFB.js → chunk-YILFYI5W.js} +48 -26
  73. package/chunks/chunk-YOGAOMYB.js +159 -0
  74. package/chunks/{chunk-QWSRH265.js → chunk-Z2Z3GUXZ.js} +777 -776
  75. package/chunks/{chunk-SDHRQFOS.js → chunk-ZTZ4DDQE.js} +2 -2
  76. package/chunks/computer-use-W2TYQNEE.js +825 -0
  77. package/chunks/contextCommand-6FGX3A7J.js +52 -0
  78. package/chunks/{cron-create-3ZBBN7WB.js → cron-create-APL5LU6I.js} +3 -3
  79. package/chunks/{cron-delete-NAGKKIIG.js → cron-delete-4SBJSCN4.js} +3 -3
  80. package/chunks/{cron-list-PAGRXNAI.js → cron-list-2AMGOMVO.js} +3 -3
  81. package/chunks/{de-V4IE2OOZ.js → de-YGKK2BC4.js} +89 -5
  82. package/chunks/{devtools-TWVXEJQB.js → devtools-FM6GJPYG.js} +2 -1
  83. package/chunks/{dist-4L54HRX2.js → dist-4LXD6L6X.js} +24 -5
  84. package/chunks/dist-H6ONXVLG.js +94146 -0
  85. package/chunks/{dist-XKWIWPWQ.js → dist-KAZ3SEBX.js} +1083 -3856
  86. package/chunks/{dist-BXDUQ2QY.js → dist-PK7DFCAW.js} +1 -1
  87. package/chunks/{edit-NVO3FOAK.js → edit-ZCEZC264.js} +30 -22
  88. package/chunks/{en-HGJ2SPLM.js → en-DHGYHIHX.js} +127 -6
  89. package/chunks/{enter-worktree-UEBG4WFC.js → enter-worktree-BBHCFCHG.js} +30 -20
  90. package/chunks/enterPlanMode-3M6KTD3B.js +158 -0
  91. package/chunks/{exit-worktree-UZ3MAQZN.js → exit-worktree-73YPIEQO.js} +27 -19
  92. package/chunks/exitPlanMode-TYZM6BAE.js +703 -0
  93. package/chunks/{fr-CJULI7ZX.js → fr-JXBKPJKQ.js} +89 -5
  94. package/chunks/{geminiContentGenerator-3UZFXGNT.js → geminiContentGenerator-7N2V3VW2.js} +8 -6
  95. package/chunks/{getMachineId-bsd-JXOSIJV2.js → getMachineId-bsd-4CASPIU4.js} +4 -4
  96. package/chunks/{getMachineId-darwin-TE4QRR42.js → getMachineId-darwin-HPQPEMZR.js} +4 -4
  97. package/chunks/{getMachineId-linux-S3OL52XK.js → getMachineId-linux-AUARKYHL.js} +3 -3
  98. package/chunks/{getMachineId-unsupported-DWUSBAPX.js → getMachineId-unsupported-S32ZDA2T.js} +3 -3
  99. package/chunks/{getMachineId-win-AAC5P3AP.js → getMachineId-win-4EFLHYIJ.js} +4 -4
  100. package/chunks/{glob-KNHSFFFG.js → glob-5XBCPQ2A.js} +27 -19
  101. package/chunks/{grep-LACWDZW4.js → grep-VIUU3A7X.js} +30 -19
  102. package/chunks/{ja-L7CHRQEW.js → ja-TGPZSP2B.js} +89 -5
  103. package/chunks/{keychain-token-storage-335UOLJ6.js → keychain-token-storage-6IU6ORQN.js} +3 -3
  104. package/chunks/{ls-AGXQOKSG.js → ls-JRGYIGLY.js} +4 -4
  105. package/chunks/{lsp-UDMUHNPA.js → lsp-SHMKFOAC.js} +3 -3
  106. package/chunks/{monitor-ETKWPJEH.js → monitor-6R4LIJL5.js} +40 -25
  107. package/chunks/{multipart-parser-3QWGTLK3.js → multipart-parser-AJ4WASWR.js} +2 -2
  108. package/chunks/{notebook-edit-QJJLPNYT.js → notebook-edit-5E7ULDVQ.js} +28 -20
  109. package/chunks/{openaiContentGenerator-CNNN424U.js → openaiContentGenerator-ZVHFKM3O.js} +17 -14
  110. package/chunks/{pt-M6JULLEQ.js → pt-TIBG6BIO.js} +89 -5
  111. package/chunks/{qwenContentGenerator-BOLCGK3R.js → qwenContentGenerator-B2VTVSPJ.js} +31 -23
  112. package/chunks/{qwenOAuth2-EEJGROP7.js → qwenOAuth2-2KCKWDCF.js} +6 -4
  113. package/chunks/read-file-GIT7BCDR.js +27 -0
  114. package/chunks/ripGrep-MWKFVYMS.js +48 -0
  115. package/chunks/{ru-QILM4HBC.js → ru-JBCHCK4L.js} +89 -5
  116. package/chunks/scheduler-5VOOYGBH.js +308 -0
  117. package/chunks/send-message-4QNWQJF4.js +244 -0
  118. package/chunks/{serve-OLSI7WSR.js → serve-MN6HZBWN.js} +14262 -7414
  119. package/chunks/shell-NQZQGFM2.js +56 -0
  120. package/chunks/{skill-D6YRHTTI.js → skill-WCFW4644.js} +145 -119
  121. package/chunks/{src-TMOD5X6F.js → src-7XL4G4DC.js} +88 -46
  122. package/chunks/{src-4QH4FZ6I.js → src-IHA6DTUV.js} +452 -62
  123. package/chunks/{syntheticOutput-5PVFDDJ4.js → syntheticOutput-YTYS2ZMQ.js} +4 -4
  124. package/chunks/task-create-MPORPYN6.js +19 -0
  125. package/chunks/task-list-R2YDYPZT.js +151 -0
  126. package/chunks/{task-stop-AJKPSR6R.js → task-stop-SYWJYBCM.js} +3 -3
  127. package/chunks/task-update-E4NSLKMQ.js +408 -0
  128. package/chunks/team-create-7R7KA5IP.js +314 -0
  129. package/chunks/team-delete-25OIWUPN.js +116 -0
  130. package/chunks/{todoWrite-VLAUG4CA.js → todoWrite-4YHMIF4X.js} +16 -5
  131. package/chunks/{tool-search-MZGHUUKD.js → tool-search-YBRVZCLI.js} +29 -11
  132. package/chunks/{tts-notification-K3X7X7MN.js → tts-notification-7SOEMQK4.js} +5 -4
  133. package/chunks/{web-fetch-OILB464A.js → web-fetch-MFIRHIHI.js} +5 -5
  134. package/chunks/workflow-5RIKVCIE.js +960 -0
  135. package/chunks/{write-file-BIQAA57V.js → write-file-DMQTJZOM.js} +32 -24
  136. package/chunks/{zh-PWL2NKY3.js → zh-7H5OQC4I.js} +135 -11
  137. package/chunks/{zh-TW-S3YGWICZ.js → zh-TW-P4IDHD3M.js} +128 -11
  138. package/cli.js +45402 -20570
  139. package/examples/agent/agents/diary.md +86 -0
  140. package/examples/agent/qwen-extension.json +5 -0
  141. package/examples/commands/commands/fs/grep-code.md +3 -0
  142. package/examples/commands/qwen-extension.json +5 -0
  143. package/examples/context/QWEN.md +8 -0
  144. package/examples/context/qwen-extension.json +5 -0
  145. package/examples/mcp-server/example.ts +60 -0
  146. package/examples/mcp-server/package.json +18 -0
  147. package/examples/mcp-server/qwen-extension.json +12 -0
  148. package/examples/mcp-server/tsconfig.json +13 -0
  149. package/examples/skills/qwen-extension.json +5 -0
  150. package/examples/skills/skills/synonyms/SKILL.md +48 -0
  151. package/examples/starter/QWEN.md +30 -0
  152. package/examples/starter/README.md +59 -0
  153. package/examples/starter/agents/diary.md +86 -0
  154. package/examples/starter/commands/writing/polish.md +13 -0
  155. package/examples/starter/example.ts +64 -0
  156. package/examples/starter/package.json +18 -0
  157. package/examples/starter/qwen-extension.json +12 -0
  158. package/examples/starter/skills/synonyms/SKILL.md +48 -0
  159. package/examples/starter/tsconfig.json +13 -0
  160. package/fzfWorker.js +1083 -0
  161. package/locales/ca.js +118 -5
  162. package/locales/de.js +117 -5
  163. package/locales/en.js +169 -7
  164. package/locales/fr.js +119 -5
  165. package/locales/ja.js +114 -5
  166. package/locales/pt.js +117 -5
  167. package/locales/ru.js +116 -5
  168. package/locales/zh-TW.js +161 -12
  169. package/locales/zh.js +169 -12
  170. package/package.json +4 -2
  171. package/scripts/postinstall.cjs +2 -1
  172. package/bundled/qc-helper/docs/features/checkpointing.md +0 -77
  173. package/chunks/agent-7ZN3CRHR.js +0 -48
  174. package/chunks/chunk-6PCB2DEF.js +0 -434
  175. package/chunks/chunk-EM6ETG2K.js +0 -60
  176. package/chunks/chunk-G7YTSRES.js +0 -150
  177. package/chunks/contextCommand-7IBASARL.js +0 -44
  178. package/chunks/exitPlanMode-PZAMWIRW.js +0 -227
  179. package/chunks/multipart-parser-IXGBIOIN.js +0 -384
  180. package/chunks/read-file-CCUEUFG2.js +0 -24
  181. package/chunks/ripGrep-TADOH2HK.js +0 -40
  182. package/chunks/send-message-YL44UZFC.js +0 -151
  183. package/chunks/shell-7KKKC5G7.js +0 -48
  184. package/chunks/src-IPWIHNMI.js +0 -1406
  185. package/chunks/undici-F6ZOXSS5.js +0 -8
package/README.md CHANGED
@@ -1,125 +1,110 @@
1
1
  # Qwen Code Termux
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/@mmmbuto/qwen-code-termux.svg)](https://www.npmjs.com/package/@mmmbuto/qwen-code-termux)
4
- [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
3
+ > Native Qwen Code CLI for **Termux / Android ARM64**.
4
+ > This fork tracks upstream [QwenLM/qwen-code](https://github.com/QwenLM/qwen-code) closely and carries only the Android/Termux compatibility delta needed to package and run it.
5
5
 
6
- Termux-first build of [Qwen Code](https://github.com/QwenLM/qwen-code) for
7
- Android ARM64.
8
-
9
- This fork tracks upstream release-by-release and keeps the fork delta limited to
10
- Android/Termux compatibility, packaging, and validation assets.
11
-
12
- Current fork release: `0.16.1-termux`.
13
-
14
- ## Release Channel
15
-
16
- `main` follows upstream stable releases. Upstream preview and nightly builds are
17
- tracked only for analysis unless a Termux-specific validation pass decides to
18
- publish a separate prerelease.
19
-
20
- Current upstream baseline: `QwenLM/qwen-code` `v0.16.1`.
6
+ [![npm termux](https://img.shields.io/npm/v/@mmmbuto/qwen-code-termux?style=flat-square&logo=npm)](https://www.npmjs.com/package/@mmmbuto/qwen-code-termux)
7
+ [![latest release](https://img.shields.io/github/v/release/DioNanos/qwen-code-termux?style=flat-square)](https://github.com/DioNanos/qwen-code-termux/releases/latest)
8
+ [![license](https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square)](./LICENSE)
21
9
 
22
10
  ## Install
23
11
 
24
- ```bash
25
- pkg install nodejs-lts
26
- pkg install termux-api # optional, only for TTS notifications
12
+ ### Termux (Android ARM64)
27
13
 
14
+ ```bash
15
+ pkg update && pkg upgrade -y
16
+ pkg install nodejs-lts -y
17
+ pkg install termux-api -y # optional, only for TTS notifications
28
18
  npm install -g @mmmbuto/qwen-code-termux@latest
29
19
  qwen --version
30
20
  ```
31
21
 
32
22
  Requirements:
33
23
 
34
- - Termux from F-Droid
35
- - Node.js 20+
36
- - `termux-api` only if you want `termux-tts-speak` integration
24
+ - Android 7+ / API 24+
25
+ - ARM64 device
26
+ - Termux from F-Droid (Google Play build is outdated)
27
+ - Node.js >= 20
28
+
29
+ ### Other platforms
37
30
 
38
- For non-Termux platforms, use upstream:
31
+ Use upstream:
39
32
 
40
33
  ```bash
41
34
  npm install -g @qwen-code/qwen-code
42
35
  ```
43
36
 
44
- ## Usage
45
-
46
- ```bash
47
- cd your-project
48
- qwen
49
- ```
37
+ ## Scope
50
38
 
51
- Headless:
39
+ What this fork does:
52
40
 
53
- ```bash
54
- qwen -p "Explain this project" -o json
55
- ```
41
+ - tracks upstream Qwen Code release by release
42
+ - preserves only the Android/Termux compatibility delta upstream does not ship
43
+ - publishes a Termux-ready npm package and GitHub release assets
44
+ - maintains a small, verifiable patch surface (`scripts/check-termux-patches.sh`)
56
45
 
57
- Useful slash commands:
46
+ What this fork does not do:
58
47
 
59
- - `/help`
60
- - `/auth`
61
- - `/model`
48
+ - maintain a broad feature fork or product divergence
49
+ - replace upstream Qwen Code on non-Termux platforms
50
+ - carry fork-only features unrelated to Termux compatibility
51
+ - publish SDKs, VS Code extensions, channels, or Docker images downstream
62
52
 
63
- ## Authentication
53
+ ## Current Termux Delta
64
54
 
65
- Qwen Code Termux keeps upstream Qwen Code authentication behavior.
55
+ - Android ARM64 PTY fallback via `@mmmbuto/node-pty-android-arm64` (prebuilt, bundled as optional dependency)
56
+ - Termux runtime detection (`isTermux()` checks `process.platform`, `TERMUX_VERSION`, `PREFIX`)
57
+ - base64 polyfills (`btoa` / `atob`) for older Android Node builds
58
+ - `tts_notification` tool backed by `termux-tts-speak` (requires `termux-api`)
59
+ - `DEP0169` (`url.parse` deprecation) warning suppression in the CLI entry point
60
+ - install / update commands point users at `@mmmbuto/qwen-code-termux`
61
+ - `postinstall` + `prepare-termux` scripts skip husky and the bundle step inside Termux
62
+ - npm package metadata published under `@mmmbuto/qwen-code-termux`
66
63
 
67
- Interactive auth:
64
+ Fork delta is verifiable end-to-end with:
68
65
 
69
- ```text
70
- /auth
66
+ ```bash
67
+ bash scripts/check-termux-patches.sh
71
68
  ```
72
69
 
73
- API-key auth can be configured through `~/.qwen/settings.json` or environment
74
- variables supported by upstream providers.
70
+ (16 markers across `getPty.ts`, `termux-detect.ts`, `termux-runtime.ts`, `tts-notification.ts`, `cli/index.ts`, `installationInfo.ts`, `scripts/`, `package.json`)
75
71
 
76
- For Alibaba Cloud ModelStudio / DashScope:
72
+ ## Releases and Updates
77
73
 
78
- ```bash
79
- export DASHSCOPE_API_KEY="YOUR_API_KEY"
80
- qwen
81
- ```
74
+ - Latest GitHub release: [releases/latest](https://github.com/DioNanos/qwen-code-termux/releases/latest)
75
+ - Upstream baseline: [`QwenLM/qwen-code` v0.18.0](https://github.com/QwenLM/qwen-code/releases/tag/v0.18.0), packaged as `0.18.0-termux` (npm `next`; promoted to `latest` after validation)
76
+ - npm package: [`@mmmbuto/qwen-code-termux`](https://www.npmjs.com/package/@mmmbuto/qwen-code-termux)
82
77
 
83
- Qwen OAuth free tier was discontinued upstream on April 15, 2026. Use Alibaba
84
- Cloud Coding Plan, OpenRouter, Fireworks AI, or another configured API provider.
78
+ Maintainer publish flow:
85
79
 
86
- ## Termux Delta
80
+ - merge upstream release tag into `develop`
81
+ - verify the Termux delta with `scripts/check-termux-patches.sh`
82
+ - build, bundle, prepare:package, smoke `qwen --version`
83
+ - publish the tested npm tarball to `latest`
84
+ - promote the tested commit to clean GitHub `main`
85
+ - publish the GitHub release from `main` with the tarball asset
86
+ - add post-release Termux validation reports after on-device testing
87
87
 
88
- This fork adds or preserves:
89
-
90
- - Android ARM64 PTY fallback through `@mmmbuto/node-pty-android-arm64`
91
- - optional `tts_notification` support backed by `termux-tts-speak`
92
- - Termux environment detection for runtime-specific behavior
93
- - Android/Termux runtime patch bootstrap
94
- - npm publish package metadata under `@mmmbuto/qwen-code-termux`
95
- - release validation docs under `test-reports/`
88
+ ## Authentication
96
89
 
97
- After upstream merges or release prep, verify the fork delta with:
90
+ Qwen Code Termux keeps upstream Qwen Code authentication behavior. Interactive:
98
91
 
99
- ```bash
100
- bash scripts/check-termux-patches.sh
92
+ ```text
93
+ /auth
101
94
  ```
102
95
 
103
- ## Build
96
+ API-key auth can be configured through `~/.qwen/settings.json` or upstream provider environment variables. For Alibaba Cloud ModelStudio / DashScope:
104
97
 
105
98
  ```bash
106
- git clone https://github.com/DioNanos/qwen-code-termux.git
107
- cd qwen-code-termux
108
- npm install
109
- npm run build
110
- npm run bundle
111
- npm run prepare:package
112
- node dist/cli.js --version
99
+ export DASHSCOPE_API_KEY="YOUR_API_KEY"
100
+ qwen
113
101
  ```
114
102
 
115
- The publishable npm artifact is prepared under `dist/`.
116
-
117
- ## Release Validation
103
+ > The Qwen OAuth free tier was discontinued upstream on **April 15, 2026**. Use Alibaba Cloud Coding Plan, OpenRouter, Fireworks AI, or another configured API provider.
118
104
 
119
- The public validation history lives in:
105
+ ## Validation
120
106
 
121
- - [test-reports/README.md](test-reports/README.md)
122
- - [test-reports/suites/latest/termux.md](test-reports/suites/latest/termux.md)
107
+ Termux on-device smoke suite: [test-reports/suites/latest/termux.md](./test-reports/suites/latest/termux.md)
123
108
 
124
109
  Minimum smoke:
125
110
 
@@ -129,43 +114,28 @@ qwen --help
129
114
  qwen -p "Reply with OK"
130
115
  ```
131
116
 
132
- ## Maintenance Scope
133
-
134
- In scope for this fork:
135
-
136
- - Android/Termux runtime compatibility
137
- - npm package `@mmmbuto/qwen-code-termux`
138
- - Termux validation reports and release assets
139
- - minimal fork-owned GitHub CI/release automation
140
-
141
- Out of scope:
117
+ Validation history under [test-reports/](./test-reports/).
142
118
 
143
- - generic Qwen Code feature requests
144
- - upstream product behavior unrelated to Termux
145
- - upstream Alibaba/Qwen infrastructure, bots, or release workflows
146
- - SDK, VS Code extension, channel, or Docker image publishing from this fork
119
+ ## Documentation
147
120
 
148
- Generic issues should be filed upstream at
149
- [QwenLM/qwen-code](https://github.com/QwenLM/qwen-code). Termux-specific issues
150
- should be filed here.
121
+ - [Maintainer / scope of maintenance](./MAINTAINER.md)
122
+ - [Notice](./NOTICE)
123
+ - [Security policy](./SECURITY.md)
124
+ - Termux delta verifier: [scripts/check-termux-patches.sh](./scripts/check-termux-patches.sh)
125
+ - Latest Termux smoke suite: [test-reports/suites/latest/termux.md](./test-reports/suites/latest/termux.md)
126
+ - Upstream docs index: [docs/index.md](./docs/index.md)
151
127
 
152
- ## Security
128
+ For generic Qwen Code documentation, refer to [upstream](https://github.com/QwenLM/qwen-code).
153
129
 
154
- See [SECURITY.md](SECURITY.md).
155
-
156
- Termux-fork-specific security reports: `security@mmmbuto.com`.
157
-
158
- Upstream-relevant security reports should follow the upstream Alibaba/Qwen
159
- security process described in `SECURITY.md`.
130
+ ## License
160
131
 
161
- ## Maintainer
132
+ Apache-2.0. This project remains under the Apache 2.0 license inherited from upstream Qwen Code.
162
133
 
163
- Maintained by [DioNanos](https://github.com/DioNanos) as the Termux/Android
164
- porting and distribution fork.
134
+ - Original work: Alibaba Cloud (Qwen Team)
135
+ - Termux port: minimal Android compatibility patches
165
136
 
166
- See [MAINTAINER.md](MAINTAINER.md) and [NOTICE](NOTICE).
137
+ See [LICENSE](./LICENSE).
167
138
 
168
- ## License
139
+ ---
169
140
 
170
- Apache-2.0. This fork is distributed under the same license as upstream Qwen
171
- Code. The Android/Termux compatibility patches are distributed under Apache-2.0.
141
+ *Per aspera ad astra.*
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: new-app
3
+ description: Workflow for creating new applications from scratch. Covers requirements gathering, tech stack selection, scaffolding, implementation, and delivery of a functional prototype.
4
+ when_to_use: When the user asks to create a new application, project, website, game, mobile app, CLI tool, or library from scratch.
5
+ ---
6
+
7
+ **Goal:** Autonomously implement and deliver a visually appealing, substantially complete, and functional prototype. Utilize all tools at your disposal to implement the application. Some tools you may especially find useful are 'write_file', 'edit' and 'run_shell_command'.
8
+
9
+ 1. **Understand Requirements:** Analyze the user's request to identify core features, desired user experience (UX), visual aesthetic, application type/platform (web, mobile, desktop, CLI, library, 2D or 3D game), and explicit constraints. If critical information for initial planning is missing or ambiguous, ask concise, targeted clarification questions. Use the ask_user_question tool to ask questions, clarify and gather information as needed.
10
+ 2. **Propose Plan:** Formulate an internal development plan. Present a clear, concise, high-level summary to the user. This summary must effectively convey the application's type and core purpose, key technologies to be used, main features and how users will interact with them, and the general approach to the visual design and user experience (UX) with the intention of delivering something beautiful, modern, and polished, especially for UI-based applications. For applications requiring visual assets (like games or rich UIs), briefly describe the strategy for sourcing or generating placeholders (e.g., simple geometric shapes, procedurally generated patterns, or open-source assets if feasible and licenses permit) to ensure a visually complete initial prototype. Ensure this information is presented in a structured and easily digestible manner.
11
+ - When key technologies aren't specified, prefer the following:
12
+ - **Websites (Frontend):** React (JavaScript/TypeScript) with Bootstrap CSS, incorporating Material Design principles for UI/UX.
13
+ - **Back-End APIs:** Node.js with Express.js (JavaScript/TypeScript) or Python with FastAPI.
14
+ - **Full-stack:** Next.js (React/Node.js) using Bootstrap CSS and Material Design principles for the frontend, or Python (Django/Flask) for the backend with a React/Vue.js frontend styled with Bootstrap CSS and Material Design principles.
15
+ - **CLIs:** Python or Go.
16
+ - **Mobile App:** Compose Multiplatform (Kotlin Multiplatform) or Flutter (Dart) using Material Design libraries and principles, when sharing code between Android and iOS. Jetpack Compose (Kotlin JVM) with Material Design principles or SwiftUI (Swift) for native apps targeted at either Android or iOS, respectively.
17
+ - **3D Games:** HTML/CSS/JavaScript with Three.js.
18
+ - **2D Games:** HTML/CSS/JavaScript.
19
+ 3. **User Approval:** Obtain user approval for the proposed plan.
20
+ 4. **Implementation:** Use the 'todo_write' tool to convert the approved plan into a structured todo list with specific, actionable tasks, then autonomously implement each task utilizing all available tools. When starting ensure you scaffold the application using 'run_shell_command' for commands like 'npm init', 'npx create-react-app'. Aim for full scope completion. Proactively create or source necessary placeholder assets (e.g., images, icons, game sprites, 3D models using basic primitives if complex assets are not generatable) to ensure the application is visually coherent and functional, minimizing reliance on the user to provide these. If the model can generate simple assets (e.g., a uniformly colored square sprite, a simple 3D cube), it should do so. Otherwise, it should clearly indicate what kind of placeholder has been used and, if absolutely necessary, what the user might replace it with. Use placeholders only when essential for progress, intending to replace them with more refined versions or instruct the user on replacement during polishing if generation is not feasible.
21
+ 5. **Verify:** Review work against the original request, the approved plan. Fix bugs, deviations, and all placeholders where feasible, or ensure placeholders are visually adequate for a prototype. Ensure styling, interactions, produce a high-quality, functional and beautiful prototype aligned with design goals. Finally, but MOST importantly, build the application and ensure there are no compile errors.
22
+ 6. **Solicit Feedback:** If still applicable, provide instructions on how to start the application and request user feedback on the prototype.
@@ -43,25 +43,29 @@ Use this index to locate the right document for the user's question. Load only t
43
43
  | Model providers (OpenAI-compatible, etc.) | `docs/configuration/model-providers.md` |
44
44
  | .qwenignore file | `docs/configuration/qwen-ignore.md` |
45
45
  | Themes | `docs/configuration/themes.md` |
46
- | Memory | `docs/configuration/memory.md` |
47
46
  | Trusted folders | `docs/configuration/trusted-folders.md` |
48
47
 
49
48
  ### Features
50
49
 
51
- | Topic | Doc Path |
52
- | ------------------------------------------- | -------------------------------- |
53
- | Approval mode (plan/default/auto_edit/yolo) | `docs/features/approval-mode.md` |
54
- | MCP (Model Context Protocol) | `docs/features/mcp.md` |
55
- | Skills system | `docs/features/skills.md` |
56
- | Sub-agents | `docs/features/sub-agents.md` |
57
- | Sandbox / security | `docs/features/sandbox.md` |
58
- | Slash commands | `docs/features/commands.md` |
59
- | Headless / non-interactive mode | `docs/features/headless.md` |
60
- | LSP integration | `docs/features/lsp.md` |
61
- | Checkpointing | `docs/features/checkpointing.md` |
62
- | Token caching | `docs/features/token-caching.md` |
63
- | Language / i18n | `docs/features/language.md` |
64
- | Arena mode | `docs/features/arena.md` |
50
+ | Topic | Doc Path |
51
+ | ------------------------------------------- | ---------------------------------- |
52
+ | Approval mode (plan/default/auto_edit/yolo) | `docs/features/approval-mode.md` |
53
+ | Auto mode (AI-driven approval) | `docs/features/auto-mode.md` |
54
+ | Hooks (lifecycle hooks) | `docs/features/hooks.md` |
55
+ | MCP (Model Context Protocol) | `docs/features/mcp.md` |
56
+ | Memory | `docs/features/memory.md` |
57
+ | Skills system | `docs/features/skills.md` |
58
+ | Sub-agents | `docs/features/sub-agents.md` |
59
+ | Sandbox / security | `docs/features/sandbox.md` |
60
+ | Slash commands | `docs/features/commands.md` |
61
+ | Headless / non-interactive mode | `docs/features/headless.md` |
62
+ | LSP integration | `docs/features/lsp.md` |
63
+ | Token caching | `docs/features/token-caching.md` |
64
+ | Language / i18n | `docs/features/language.md` |
65
+ | Arena mode | `docs/features/arena.md` |
66
+ | Status line | `docs/features/status-line.md` |
67
+ | Scheduled tasks (cron/loop) | `docs/features/scheduled-tasks.md` |
68
+ | Worktree | `docs/features/worktree.md` |
65
69
 
66
70
  ### IDE Integration
67
71
 
@@ -111,15 +115,16 @@ When the user asks about configuration, the primary reference is `docs/configura
111
115
 
112
116
  ### Common Config Categories
113
117
 
114
- | Category | Key Config Keys | Reference |
115
- | ------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
116
- | Permissions | `permissions.allow/ask/deny` | `docs/configuration/settings.md`, `docs/features/approval-mode.md` |
117
- | MCP Servers | `mcpServers.*`, `mcp.*` | `docs/configuration/settings.md`, `docs/features/mcp.md` |
118
- | Tool Approval | `tools.approvalMode` | `docs/configuration/settings.md`, `docs/features/approval-mode.md` |
119
- | Model | `model.name`, `modelProviders` | `docs/configuration/settings.md`, `docs/configuration/model-providers.md` |
120
- | General/UI | `general.*`, `ui.*`, `ide.*`, `output.*` | `docs/configuration/settings.md` |
121
- | Context | `context.*` | `docs/configuration/settings.md` |
122
- | Advanced | `hooks`, `env`, `webSearch`, `security`, `privacy`, `telemetry`, `advanced.*` | `docs/configuration/settings.md` |
118
+ | Category | Key Config Keys | Reference |
119
+ | ------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
120
+ | Permissions | `permissions.allow/ask/deny` | `docs/configuration/settings.md`, `docs/features/approval-mode.md` |
121
+ | MCP Servers | `mcpServers.*`, `mcp.*` | `docs/configuration/settings.md`, `docs/features/mcp.md` |
122
+ | Tool Approval | `tools.approvalMode` | `docs/configuration/settings.md`, `docs/features/approval-mode.md`, `docs/features/auto-mode.md` |
123
+ | Hooks | `hooks.*` | `docs/configuration/settings.md`, `docs/features/hooks.md` |
124
+ | Model | `model.name`, `modelProviders` | `docs/configuration/settings.md`, `docs/configuration/model-providers.md` |
125
+ | General/UI | `general.*`, `ui.*`, `ide.*`, `output.*` | `docs/configuration/settings.md` |
126
+ | Context | `context.*` | `docs/configuration/settings.md` |
127
+ | Advanced | `env`, `webSearch`, `security`, `privacy`, `telemetry`, `advanced.*` | `docs/configuration/settings.md` |
123
128
 
124
129
  ---
125
130
 
@@ -15,6 +15,7 @@ export default {
15
15
  'integration-jetbrains': 'JetBrains IDEs',
16
16
  'integration-github-action': 'GitHub Actions',
17
17
  'qwen-serve': 'Daemon mode (qwen serve)',
18
+ 'qwen-serve-deploy-local': 'Daemon mode — local launch templates',
18
19
  'Code with Qwen Code': {
19
20
  type: 'separator',
20
21
  title: 'Code with Qwen Code', // Title is optional
@@ -1,9 +1,6 @@
1
1
  export default {
2
2
  settings: 'Settings',
3
3
  auth: 'Authentication',
4
- memory: {
5
- display: 'hidden',
6
- },
7
4
  'qwen-ignore': 'Ignoring Files',
8
5
  'trusted-folders': 'Trusted Folders',
9
6
  themes: 'Themes',