[GH-ISSUE #1409] [Feature] Support Qwen Code in rea setup client integrations #486

Closed
opened 2026-10-15 18:25:29 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @yiliang114 on GitHub (Oct 10, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/1409

Area: Setup, packaging, or upgrade

Current limitation

Qwen Code has no REA client, so rea setup cannot register the MCP server for it. Users have to wire the stdio server into ~/.qwen/settings.json by hand, and the bundled skill that setup installs to the shared ~/.agents/skills directory is never discovered, because Qwen Code does not scan that path.

Use cases

  • A Qwen Code user runs npx rea-agents setup and gets a Qwen Code checkbox, the way the OMP request in #1257 was resolved by #1301.
  • After setup, the agent loads both the MCP server and the reverse-engineer-anything workflow with no manual file edits.

Desired outcome and success criteria

  • rea setup --client qwen_code and the interactive multi-select register a pinned stdio entry at mcpServers.rea in ~/.qwen/settings.json, preserving unrelated settings through the same reviewed plan/backup transaction as the other JSON clients.
  • Detection uses the ~/.qwen marker directory.
  • The bundled skill installs where Qwen Code discovers it: ~/.qwen/skills/reverse-engineer-anything.
  • rea doctor --client qwen_code and rea uninstall --client qwen_code cover the registration like the existing clients.

Authority boundaries and non-goals

  • User-level configuration only: no project .qwen/settings.json writes, and no edits to skills.directories or any other unrelated Qwen Code setting.
  • Same package-runner entry shape as the other clients (npx -y rea-agents@<version> mcp); no third-party code execution.

Alternatives considered

  • The documented manual MCP registration JSON works (that is what I run today), and --skill=false avoids a wrongly-placed skill — but detection, doctor, and uninstall all stay blind to the registration.
  • Qwen Code looks like Gemini CLI for MCP only. Both read a mcpServers map from user settings JSON, which is REA's default json dialect. Skills differ: Qwen Code discovers them from project .qwen/skills/, user ~/.qwen/skills/, and the skills.directories setting — not from ~/.agents/skills.

Possible direction

Following the #1301 pattern:

  • SupportedClients.ts — add { name: "qwen_code", displayName: "Qwen Code", configPath: [".qwen", "settings.json"], markerPath: [".qwen"], format: "json" }. The default JSON dialect already writes exactly the mcpServers.<name> → {command, args} entry that Qwen Code loads.
  • SetupSkill.ts — add a qwen_code skill family rooted at ~/.qwen/skills, mirroring the claude_code → ~/.claude/skills branch.
  • Boundary tests for path resolution plus the register → read → uninstall round trip, a tests/fixtures/clientEnvironment.ts entry, and a docs/installation.md table row, per the CONTRIBUTING checks.

Happy to send the PR along these lines if nobody picks it up first.

References

Originally created by @yiliang114 on GitHub (Oct 10, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1409 **Area:** Setup, packaging, or upgrade **Current limitation** [Qwen Code](https://github.com/QwenLM/qwen-code) has no REA client, so `rea setup` cannot register the MCP server for it. Users have to wire the stdio server into `~/.qwen/settings.json` by hand, and the bundled skill that setup installs to the shared `~/.agents/skills` directory is never discovered, because Qwen Code does not scan that path. **Use cases** - A Qwen Code user runs `npx rea-agents setup` and gets a Qwen Code checkbox, the way the OMP request in #1257 was resolved by #1301. - After setup, the agent loads both the MCP server and the `reverse-engineer-anything` workflow with no manual file edits. **Desired outcome and success criteria** - `rea setup --client qwen_code` and the interactive multi-select register a pinned stdio entry at `mcpServers.rea` in `~/.qwen/settings.json`, preserving unrelated settings through the same reviewed plan/backup transaction as the other JSON clients. - Detection uses the `~/.qwen` marker directory. - The bundled skill installs where Qwen Code discovers it: `~/.qwen/skills/reverse-engineer-anything`. - `rea doctor --client qwen_code` and `rea uninstall --client qwen_code` cover the registration like the existing clients. **Authority boundaries and non-goals** - User-level configuration only: no project `.qwen/settings.json` writes, and no edits to `skills.directories` or any other unrelated Qwen Code setting. - Same package-runner entry shape as the other clients (`npx -y rea-agents@<version> mcp`); no third-party code execution. **Alternatives considered** - The documented manual MCP registration JSON works (that is what I run today), and `--skill=false` avoids a wrongly-placed skill — but detection, doctor, and uninstall all stay blind to the registration. - Qwen Code looks like Gemini CLI for MCP only. Both read a `mcpServers` map from user settings JSON, which is REA's default `json` dialect. Skills differ: Qwen Code discovers them from project `.qwen/skills/`, user `~/.qwen/skills/`, and the `skills.directories` setting — not from `~/.agents/skills`. **Possible direction** Following the #1301 pattern: - `SupportedClients.ts` — add `{ name: "qwen_code", displayName: "Qwen Code", configPath: [".qwen", "settings.json"], markerPath: [".qwen"], format: "json" }`. The default JSON dialect already writes exactly the `mcpServers.<name>` → `{command, args}` entry that Qwen Code loads. - `SetupSkill.ts` — add a `qwen_code` skill family rooted at `~/.qwen/skills`, mirroring the `claude_code` → `~/.claude/skills` branch. - Boundary tests for path resolution plus the register → read → uninstall round trip, a `tests/fixtures/clientEnvironment.ts` entry, and a `docs/installation.md` table row, per the CONTRIBUTING checks. Happy to send the PR along these lines if nobody picks it up first. **References** - Qwen Code MCP configuration (`mcpServers` in user settings): https://github.com/QwenLM/qwen-code - Client-request precedent: #1257, resolved by #1301
bsakaguchi 2026-10-15 18:25:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#486
No description provided.