Qwen Code

WarnAudited by ClawScan on May 10, 2026.

Overview

This is a coherent Qwen CLI wrapper, but it deserves review because it encourages background/auto-approved code changes and includes raw shell wrappers plus local Qwen credential/session access.

Install only if you trust the Qwen CLI and this wrapper. Pin the Qwen package instead of using `@latest`, avoid YOLO/auto-approve except in disposable or version-controlled workspaces, review generated changes before committing, and do not pass untrusted strings into the MCP/extension wrappers until the shell execution is hardened.

Findings (7)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Qwen may modify project files automatically, and background or parallel runs could make changes that are harder to review or stop in time.

Why it was flagged

The skill explicitly recommends an auto-approval mode for code-building/refactoring tasks, which can allow file changes without per-change human review.

Skill content
YOLO mode (auto-approve) ... command:"qwen -p 'Refactor this function' -y" ... "YOLO mode for building — `--yolo` auto-approves changes"
Recommendation

Require explicit user approval before using `-y`/`--yolo`, prefer review or dry-run modes for real projects, and limit runs to a disposable or version-controlled workspace.

What this means

If untrusted or malformed arguments reach these commands, shell metacharacters could run unintended local commands with the user's privileges.

Why it was flagged

The MCP command wrapper builds a shell command string from command-line arguments instead of passing an argument array. Similar shell-string execution is also used for extensions.

Skill content
execSync(`qwen ${mcpArgs.join(' ')}`, { stdio: 'inherit' });
Recommendation

Replace shell-string `execSync` with `spawn`/`execFile` using argument arrays, validate allowed subcommands, and require confirmation before MCP or extension changes.

What this means

Users may overestimate the amount of confirmation they will get before changes are made.

Why it was flagged

The safety statement that modifications require confirmation conflicts with the documented auto-approval mode.

Skill content
"All code generation and modifications require user confirmation" ... "YOLO mode for building — `--yolo` auto-approves changes"
Recommendation

Clarify that YOLO mode bypasses normal confirmation, make review mode the default recommendation, and label auto-approval as a high-risk option.

What this means

The skill can affect persistent agent behavior, not just run a temporary code task.

Why it was flagged

The script includes functionality to spawn Qwen agents and create persistent skill files under the user's Qwen skill directory.

Skill content
agentArgs = ['-i', `/agent spawn ${agentName} ${task}`]; ... fs.writeFileSync(path.join(skillDir, 'index.js'), `// ${skillName} Skill\nmodule.exports = { name: '${skillName}', execute: async (ctx) => {} };\n`);
Recommendation

Gate agent spawning and skill creation behind explicit user confirmation, validate skill names/paths, and document these capabilities in the main security section.

What this means

The skill can observe whether your local Qwen account/API key is configured and then run Qwen using your account context.

Why it was flagged

The wrapper reads local Qwen authentication settings to determine OAuth/API-key status. This is expected for a Qwen integration, and the shown code only prints a short key prefix.

Skill content
const SETTINGS_FILE = path.join(QWEN_DIR, 'settings.json'); ... settings.auth || settings.accessToken ... settings.env?.BAILIAN_CODING_PLAN_API_KEY
Recommendation

Use a dedicated Qwen account/API key where possible and avoid running the skill in environments with unrelated sensitive credentials in the inherited environment.

What this means

A future or compromised package release could change the behavior users get when following the install instructions.

Why it was flagged

The setup uses a global, unpinned package install. Installing the Qwen CLI is central to the skill, but `@latest` makes the installed code depend on whatever version is current at install time.

Skill content
npm install -g @qwen-code/qwen-code@latest
Recommendation

Pin the Qwen CLI version, install from a trusted source, and review release notes before upgrading.

What this means

Old prompts, outputs, or poisoned context in a project session could affect future Qwen tasks.

Why it was flagged

The Qwen CLI stores and can resume project chat sessions. This is normal for a coding assistant but means prior context may influence later runs.

Skill content
会话数据: `~/.qwen/projects/<cwd>/chats` ... `--continue` ... `--resume <id>`
Recommendation

Use fresh sessions for sensitive work, review resumed context, and clear old Qwen project chats when they are no longer needed.