Skip to content

feat(cli): add kimi and qwen presets to happy acp - #1752

Open
taiyiops wants to merge 1 commit into
slopus:mainfrom
taiyiops:feat/acp-kimi-qwen-presets
Open

feat(cli): add kimi and qwen presets to happy acp#1752
taiyiops wants to merge 1 commit into
slopus:mainfrom
taiyiops:feat/acp-kimi-qwen-presets

Conversation

@taiyiops

@taiyiops taiyiops commented Sep 4, 2026

Copy link
Copy Markdown

Summary

happy acp ships presets for gemini and opencode, but Kimi Code CLI (kimi acp) and Qwen Code (qwen --acp) both speak ACP too, so users have to spell the long form (happy acp -- kimi acp). This PR adds kimi and qwen to KNOWN_ACP_AGENTS so happy acp kimi / happy acp qwen [args] just work, with passthrough args preserved. No behavior change for existing aliases.

Proof

resolveAcpAgentConfig on this branch (run with tsx):

$ resolveAcpAgentConfig(['kimi'])
{"agentName":"kimi","command":"kimi","args":["acp"]}
$ resolveAcpAgentConfig(['qwen','--model','qwen3-coder'])
{"agentName":"qwen","command":"qwen","args":["--acp","--model","qwen3-coder"]}

The target commands exist as documented by the vendors (Kimi Code CLI 0.39.1 on my machine):

$ kimi acp --help
Usage: kimi acp [options]
Run kimi-code as an Agent Client Protocol (ACP) server over stdio.

Qwen Code's flag is --acp (also accepts --experimental-acp).

Unit tests (packages/happy-cli, vitest run --project unit src/agent/acp/acpAgentConfig.test.ts): 9 passed, including new cases for both presets. tsc --noEmit clean.

Notes

  • Kimi runs ACP over stdio exactly like OpenCode; I use happy acp kimi from a self-hosted happy server on a daily basis via the -- form today, this only shortens it.
  • No changes to sync/RPC/encryption/server.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QBfUsLSj8DBVvVmHSqCDqZ

Kimi Code CLI exposes ACP via `kimi acp`, Qwen Code via `qwen --acp`.
Users currently have to spell the full command form (`happy acp -- kimi acp`);
this adds the two aliases next to gemini/opencode so `happy acp kimi` and
`happy acp qwen [args]` work, with passthrough args preserved. Tests updated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01QBfUsLSj8DBVvVmHSqCDqZ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants