@qwen-code/qwen-code 0.15.1 → 0.15.2-nightly.20260427.3b0b6c052
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 +31 -4
- package/bundled/qc-helper/docs/configuration/settings.md +0 -8
- package/bundled/qc-helper/docs/features/sub-agents.md +0 -1
- package/bundled/review/SKILL.md +2 -2
- package/cli.js +12296 -7847
- package/locales/ca.js +2143 -0
- package/locales/en.js +7 -0
- package/locales/zh-TW.js +1676 -0
- package/locales/zh.js +5 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -424,7 +424,7 @@ As an open-source terminal agent, you can use Qwen Code in four primary ways:
|
|
|
424
424
|
1. Interactive mode (terminal UI)
|
|
425
425
|
2. Headless mode (scripts, CI)
|
|
426
426
|
3. IDE integration (VS Code, Zed)
|
|
427
|
-
4. TypeScript
|
|
427
|
+
4. SDKs (TypeScript, Python, Java)
|
|
428
428
|
|
|
429
429
|
#### Interactive mode
|
|
430
430
|
|
|
@@ -452,11 +452,38 @@ Use Qwen Code inside your editor (VS Code, Zed, and JetBrains IDEs):
|
|
|
452
452
|
- [Use in Zed](https://qwenlm.github.io/qwen-code-docs/en/users/integration-zed/)
|
|
453
453
|
- [Use in JetBrains IDEs](https://qwenlm.github.io/qwen-code-docs/en/users/integration-jetbrains/)
|
|
454
454
|
|
|
455
|
-
####
|
|
455
|
+
#### SDKs
|
|
456
456
|
|
|
457
|
-
Build on top of Qwen Code with the
|
|
457
|
+
Build on top of Qwen Code with the available SDKs:
|
|
458
458
|
|
|
459
|
-
- [Use the Qwen Code SDK](./packages/sdk-typescript/README.md)
|
|
459
|
+
- TypeScript: [Use the Qwen Code SDK](./packages/sdk-typescript/README.md)
|
|
460
|
+
- Python: [Use the Python SDK](./packages/sdk-python/README.md)
|
|
461
|
+
- Java: [Use the Java SDK](./packages/sdk-java/qwencode/README.md)
|
|
462
|
+
|
|
463
|
+
Python SDK example:
|
|
464
|
+
|
|
465
|
+
```python
|
|
466
|
+
import asyncio
|
|
467
|
+
|
|
468
|
+
from qwen_code_sdk import is_sdk_result_message, query
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
async def main() -> None:
|
|
472
|
+
result = query(
|
|
473
|
+
"Summarize the repository layout.",
|
|
474
|
+
{
|
|
475
|
+
"cwd": "/path/to/project",
|
|
476
|
+
"path_to_qwen_executable": "qwen",
|
|
477
|
+
},
|
|
478
|
+
)
|
|
479
|
+
|
|
480
|
+
async for message in result:
|
|
481
|
+
if is_sdk_result_message(message):
|
|
482
|
+
print(message["result"])
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
asyncio.run(main())
|
|
486
|
+
```
|
|
460
487
|
|
|
461
488
|
## Commands & Shortcuts
|
|
462
489
|
|
|
@@ -223,7 +223,6 @@ The `extra_body` field allows you to add custom parameters to the request body s
|
|
|
223
223
|
| `context.fileFiltering.respectQwenIgnore` | boolean | Respect .qwenignore files when searching. | `true` |
|
|
224
224
|
| `context.fileFiltering.enableRecursiveFileSearch` | boolean | Whether to enable searching recursively for filenames under the current tree when completing `@` prefixes in the prompt. | `true` |
|
|
225
225
|
| `context.fileFiltering.enableFuzzySearch` | boolean | When `true`, enables fuzzy search capabilities when searching for files. Set to `false` to improve performance on projects with a large number of files. | `true` |
|
|
226
|
-
| `context.clearContextOnIdle.thinkingThresholdMinutes` | number | Minutes of inactivity before clearing old thinking blocks to free context tokens. Aligns with typical provider prompt-cache TTL. Use `-1` to disable. | `5` |
|
|
227
226
|
| `context.clearContextOnIdle.toolResultsThresholdMinutes` | number | Minutes of inactivity before clearing old tool result content. Use `-1` to disable. | `60` |
|
|
228
227
|
| `context.clearContextOnIdle.toolResultsNumToKeep` | number | Number of most-recent compactable tool results to preserve when clearing. Floor at 1. | `5` |
|
|
229
228
|
|
|
@@ -430,11 +429,6 @@ LSP server configuration is done through `.lsp.json` files in your project root
|
|
|
430
429
|
| `advanced.dnsResolutionOrder` | string | The DNS resolution order. | `undefined` |
|
|
431
430
|
| `advanced.excludedEnvVars` | array of strings | Environment variables to exclude from project context. Specifies environment variables that should be excluded from being loaded from project `.env` files. This prevents project-specific environment variables (like `DEBUG=true`) from interfering with the CLI behavior. Variables from `.qwen/.env` files are never excluded. | `["DEBUG","DEBUG_MODE"]` |
|
|
432
431
|
| `advanced.bugCommand` | object | Configuration for the bug report command. Overrides the default URL for the `/bug` command. Properties: `urlTemplate` (string): A URL that can contain `{title}` and `{info}` placeholders. Example: `"bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }` | `undefined` |
|
|
433
|
-
| `advanced.tavilyApiKey` | string | API key for Tavily web search service. Used to enable the `web_search` tool functionality. | `undefined` |
|
|
434
|
-
|
|
435
|
-
> [!note]
|
|
436
|
-
>
|
|
437
|
-
> **Note about advanced.tavilyApiKey:** This is a legacy configuration format. For Qwen OAuth users, DashScope provider is automatically available without any configuration. For other authentication types, configure Tavily or Google providers using the new `webSearch` configuration format.
|
|
438
432
|
|
|
439
433
|
#### mcpServers
|
|
440
434
|
|
|
@@ -571,7 +565,6 @@ For authentication-related variables (like `OPENAI_*`) and the recommended `.qwe
|
|
|
571
565
|
| `CLI_TITLE` | Set to a string to customize the title of the CLI. | |
|
|
572
566
|
| `CODE_ASSIST_ENDPOINT` | Specifies the endpoint for the code assist server. | This is useful for development and testing. |
|
|
573
567
|
| `QWEN_CODE_MAX_OUTPUT_TOKENS` | Overrides the default maximum output tokens per response. When not set, Qwen Code uses an adaptive strategy: starts with 8K tokens and automatically retries with 64K if the response is truncated. Set this to a specific value (e.g., `16000`) to use a fixed limit instead. | Takes precedence over the capped default (8K) but is overridden by `samplingParams.max_tokens` in settings. Disables automatic escalation when set. Example: `export QWEN_CODE_MAX_OUTPUT_TOKENS=16000` |
|
|
574
|
-
| `TAVILY_API_KEY` | Your API key for the Tavily web search service. | Used to enable the `web_search` tool functionality. Example: `export TAVILY_API_KEY="tvly-your-api-key-here"` |
|
|
575
568
|
| `QWEN_CODE_UNATTENDED_RETRY` | Set to `true` or `1` to enable persistent retry mode. When enabled, transient API capacity errors (HTTP 429 Rate Limit and 529 Overloaded) are retried indefinitely with exponential backoff (capped at 5 minutes per retry) and heartbeat keepalives every 30 seconds on stderr. | Designed for CI/CD pipelines and background automation where long-running tasks should survive temporary API outages. Must be set explicitly — `CI=true` alone does **not** activate this mode. See [Headless Mode](../features/headless#persistent-retry-mode) for details. Example: `export QWEN_CODE_UNATTENDED_RETRY=1` |
|
|
576
569
|
| `QWEN_CODE_PROFILE_STARTUP` | Set to `1` to enable startup performance profiling. Writes a JSON timing report to `~/.qwen/startup-perf/` with per-phase durations. | Only active inside the sandbox child process. Zero overhead when not set. Example: `export QWEN_CODE_PROFILE_STARTUP=1` |
|
|
577
570
|
|
|
@@ -620,7 +613,6 @@ For sandbox image selection, precedence is:
|
|
|
620
613
|
| `--version` | | Displays the version of the CLI. | | |
|
|
621
614
|
| `--openai-logging` | | Enables logging of OpenAI API calls for debugging and analysis. | | This flag overrides the `enableOpenAILogging` setting in `settings.json`. |
|
|
622
615
|
| `--openai-logging-dir` | | Sets a custom directory path for OpenAI API logs. | Directory path | This flag overrides the `openAILoggingDir` setting in `settings.json`. Supports absolute paths, relative paths, and `~` expansion. Example: `qwen --openai-logging-dir "~/qwen-logs" --openai-logging` |
|
|
623
|
-
| `--tavily-api-key` | | Sets the Tavily API key for web search functionality for this session. | API key | Example: `qwen --tavily-api-key tvly-your-api-key-here` |
|
|
624
616
|
|
|
625
617
|
## Context Files (Hierarchical Instructional Context)
|
|
626
618
|
|
package/bundled/review/SKILL.md
CHANGED
|
@@ -17,7 +17,7 @@ You are an expert code reviewer. Your job is to review code changes and provide
|
|
|
17
17
|
|
|
18
18
|
**Critical rules (most commonly violated — read these first):**
|
|
19
19
|
|
|
20
|
-
1. **Match the language of the PR.** If the PR is in English, ALL your output (terminal + PR comments) MUST be in English. If in Chinese, use Chinese. Do NOT switch languages.
|
|
20
|
+
1. **Match the language of the PR.** If the PR is in English, ALL your output (terminal + PR comments) MUST be in English. If in Chinese, use Chinese. Do NOT switch languages. For **local reviews** (no PR), if the system prompt includes an output language preference, use that language; otherwise follow the user's input language.
|
|
21
21
|
2. **Step 9: use Create Review API** with `comments` array for inline comments. Do NOT use `gh api .../pulls/.../comments` to post individual comments. See Step 9 for the JSON format.
|
|
22
22
|
|
|
23
23
|
**Design philosophy: Silence is better than noise.** Every comment you make should be worth the reader's time. If you're unsure whether something is a problem, DO NOT MENTION IT. Low-quality feedback causes "cry wolf" fatigue — developers stop reading all AI comments and miss real issues.
|
|
@@ -528,4 +528,4 @@ These criteria apply to both Step 4 (review agents) and Step 5 (verification age
|
|
|
528
528
|
- Flag any exposed secrets, credentials, API keys, or tokens in the diff as **Critical**.
|
|
529
529
|
- Silence is better than noise. If you have nothing important to say, say nothing.
|
|
530
530
|
- **Do NOT use `#N` notation** (e.g., `#1`, `#2`) in PR comments or summaries — GitHub auto-links these to issues/PRs. Use `(1)`, `[1]`, or descriptive references instead.
|
|
531
|
-
- **Match the language of the PR.** Write review comments, findings, and summaries in the same language as the PR title/description/code comments. If the PR is in English, write in English. If in Chinese, write in Chinese. Do NOT switch languages.
|
|
531
|
+
- **Match the language of the PR.** Write review comments, findings, and summaries in the same language as the PR title/description/code comments. If the PR is in English, write in English. If in Chinese, write in Chinese. Do NOT switch languages. For **local reviews** (no PR), respect the user's output language preference if set; otherwise follow the user's input language.
|