Problem
Split from #32.
PR #57 shipped one-command installers for Gemini CLI, Goose, opencode, and Amp. However, 4 clients that have stable on-disk config files still only have manual config snippets in mcp-integration.md — users must manually find and edit the right JSON file. This is error-prone and inconsistent with the installer pattern already established for Codex, Claude Code, Gemini CLI, Goose, opencode, and Amp.
Proposed solution
Add hebb <client> install / hebb <client> uninstall commands for:
| Client |
Config file |
Format |
| Cline |
~/.cline/mcp.json (CLI) / VS Code global storage (IDE) |
JSON, mcpServers |
| Kiro |
.kiro/settings/mcp.json or ~/.kiro/settings/mcp.json |
JSON, mcpServers |
| Windsurf |
~/.codeium/windsurf/mcp_config.json |
JSON, mcpServers |
| Cursor |
~/.cursor/mcp.json or .cursor/mcp.json |
JSON, mcpServers |
Follow the pattern in src/hebb/integrations/gemini_cli/ (shared _json_config.py helpers). Each installer should:
- Resolve absolute hebb-mcp path via hebb_mcp_command()
- Be idempotent (re-running replaces prior hebb entry)
- Preserve unrelated config entries
- Use atomic writes (tempfile + os.replace)
Acceptance criteria:
- Each client has install and uninstall commands
- Unit tests covering install, idempotency, config preservation, and uninstall
- mcp-integration.md (EN + zh) updated to recommend installer as primary method
- S1 command-drift CI guard extended to cover new commands
Alternatives considered
Leave as manual snippets only. This works but creates an inconsistent experience — some clients have one-command install, others require manual JSON editing.
Problem
Split from #32.
PR #57 shipped one-command installers for Gemini CLI, Goose, opencode, and Amp. However, 4 clients that have stable on-disk config files still only have manual config snippets in mcp-integration.md — users must manually find and edit the right JSON file. This is error-prone and inconsistent with the installer pattern already established for Codex, Claude Code, Gemini CLI, Goose, opencode, and Amp.
Proposed solution
Add
hebb <client> install/hebb <client> uninstallcommands for:Follow the pattern in src/hebb/integrations/gemini_cli/ (shared _json_config.py helpers). Each installer should:
Acceptance criteria:
Alternatives considered
Leave as manual snippets only. This works but creates an inconsistent experience — some clients have one-command install, others require manual JSON editing.