@mmmbuto/qwen-code-termux 0.14.3-termux → 0.15.5-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 +1 -1
- package/bundled/batch/SKILL.md +304 -0
- package/bundled/loop/SKILL.md +1 -0
- package/bundled/qc-helper/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +13 -6
- package/bundled/qc-helper/docs/configuration/settings.md +158 -109
- package/bundled/qc-helper/docs/features/_meta.ts +4 -0
- package/bundled/qc-helper/docs/features/arena.md +3 -2
- package/bundled/qc-helper/docs/features/commands.md +67 -11
- package/bundled/qc-helper/docs/features/dual-output.md +593 -0
- package/bundled/qc-helper/docs/features/headless.md +61 -0
- package/bundled/qc-helper/docs/features/hooks.md +408 -120
- package/bundled/qc-helper/docs/features/mcp.md +100 -14
- package/bundled/qc-helper/docs/features/memory.md +168 -0
- package/bundled/qc-helper/docs/features/sandbox.md +9 -1
- package/bundled/qc-helper/docs/features/status-line.md +36 -10
- package/bundled/qc-helper/docs/features/sub-agents.md +126 -7
- package/bundled/qc-helper/docs/features/tips.md +54 -0
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +178 -0
- package/bundled/qc-helper/docs/overview.md +4 -4
- package/bundled/qc-helper/docs/quickstart.md +15 -9
- package/bundled/qc-helper/docs/support/tos-privacy.md +1 -1
- package/bundled/qc-helper/docs/support/troubleshooting.md +9 -3
- package/bundled/review/SKILL.md +3 -2
- package/cli.js +241845 -206771
- package/locales/ca.js +2143 -0
- package/locales/de.js +82 -8
- package/locales/en.js +91 -8
- package/locales/fr.js +2099 -0
- package/locales/ja.js +81 -8
- package/locales/pt.js +83 -8
- package/locales/ru.js +81 -8
- package/locales/zh-TW.js +1678 -0
- package/locales/zh.js +88 -8
- package/package.json +2 -2
- package/bundled/qc-helper/docs/configuration/memory.md +0 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
|
-
> News (2026-04-
|
|
12
|
+
> News (2026-04-10): `v0.15.5-termux` rebuilt from upstream `v0.15.5`. New: compactMode (ex verboseMode), status-line customization, `/model --fast`, plan mode improvements, review skill improvements, adaptive token escalation, qwen3.6-plus model.
|
|
13
13
|
|
|
14
14
|
Qwen Code Termux is a clean fork of [QwenLM/qwen-code](https://github.com/QwenLM/qwen-code), rebuilt release-by-release from upstream and patched only where Android/Termux needs different behavior.
|
|
15
15
|
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: batch
|
|
3
|
+
description: Execute batch operations on multiple files in parallel. Automatically discovers files, splits into chunks, and processes with parallel worker agents. Use `/batch` followed by operation and file pattern.
|
|
4
|
+
argument-hint: '<operation> <file-pattern>'
|
|
5
|
+
allowedTools:
|
|
6
|
+
- task
|
|
7
|
+
- glob
|
|
8
|
+
- grep_search
|
|
9
|
+
- read_file
|
|
10
|
+
- edit
|
|
11
|
+
- write_file
|
|
12
|
+
- run_shell_command
|
|
13
|
+
- ask_user_question
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /batch - Parallel Batch Operations
|
|
17
|
+
|
|
18
|
+
You are orchestrating a batch operation across multiple files. Your job is to:
|
|
19
|
+
|
|
20
|
+
1. Parse the user's request to understand the target files and operation
|
|
21
|
+
2. Discover matching files using glob
|
|
22
|
+
3. Split files into chunks for parallel processing
|
|
23
|
+
4. Launch multiple worker agents to process files concurrently
|
|
24
|
+
5. Aggregate results and present a summary
|
|
25
|
+
|
|
26
|
+
## Step 1: Parse Intent and Discover Files
|
|
27
|
+
|
|
28
|
+
First, parse the user's request to identify:
|
|
29
|
+
|
|
30
|
+
- **Target pattern**: glob pattern for files (e.g., `src/**/*.ts`, `**/*.js`)
|
|
31
|
+
- **Operation**: what to do with each file (e.g., "add JSDoc comments", "convert to TypeScript")
|
|
32
|
+
|
|
33
|
+
If the user didn't specify a pattern, infer it from context or ask for clarification.
|
|
34
|
+
|
|
35
|
+
Use the `glob` tool to discover matching files.
|
|
36
|
+
|
|
37
|
+
**If no files match the pattern**:
|
|
38
|
+
|
|
39
|
+
- Inform the user that no files were found for the given pattern
|
|
40
|
+
- Suggest checking the pattern or broadening the search scope
|
|
41
|
+
- Do not proceed with an empty batch
|
|
42
|
+
|
|
43
|
+
Apply these common exclusions automatically:
|
|
44
|
+
|
|
45
|
+
- `node_modules/**`
|
|
46
|
+
- `dist/**`
|
|
47
|
+
- `build/**`
|
|
48
|
+
- `.git/**`
|
|
49
|
+
- `**/*.test.ts`, `**/*.test.js`
|
|
50
|
+
- `**/*.spec.ts`, `**/*.spec.js`
|
|
51
|
+
- `**/__tests__/**`
|
|
52
|
+
- `**/test/**`, `**/tests/**`
|
|
53
|
+
- `**/package-lock.json`
|
|
54
|
+
- `**/yarn.lock`
|
|
55
|
+
- `**/*.min.js`
|
|
56
|
+
- Binary files (images, fonts, etc.)
|
|
57
|
+
- Files larger than 500KB (check size if needed)
|
|
58
|
+
|
|
59
|
+
**Important**: If more than 50 files match, inform the user with the exact count and the file list, then proceed. The user can cancel (Ctrl+C) if needed. If the count exceeds 100 files, warn the user and suggest a more specific pattern instead of proceeding.
|
|
60
|
+
|
|
61
|
+
## Step 2: Chunk Files for Parallel Processing
|
|
62
|
+
|
|
63
|
+
Split the discovered files into chunks based on these rules:
|
|
64
|
+
|
|
65
|
+
| Total Files | Chunk Count | Files Per Chunk |
|
|
66
|
+
| ----------- | ----------- | --------------- |
|
|
67
|
+
| 1-5 | 1 | All files |
|
|
68
|
+
| 6-15 | 2 | 3-8 each |
|
|
69
|
+
| 16-30 | 3 | ~10 each |
|
|
70
|
+
| 31-50 | 4 | ~10-12 each |
|
|
71
|
+
| 51-75 | 5 | ~10-15 each |
|
|
72
|
+
| 76-100 | 5 | ~15-20 each |
|
|
73
|
+
|
|
74
|
+
**Chunking algorithm**:
|
|
75
|
+
|
|
76
|
+
- Minimum chunk size: 3 files (avoid over-parallelization for small batches)
|
|
77
|
+
- Maximum chunk size: 15 files (ensure reasonable work per agent)
|
|
78
|
+
- Maximum parallel agents: 5 (API rate limit consideration)
|
|
79
|
+
|
|
80
|
+
Example: 24 files → 3 chunks of ~8 files each
|
|
81
|
+
|
|
82
|
+
## Step 3: Launch Parallel Worker Agents
|
|
83
|
+
|
|
84
|
+
Launch worker agents **in parallel** by invoking the `task` tool (the Agent tool) multiple times in a **SINGLE message**.
|
|
85
|
+
|
|
86
|
+
**Note**: The `task` tool in allowedTools is the Agent tool used to spawn worker agents.
|
|
87
|
+
|
|
88
|
+
Each worker agent should receive:
|
|
89
|
+
|
|
90
|
+
- The list of files to process (full paths)
|
|
91
|
+
- The operation to perform
|
|
92
|
+
- Clear instructions to report success/failure per file
|
|
93
|
+
|
|
94
|
+
Use the `general-purpose` subagent type for workers.
|
|
95
|
+
|
|
96
|
+
**CRITICAL**: All Agent tool calls MUST be in a single response to enable parallel execution. The system automatically runs multiple Agent calls concurrently.
|
|
97
|
+
|
|
98
|
+
### Agent Prompt Template
|
|
99
|
+
|
|
100
|
+
For each chunk, use this prompt format:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
You are a worker agent processing a batch of files.
|
|
104
|
+
|
|
105
|
+
**Operation**: [describe the operation, e.g., "Add JSDoc comments to all exported functions"]
|
|
106
|
+
|
|
107
|
+
**Files to process**:
|
|
108
|
+
- [file1.ts]
|
|
109
|
+
- [file2.ts]
|
|
110
|
+
- ...
|
|
111
|
+
|
|
112
|
+
**Instructions**:
|
|
113
|
+
1. Process each file independently
|
|
114
|
+
2. For each file, report one of:
|
|
115
|
+
- SUCCESS: [file path] - [brief description of change]
|
|
116
|
+
- FAILED: [file path] - [reason for failure]
|
|
117
|
+
- SKIPPED: [file path] - [reason for skipping]
|
|
118
|
+
3. If a file fails or is skipped, continue with the next file - do not abort
|
|
119
|
+
4. At the end, provide a summary of what was done
|
|
120
|
+
|
|
121
|
+
**Constraints**:
|
|
122
|
+
- Do not modify test files unless explicitly requested
|
|
123
|
+
- Preserve existing code style and formatting
|
|
124
|
+
- Make minimal necessary changes to accomplish the operation
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Example Invocation Pattern
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
<Agent tool call 1>
|
|
131
|
+
description: "Process batch chunk 1/3"
|
|
132
|
+
prompt: "You are a worker agent... [full prompt as above]"
|
|
133
|
+
subagent_type: "general-purpose"
|
|
134
|
+
</Agent tool call 1>
|
|
135
|
+
|
|
136
|
+
<Agent tool call 2>
|
|
137
|
+
description: "Process batch chunk 2/3"
|
|
138
|
+
prompt: "You are a worker agent... [full prompt as above]"
|
|
139
|
+
subagent_type: "general-purpose"
|
|
140
|
+
</Agent tool call 2>
|
|
141
|
+
|
|
142
|
+
<Agent tool call 3>
|
|
143
|
+
description: "Process batch chunk 3/3"
|
|
144
|
+
prompt: "You are a worker agent... [full prompt as above]"
|
|
145
|
+
subagent_type: "general-purpose"
|
|
146
|
+
</Agent tool call 3>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Step 4: Aggregate Results
|
|
150
|
+
|
|
151
|
+
After all worker agents complete, aggregate their results into a clear summary.
|
|
152
|
+
|
|
153
|
+
### Output Format
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
### Batch Operation Complete
|
|
157
|
+
|
|
158
|
+
**Operation**: [description of what was done]
|
|
159
|
+
**Files discovered**: [total count]
|
|
160
|
+
**Chunks processed**: [number of parallel agents]
|
|
161
|
+
**Total time**: [duration if tracked]
|
|
162
|
+
|
|
163
|
+
| Status | Count |
|
|
164
|
+
| ------- | ----- |
|
|
165
|
+
| Success | [N] |
|
|
166
|
+
| Failed | [N] |
|
|
167
|
+
| Skipped | [N] |
|
|
168
|
+
|
|
169
|
+
**Successful files**:
|
|
170
|
+
|
|
171
|
+
- [file1.ts] - [brief description]
|
|
172
|
+
- [file2.ts] - [brief description]
|
|
173
|
+
...
|
|
174
|
+
|
|
175
|
+
**Failed files** (if any):
|
|
176
|
+
|
|
177
|
+
- [file.ts]: [reason for failure]
|
|
178
|
+
|
|
179
|
+
**Skipped files** (if any):
|
|
180
|
+
|
|
181
|
+
- [file.ts]: [reason for skipping]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Handling Partial Failures
|
|
185
|
+
|
|
186
|
+
If some files failed but others succeeded:
|
|
187
|
+
|
|
188
|
+
- Clearly report which files succeeded
|
|
189
|
+
- List failures with specific reasons
|
|
190
|
+
- Suggest follow-up actions if appropriate
|
|
191
|
+
|
|
192
|
+
If all files failed:
|
|
193
|
+
|
|
194
|
+
- Report the common failure pattern
|
|
195
|
+
- Suggest potential fixes
|
|
196
|
+
|
|
197
|
+
## Step 5: Error Handling
|
|
198
|
+
|
|
199
|
+
### During Batch Processing
|
|
200
|
+
|
|
201
|
+
1. **Single file failure**: Don't abort the batch. The worker agent records the error and continues.
|
|
202
|
+
2. **Agent failure**: If a worker agent fails completely (timeout, crash), note the chunk as failed with reason.
|
|
203
|
+
3. **User cancellation**: If the user sends Ctrl+C, the system will cancel all pending agents gracefully.
|
|
204
|
+
|
|
205
|
+
### Error Reporting
|
|
206
|
+
|
|
207
|
+
For each failed file, include:
|
|
208
|
+
|
|
209
|
+
- File path
|
|
210
|
+
- Specific error message or reason
|
|
211
|
+
- Suggested fix if obvious
|
|
212
|
+
|
|
213
|
+
## Usage Examples
|
|
214
|
+
|
|
215
|
+
### Example 1: Add License Headers
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
/batch Add Apache 2.0 license header to all .ts files in src/
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Flow**:
|
|
222
|
+
|
|
223
|
+
1. glob `src/**/*.ts` → find 45 files
|
|
224
|
+
2. Split into 4 chunks
|
|
225
|
+
3. Launch 4 parallel agents
|
|
226
|
+
4. Each agent adds the license header to its assigned files
|
|
227
|
+
5. Summary: 45 files processed, 45 succeeded, 0 failed
|
|
228
|
+
|
|
229
|
+
### Example 2: Convert JavaScript to TypeScript
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
/batch Convert all .js files in utils/ to TypeScript
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Flow**:
|
|
236
|
+
|
|
237
|
+
1. glob `utils/**/*.js` → find 12 files
|
|
238
|
+
2. Split into 2 chunks
|
|
239
|
+
3. Launch 2 parallel agents
|
|
240
|
+
4. Each agent converts files and renames to .ts
|
|
241
|
+
5. Summary: 12 files processed, 10 succeeded, 2 failed (complex dynamic patterns)
|
|
242
|
+
|
|
243
|
+
### Example 3: Fix Lint Errors
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
/batch Fix all @typescript-eslint/no-explicit-any errors in src/
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Flow**:
|
|
250
|
+
|
|
251
|
+
1. Use `grep_search` to find files containing `: any` pattern in `src/`
|
|
252
|
+
2. Filter to relevant files
|
|
253
|
+
3. Split into chunks and launch parallel agents
|
|
254
|
+
4. Each agent fixes the specific lint issue (replace `any` with proper types)
|
|
255
|
+
5. Summary: 8 files fixed
|
|
256
|
+
|
|
257
|
+
## Constraints and Limits
|
|
258
|
+
|
|
259
|
+
| Constraint | Value | Reason |
|
|
260
|
+
| ------------------- | ----- | ---------------------------- |
|
|
261
|
+
| Max files per batch | 100 | Prevent resource exhaustion |
|
|
262
|
+
| Max parallel agents | 5 | API rate limit consideration |
|
|
263
|
+
| Min files per agent | 3 | Avoid over-parallelization |
|
|
264
|
+
| Max files per agent | 15 | Ensure meaningful work |
|
|
265
|
+
| File size limit | 500KB | Avoid context overflow |
|
|
266
|
+
|
|
267
|
+
## Dry-Run Mode
|
|
268
|
+
|
|
269
|
+
If the user wants to preview what will be changed without actually modifying files (e.g., "preview", "show me what would change", "dry run"):
|
|
270
|
+
|
|
271
|
+
1. Discover and list all matching files with counts
|
|
272
|
+
2. Show the planned operation for each file
|
|
273
|
+
3. Display the chunking strategy
|
|
274
|
+
4. Ask the user if they want to proceed with the actual changes
|
|
275
|
+
5. If user confirms, execute the batch operation
|
|
276
|
+
|
|
277
|
+
**Example**:
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
/batch preview adding JSDoc comments to src/**/*.ts
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Expected output**:
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
### Dry-Run Preview
|
|
287
|
+
|
|
288
|
+
**Operation**: Add JSDoc comments to all .ts files in src/
|
|
289
|
+
|
|
290
|
+
**Files discovered**: 24 files
|
|
291
|
+
|
|
292
|
+
**Chunking plan**:
|
|
293
|
+
| Chunk | Files |
|
|
294
|
+
|-------|-------|
|
|
295
|
+
| 1 | src/utils/a.ts, b.ts, c.ts, ... (8 files) |
|
|
296
|
+
| 2 | src/components/x.ts, y.ts, ... (8 files) |
|
|
297
|
+
| 3 | src/services/m.ts, n.ts, ... (8 files) |
|
|
298
|
+
|
|
299
|
+
**Planned operation per file**:
|
|
300
|
+
- Add JSDoc comments to all exported functions
|
|
301
|
+
- Preserve existing code style
|
|
302
|
+
|
|
303
|
+
Proceed? (y/n)
|
|
304
|
+
```
|
package/bundled/loop/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: loop
|
|
3
3
|
description: Create a recurring loop that runs a prompt on a schedule. Usage - /loop 5m check the build, /loop check the PR every 30m, /loop run tests (defaults to 10m). /loop list to show jobs, /loop clear to cancel all.
|
|
4
|
+
argument-hint: '[interval] <prompt> | list | clear'
|
|
4
5
|
allowedTools:
|
|
5
6
|
- cron_create
|
|
6
7
|
- cron_list
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qc-helper
|
|
3
3
|
description: Answer any question about Qwen Code usage, features, configuration, and troubleshooting by referencing the official user documentation. Also helps users view or modify their settings.json. Invoke with `/qc-helper` followed by a question, e.g. `/qc-helper how do I configure MCP servers?` or `/qc-helper change approval mode to yolo`.
|
|
4
|
+
argument-hint: '<question>'
|
|
4
5
|
allowedTools:
|
|
5
6
|
- read_file
|
|
6
7
|
- edit_file
|
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Qwen Code supports three authentication methods. Pick the one that matches how you want to run the CLI:
|
|
4
4
|
|
|
5
|
-
- **Qwen OAuth**: sign in with your `qwen.ai` account in a browser. Free
|
|
5
|
+
- **Qwen OAuth**: sign in with your `qwen.ai` account in a browser. **Free tier discontinued on 2026-04-15** — switch to another method.
|
|
6
6
|
- **Alibaba Cloud Coding Plan**: use an API key from Alibaba Cloud. Paid subscription with diverse model options and higher quotas.
|
|
7
7
|
- **API Key**: bring your own API key. Flexible to your own needs — supports OpenAI, Anthropic, Gemini, and other compatible endpoints.
|
|
8
8
|
|
|
9
|
-
## Option 1: Qwen OAuth (
|
|
9
|
+
## Option 1: Qwen OAuth (Discontinued)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
> [!warning]
|
|
12
|
+
>
|
|
13
|
+
> The Qwen OAuth free tier was discontinued on 2026-04-15. Existing cached tokens may continue working briefly, but new requests will be rejected. Please switch to Alibaba Cloud Coding Plan, [OpenRouter](https://openrouter.ai), [Fireworks AI](https://app.fireworks.ai), or another provider. Run `qwen auth` to configure.
|
|
12
14
|
|
|
13
15
|
- **How it works**: on first start, Qwen Code opens a browser login page. After you finish, credentials are cached locally so you usually won't need to log in again.
|
|
14
16
|
- **Requirements**: a `qwen.ai` account + internet access (at least for the first login).
|
|
15
17
|
- **Benefits**: no API key management, automatic credential refresh.
|
|
16
|
-
- **Cost & quota**: free
|
|
18
|
+
- **Cost & quota**: the free tier has been discontinued as of 2026-04-15.
|
|
17
19
|
|
|
18
20
|
Start the CLI and follow the browser flow:
|
|
19
21
|
|
|
@@ -327,8 +329,9 @@ You'll see a selector with arrow-key navigation:
|
|
|
327
329
|
```
|
|
328
330
|
Select authentication method:
|
|
329
331
|
|
|
330
|
-
> Qwen OAuth - Free · Up to 1,000 requests/day · Qwen latest models
|
|
331
332
|
Alibaba Cloud Coding Plan - Paid · Up to 6,000 requests/5 hrs · All Alibaba Cloud Coding Plan Models
|
|
333
|
+
API Key - Bring your own API key
|
|
334
|
+
Qwen OAuth - Discontinued — switch to Coding Plan or API Key
|
|
332
335
|
|
|
333
336
|
(Use ↑ ↓ arrows to navigate, Enter to select, Ctrl+C to exit)
|
|
334
337
|
```
|
|
@@ -338,9 +341,10 @@ Select authentication method:
|
|
|
338
341
|
| Command | Description |
|
|
339
342
|
| ---------------------------------------------------- | ------------------------------------------------- |
|
|
340
343
|
| `qwen auth` | Interactive authentication setup |
|
|
341
|
-
| `qwen auth qwen-oauth` | Authenticate with Qwen OAuth |
|
|
342
344
|
| `qwen auth coding-plan` | Authenticate with Alibaba Cloud Coding Plan |
|
|
343
345
|
| `qwen auth coding-plan --region china --key sk-sp-…` | Non-interactive Coding Plan setup (for scripting) |
|
|
346
|
+
| `qwen auth api-key` | Authenticate with an API key |
|
|
347
|
+
| `qwen auth qwen-oauth` | Authenticate with Qwen OAuth (discontinued) |
|
|
344
348
|
| `qwen auth status` | Show current authentication status |
|
|
345
349
|
|
|
346
350
|
**Examples:**
|
|
@@ -355,6 +359,9 @@ qwen auth coding-plan
|
|
|
355
359
|
# Set up Coding Plan non-interactively (useful for CI/scripting)
|
|
356
360
|
qwen auth coding-plan --region china --key sk-sp-xxxxxxxxx
|
|
357
361
|
|
|
362
|
+
# Set up API key (ModelStudio Standard or custom provider)
|
|
363
|
+
qwen auth api-key
|
|
364
|
+
|
|
358
365
|
# Check your current auth configuration
|
|
359
366
|
qwen auth status
|
|
360
367
|
```
|