@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.
- package/README.md +79 -109
- package/bundled/new-app/SKILL.md +22 -0
- package/bundled/qc-helper/SKILL.md +29 -24
- package/bundled/qc-helper/docs/_meta.ts +1 -0
- package/bundled/qc-helper/docs/configuration/_meta.ts +0 -3
- package/bundled/qc-helper/docs/configuration/settings.md +37 -31
- package/bundled/qc-helper/docs/configuration/themes.md +39 -0
- package/bundled/qc-helper/docs/features/_meta.ts +1 -3
- package/bundled/qc-helper/docs/features/approval-mode.md +35 -35
- package/bundled/qc-helper/docs/features/auto-mode.md +54 -9
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/feishu.md +170 -0
- package/bundled/qc-helper/docs/features/commands.md +115 -35
- package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
- package/bundled/qc-helper/docs/features/headless.md +32 -0
- package/bundled/qc-helper/docs/features/markdown-rendering.md +21 -1
- package/bundled/qc-helper/docs/features/memory.md +22 -5
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +1 -1
- package/bundled/qc-helper/docs/features/status-line.md +168 -32
- package/bundled/qc-helper/docs/features/sub-agents.md +60 -0
- package/bundled/qc-helper/docs/features/worktree.md +345 -0
- package/bundled/qc-helper/docs/overview.md +4 -4
- package/bundled/qc-helper/docs/quickstart.md +4 -4
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +221 -0
- package/bundled/qc-helper/docs/qwen-serve.md +234 -24
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +16 -0
- package/bundled/qc-helper/docs/support/Uninstall.md +19 -1
- package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
- package/bundled/simplify/SKILL.md +123 -0
- package/chunks/agent-IDS4HMOX.js +56 -0
- package/chunks/agent-headless-5Q2EUSPS.js +50 -0
- package/chunks/{anthropicContentGenerator-SSGKR6DO.js → anthropicContentGenerator-2HBRNQ3B.js} +52 -9
- package/chunks/{askUserQuestion-PJWUUXKN.js → askUserQuestion-75TDJVK2.js} +45 -3
- package/chunks/{ca-UZ7BANMN.js → ca-BARBRL6N.js} +89 -5
- package/chunks/{chunk-GGNTZ2NH.js → chunk-2Y5SYSD3.js} +368 -597
- package/chunks/{chunk-2LA2TREA.js → chunk-3AA2DK35.js} +1448 -207
- package/chunks/{chunk-I2V5WXHJ.js → chunk-3AUHFMSK.js} +80 -38
- package/chunks/chunk-3DHXZ6EV.js +241 -0
- package/chunks/{chunk-PR4T27R7.js → chunk-3HTIVKZE.js} +42 -8
- package/chunks/chunk-3HX5LZ6R.js +1798 -0
- package/chunks/chunk-3PJXIDKI.js +2517 -0
- package/chunks/{chunk-MYAKAFEC.js → chunk-55ZMG67I.js} +7451 -3517
- package/chunks/{chunk-66CXYE4B.js → chunk-5IFG2VC4.js} +293 -242
- package/chunks/chunk-64WXLC72.js +98 -0
- package/chunks/{chunk-C6WMLUNB.js → chunk-72LDN5PP.js} +1 -1
- package/chunks/{chunk-F23NCRJ2.js → chunk-A7B4ISQP.js} +1 -1
- package/chunks/chunk-B7HXHOHU.js +393 -0
- package/chunks/{chunk-XEGHDASV.js → chunk-D3RHSPAS.js} +435 -540
- package/chunks/{chunk-XKS5KBFJ.js → chunk-EYENRK4D.js} +694 -384
- package/chunks/chunk-H6BD2ELD.js +36 -0
- package/chunks/{chunk-XP27SJMH.js → chunk-HR7SV7AY.js} +79 -48
- package/chunks/{chunk-D5NTAHYL.js → chunk-IDX6COTE.js} +7 -2
- package/chunks/{chunk-SHT4VJWU.js → chunk-IWKSG2AR.js} +2 -2
- package/chunks/chunk-J37FGIOA.js +1623 -0
- package/chunks/chunk-J5MDQKJL.js +2230 -0
- package/chunks/{chunk-USE2VQ5P.js → chunk-JTQAQBTV.js} +21 -0
- package/chunks/{chunk-NCTLV2NB.js → chunk-KQJMQJPI.js} +1 -1
- package/chunks/{chunk-5FBA5XC2.js → chunk-KRIHGKNA.js} +1 -1
- package/chunks/chunk-LD2XBG6Z.js +102 -0
- package/chunks/{chunk-MAY32HXD.js → chunk-M6VTDSVR.js} +3 -1
- package/chunks/chunk-MRO43B25.js +30 -0
- package/chunks/{chunk-N4WOREMD.js → chunk-NVFMZBX2.js} +43 -3
- package/chunks/chunk-OHEGWO4L.js +264 -0
- package/chunks/{chunk-K6O2NBMF.js → chunk-OQ7NJIY7.js} +4604 -6397
- package/chunks/chunk-QQDPRDVW.js +25 -0
- package/chunks/{chunk-KXZ4TJB4.js → chunk-SEGYWKIH.js} +1 -1
- package/chunks/chunk-SKBPNJEW.js +45 -0
- package/chunks/{chunk-4AOCVI6J.js → chunk-SNGELLWX.js} +52 -6
- package/chunks/{chunk-3OCRHZA3.js → chunk-TD4OPI4T.js} +56742 -44104
- package/chunks/{chunk-DQ4QTG7E.js → chunk-VV4F63BD.js} +11 -11
- package/chunks/chunk-XBY7E2FX.js +605 -0
- package/chunks/{chunk-JKMBWLFB.js → chunk-YILFYI5W.js} +48 -26
- package/chunks/chunk-YOGAOMYB.js +159 -0
- package/chunks/{chunk-QWSRH265.js → chunk-Z2Z3GUXZ.js} +777 -776
- package/chunks/{chunk-SDHRQFOS.js → chunk-ZTZ4DDQE.js} +2 -2
- package/chunks/computer-use-W2TYQNEE.js +825 -0
- package/chunks/contextCommand-6FGX3A7J.js +52 -0
- package/chunks/{cron-create-3ZBBN7WB.js → cron-create-APL5LU6I.js} +3 -3
- package/chunks/{cron-delete-NAGKKIIG.js → cron-delete-4SBJSCN4.js} +3 -3
- package/chunks/{cron-list-PAGRXNAI.js → cron-list-2AMGOMVO.js} +3 -3
- package/chunks/{de-V4IE2OOZ.js → de-YGKK2BC4.js} +89 -5
- package/chunks/{devtools-TWVXEJQB.js → devtools-FM6GJPYG.js} +2 -1
- package/chunks/{dist-4L54HRX2.js → dist-4LXD6L6X.js} +24 -5
- package/chunks/dist-H6ONXVLG.js +94146 -0
- package/chunks/{dist-XKWIWPWQ.js → dist-KAZ3SEBX.js} +1083 -3856
- package/chunks/{dist-BXDUQ2QY.js → dist-PK7DFCAW.js} +1 -1
- package/chunks/{edit-NVO3FOAK.js → edit-ZCEZC264.js} +30 -22
- package/chunks/{en-HGJ2SPLM.js → en-DHGYHIHX.js} +127 -6
- package/chunks/{enter-worktree-UEBG4WFC.js → enter-worktree-BBHCFCHG.js} +30 -20
- package/chunks/enterPlanMode-3M6KTD3B.js +158 -0
- package/chunks/{exit-worktree-UZ3MAQZN.js → exit-worktree-73YPIEQO.js} +27 -19
- package/chunks/exitPlanMode-TYZM6BAE.js +703 -0
- package/chunks/{fr-CJULI7ZX.js → fr-JXBKPJKQ.js} +89 -5
- package/chunks/{geminiContentGenerator-3UZFXGNT.js → geminiContentGenerator-7N2V3VW2.js} +8 -6
- package/chunks/{getMachineId-bsd-JXOSIJV2.js → getMachineId-bsd-4CASPIU4.js} +4 -4
- package/chunks/{getMachineId-darwin-TE4QRR42.js → getMachineId-darwin-HPQPEMZR.js} +4 -4
- package/chunks/{getMachineId-linux-S3OL52XK.js → getMachineId-linux-AUARKYHL.js} +3 -3
- package/chunks/{getMachineId-unsupported-DWUSBAPX.js → getMachineId-unsupported-S32ZDA2T.js} +3 -3
- package/chunks/{getMachineId-win-AAC5P3AP.js → getMachineId-win-4EFLHYIJ.js} +4 -4
- package/chunks/{glob-KNHSFFFG.js → glob-5XBCPQ2A.js} +27 -19
- package/chunks/{grep-LACWDZW4.js → grep-VIUU3A7X.js} +30 -19
- package/chunks/{ja-L7CHRQEW.js → ja-TGPZSP2B.js} +89 -5
- package/chunks/{keychain-token-storage-335UOLJ6.js → keychain-token-storage-6IU6ORQN.js} +3 -3
- package/chunks/{ls-AGXQOKSG.js → ls-JRGYIGLY.js} +4 -4
- package/chunks/{lsp-UDMUHNPA.js → lsp-SHMKFOAC.js} +3 -3
- package/chunks/{monitor-ETKWPJEH.js → monitor-6R4LIJL5.js} +40 -25
- package/chunks/{multipart-parser-3QWGTLK3.js → multipart-parser-AJ4WASWR.js} +2 -2
- package/chunks/{notebook-edit-QJJLPNYT.js → notebook-edit-5E7ULDVQ.js} +28 -20
- package/chunks/{openaiContentGenerator-CNNN424U.js → openaiContentGenerator-ZVHFKM3O.js} +17 -14
- package/chunks/{pt-M6JULLEQ.js → pt-TIBG6BIO.js} +89 -5
- package/chunks/{qwenContentGenerator-BOLCGK3R.js → qwenContentGenerator-B2VTVSPJ.js} +31 -23
- package/chunks/{qwenOAuth2-EEJGROP7.js → qwenOAuth2-2KCKWDCF.js} +6 -4
- package/chunks/read-file-GIT7BCDR.js +27 -0
- package/chunks/ripGrep-MWKFVYMS.js +48 -0
- package/chunks/{ru-QILM4HBC.js → ru-JBCHCK4L.js} +89 -5
- package/chunks/scheduler-5VOOYGBH.js +308 -0
- package/chunks/send-message-4QNWQJF4.js +244 -0
- package/chunks/{serve-OLSI7WSR.js → serve-MN6HZBWN.js} +14262 -7414
- package/chunks/shell-NQZQGFM2.js +56 -0
- package/chunks/{skill-D6YRHTTI.js → skill-WCFW4644.js} +145 -119
- package/chunks/{src-TMOD5X6F.js → src-7XL4G4DC.js} +88 -46
- package/chunks/{src-4QH4FZ6I.js → src-IHA6DTUV.js} +452 -62
- package/chunks/{syntheticOutput-5PVFDDJ4.js → syntheticOutput-YTYS2ZMQ.js} +4 -4
- package/chunks/task-create-MPORPYN6.js +19 -0
- package/chunks/task-list-R2YDYPZT.js +151 -0
- package/chunks/{task-stop-AJKPSR6R.js → task-stop-SYWJYBCM.js} +3 -3
- package/chunks/task-update-E4NSLKMQ.js +408 -0
- package/chunks/team-create-7R7KA5IP.js +314 -0
- package/chunks/team-delete-25OIWUPN.js +116 -0
- package/chunks/{todoWrite-VLAUG4CA.js → todoWrite-4YHMIF4X.js} +16 -5
- package/chunks/{tool-search-MZGHUUKD.js → tool-search-YBRVZCLI.js} +29 -11
- package/chunks/{tts-notification-K3X7X7MN.js → tts-notification-7SOEMQK4.js} +5 -4
- package/chunks/{web-fetch-OILB464A.js → web-fetch-MFIRHIHI.js} +5 -5
- package/chunks/workflow-5RIKVCIE.js +960 -0
- package/chunks/{write-file-BIQAA57V.js → write-file-DMQTJZOM.js} +32 -24
- package/chunks/{zh-PWL2NKY3.js → zh-7H5OQC4I.js} +135 -11
- package/chunks/{zh-TW-S3YGWICZ.js → zh-TW-P4IDHD3M.js} +128 -11
- package/cli.js +45402 -20570
- package/examples/agent/agents/diary.md +86 -0
- package/examples/agent/qwen-extension.json +5 -0
- package/examples/commands/commands/fs/grep-code.md +3 -0
- package/examples/commands/qwen-extension.json +5 -0
- package/examples/context/QWEN.md +8 -0
- package/examples/context/qwen-extension.json +5 -0
- package/examples/mcp-server/example.ts +60 -0
- package/examples/mcp-server/package.json +18 -0
- package/examples/mcp-server/qwen-extension.json +12 -0
- package/examples/mcp-server/tsconfig.json +13 -0
- package/examples/skills/qwen-extension.json +5 -0
- package/examples/skills/skills/synonyms/SKILL.md +48 -0
- package/examples/starter/QWEN.md +30 -0
- package/examples/starter/README.md +59 -0
- package/examples/starter/agents/diary.md +86 -0
- package/examples/starter/commands/writing/polish.md +13 -0
- package/examples/starter/example.ts +64 -0
- package/examples/starter/package.json +18 -0
- package/examples/starter/qwen-extension.json +12 -0
- package/examples/starter/skills/synonyms/SKILL.md +48 -0
- package/examples/starter/tsconfig.json +13 -0
- package/fzfWorker.js +1083 -0
- package/locales/ca.js +118 -5
- package/locales/de.js +117 -5
- package/locales/en.js +169 -7
- package/locales/fr.js +119 -5
- package/locales/ja.js +114 -5
- package/locales/pt.js +117 -5
- package/locales/ru.js +116 -5
- package/locales/zh-TW.js +161 -12
- package/locales/zh.js +169 -12
- package/package.json +4 -2
- package/scripts/postinstall.cjs +2 -1
- package/bundled/qc-helper/docs/features/checkpointing.md +0 -77
- package/chunks/agent-7ZN3CRHR.js +0 -48
- package/chunks/chunk-6PCB2DEF.js +0 -434
- package/chunks/chunk-EM6ETG2K.js +0 -60
- package/chunks/chunk-G7YTSRES.js +0 -150
- package/chunks/contextCommand-7IBASARL.js +0 -44
- package/chunks/exitPlanMode-PZAMWIRW.js +0 -227
- package/chunks/multipart-parser-IXGBIOIN.js +0 -384
- package/chunks/read-file-CCUEUFG2.js +0 -24
- package/chunks/ripGrep-TADOH2HK.js +0 -40
- package/chunks/send-message-YL44UZFC.js +0 -151
- package/chunks/shell-7KKKC5G7.js +0 -48
- package/chunks/src-IPWIHNMI.js +0 -1406
- package/chunks/undici-F6ZOXSS5.js +0 -8
package/README.md
CHANGED
|
@@ -1,125 +1,110 @@
|
|
|
1
1
|
# Qwen Code Termux
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[
|
|
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
|
-
|
|
7
|
-
|
|
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
|
+
[](https://www.npmjs.com/package/@mmmbuto/qwen-code-termux)
|
|
7
|
+
[](https://github.com/DioNanos/qwen-code-termux/releases/latest)
|
|
8
|
+
[](./LICENSE)
|
|
21
9
|
|
|
22
10
|
## Install
|
|
23
11
|
|
|
24
|
-
|
|
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
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
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
|
-
|
|
31
|
+
Use upstream:
|
|
39
32
|
|
|
40
33
|
```bash
|
|
41
34
|
npm install -g @qwen-code/qwen-code
|
|
42
35
|
```
|
|
43
36
|
|
|
44
|
-
##
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
cd your-project
|
|
48
|
-
qwen
|
|
49
|
-
```
|
|
37
|
+
## Scope
|
|
50
38
|
|
|
51
|
-
|
|
39
|
+
What this fork does:
|
|
52
40
|
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
46
|
+
What this fork does not do:
|
|
58
47
|
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
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
|
-
##
|
|
53
|
+
## Current Termux Delta
|
|
64
54
|
|
|
65
|
-
|
|
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
|
-
|
|
64
|
+
Fork delta is verifiable end-to-end with:
|
|
68
65
|
|
|
69
|
-
```
|
|
70
|
-
/
|
|
66
|
+
```bash
|
|
67
|
+
bash scripts/check-termux-patches.sh
|
|
71
68
|
```
|
|
72
69
|
|
|
73
|
-
|
|
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
|
-
|
|
72
|
+
## Releases and Updates
|
|
77
73
|
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
84
|
-
Cloud Coding Plan, OpenRouter, Fireworks AI, or another configured API provider.
|
|
78
|
+
Maintainer publish flow:
|
|
85
79
|
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
90
|
+
Qwen Code Termux keeps upstream Qwen Code authentication behavior. Interactive:
|
|
98
91
|
|
|
99
|
-
```
|
|
100
|
-
|
|
92
|
+
```text
|
|
93
|
+
/auth
|
|
101
94
|
```
|
|
102
95
|
|
|
103
|
-
|
|
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
|
-
|
|
107
|
-
|
|
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
|
|
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
|
-
|
|
105
|
+
## Validation
|
|
120
106
|
|
|
121
|
-
- [test-reports/
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149
|
-
[
|
|
150
|
-
|
|
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
|
-
|
|
128
|
+
For generic Qwen Code documentation, refer to [upstream](https://github.com/QwenLM/qwen-code).
|
|
153
129
|
|
|
154
|
-
|
|
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
|
-
|
|
132
|
+
Apache-2.0. This project remains under the Apache 2.0 license inherited from upstream Qwen Code.
|
|
162
133
|
|
|
163
|
-
|
|
164
|
-
|
|
134
|
+
- Original work: Alibaba Cloud (Qwen Team)
|
|
135
|
+
- Termux port: minimal Android compatibility patches
|
|
165
136
|
|
|
166
|
-
See [
|
|
137
|
+
See [LICENSE](./LICENSE).
|
|
167
138
|
|
|
168
|
-
|
|
139
|
+
---
|
|
169
140
|
|
|
170
|
-
|
|
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
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
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
|
|
115
|
-
| ------------- |
|
|
116
|
-
| Permissions | `permissions.allow/ask/deny`
|
|
117
|
-
| MCP Servers | `mcpServers.*`, `mcp.*`
|
|
118
|
-
| Tool Approval | `tools.approvalMode`
|
|
119
|
-
|
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
|
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
|