Skip to content

Commit f64c317

Browse files
Merge pull request #251 from tonyblu331/feat-kimi
feat: kimi support
2 parents 0418eb6 + 367059c commit f64c317

67 files changed

Lines changed: 2455 additions & 102 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/agents.md

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,30 @@
66

77
## Agent Matrix
88

9-
| Agent | ID | Skills | MCP | Delegation | Output Styles | Slash Commands | Config Path |
10-
|-------|-----|--------|-----|------------|---------------|----------------|-------------|
11-
| Claude Code | `claude-code` | Yes | Yes | Full (Task tool) | Yes | No | `~/.claude` |
12-
| OpenCode | `opencode` | Yes | Yes | Full (multi-mode overlay) | No | Yes | `~/.config/opencode` |
13-
| Gemini CLI | `gemini-cli` | Yes | Yes | Full (experimental) | No | No | `~/.gemini` |
14-
| Cursor | `cursor` | Yes | Yes | Full (native subagents) | No | No | `~/.cursor` |
15-
| VS Code Copilot | `vscode-copilot` | Yes | Yes | Full (runSubagent) | No | No | `~/.copilot` + VS Code User profile |
16-
| Codex | `codex` | Yes | Yes | Solo-agent | No | No | `~/.codex` |
17-
| Windsurf | `windsurf` | Yes (native) | Yes | Solo-agent | No | No | `~/.codeium/windsurf` |
18-
| Antigravity | `antigravity` | Yes (native) | Yes | Solo-agent + Mission Control | No | No | `~/.gemini/antigravity` |
19-
| Kiro IDE | `kiro-ide` | Yes | Yes | Full (native subagents) | No | No | `~/.kiro` |
20-
| Qwen Code | `qwen-code` | Yes | Yes | Full (native sub-agents) | No | Yes | `~/.qwen` |
9+
| Agent | ID | Skills | MCP | Delegation | Output Styles | Slash Commands | Config Path |
10+
| --------------- | ---------------- | ------------ | --- | ---------------------------- | ------------- | -------------- | ----------------------------------- |
11+
| Claude Code | `claude-code` | Yes | Yes | Full (Task tool) | Yes | No | `~/.claude` |
12+
| OpenCode | `opencode` | Yes | Yes | Full (multi-mode overlay) | No | Yes | `~/.config/opencode` |
13+
| Gemini CLI | `gemini-cli` | Yes | Yes | Full (experimental) | No | No | `~/.gemini` |
14+
| Cursor | `cursor` | Yes | Yes | Full (native subagents) | No | No | `~/.cursor` |
15+
| VS Code Copilot | `vscode-copilot` | Yes | Yes | Full (runSubagent) | No | No | `~/.copilot` + VS Code User profile |
16+
| Codex | `codex` | Yes | Yes | Solo-agent | No | No | `~/.codex` |
17+
| Windsurf | `windsurf` | Yes (native) | Yes | Solo-agent | No | No | `~/.codeium/windsurf` |
18+
| Antigravity | `antigravity` | Yes (native) | Yes | Solo-agent + Mission Control | No | No | `~/.gemini/antigravity` |
19+
| Kimi | `kimi` | Yes | Yes | Full (native custom agents) | No | No | `~/.kimi` |
20+
| Qwen Code | `qwen-code` | Yes | Yes | Full (native sub-agents) | No | Yes | `~/.qwen` |
21+
| Kiro IDE | `kiro-ide` | Yes | Yes | Full (native subagents) | No | No | `~/.kiro` |
2122

2223
All agents receive the **full SDD orchestrator** injected into their system prompt, plus skill files written to their skills directory. The agent handles SDD automatically when the task is large enough, or when the user explicitly asks for it — no manual setup required.
2324

2425
---
2526

2627
## Delegation Models
2728

28-
| Model | How It Works | Agents |
29-
|-------|-------------|--------|
30-
| **Full (sub-agents)** | Each SDD phase runs in an isolated context window via native sub-agent delegation. The orchestrator coordinates; sub-agents execute. | Claude Code, OpenCode, Gemini CLI, Cursor, VS Code Copilot, Qwen Code |
31-
| **Solo-agent** | All SDD phases run inline in the same conversation. The orchestrator IS the executor. Engram provides cross-phase persistence. | Codex, Windsurf, Antigravity |
29+
| Model | How It Works | Agents |
30+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
31+
| **Full (sub-agents)** | Each SDD phase runs in an isolated context window via native sub-agent delegation. The orchestrator coordinates; sub-agents execute. | Claude Code, OpenCode, Gemini CLI, Cursor, VS Code Copilot, Kimi, Kiro IDE, Qwen Code |
32+
| **Solo-agent** | All SDD phases run inline in the same conversation. The orchestrator IS the executor. Engram provides cross-phase persistence. | Codex, Windsurf, Antigravity |
3233

3334
### Cursor Native Subagents
3435

@@ -78,18 +79,21 @@ Kiro uses native custom agents in `~/.kiro/agents/`. `gentle-ai` writes 10 phase
7879
## Agent Notes
7980

8081
### Claude Code
82+
8183
- Sub-agents via the native Task tool with isolated context windows
8284
- MCP servers configured as plugins in `~/.claude/mcp/`
8385
- Output styles in `~/.claude/output-styles/`
8486
- System prompt via markdown sections in `~/.claude/CLAUDE.md`
8587

8688
### OpenCode
89+
8790
- Full multi-agent overlay with 12 named agents in `opencode.json`
8891
- Slash commands for SDD phases (`/sdd-new`, `/sdd-explore`, etc.)
8992
- Background-agents plugin for parallel execution
9093
- Multi-mode prerequisite: connect your AI providers first, then run `opencode models --refresh`
9194

9295
### Gemini CLI
96+
9397
- Sub-agents are experimental: require `experimental.enableAgents: true` in `settings.json`
9498
- Custom sub-agents defined as markdown files in `~/.gemini/agents/`
9599

@@ -100,31 +104,44 @@ Kiro uses native custom agents in `~/.kiro/agents/`. `gentle-ai` writes 10 phase
100104
- MCP config in `~/.cursor/mcp.json`
101105

102106
### VS Code Copilot
107+
103108
- Uses the `runSubagent` tool with support for parallel execution
104109
- Skills at `~/.copilot/skills/`
105110
- System prompt at `Code/User/prompts/gentle-ai.instructions.md`
106111
- MCP config at `Code/User/mcp.json`
107112

108113
### Codex
114+
109115
- CLI-native agent with TOML config at `~/.codex/config.toml`
110116
- Skills at `~/.codex/skills/`
111117
- System prompt at `~/.codex/agents.md`
112118
- Engram instruction files at `~/.codex/engram-instructions.md`
113119

114120
### Windsurf
121+
115122
- Skills at `~/.codeium/windsurf/skills/` (native Windsurf feature)
116123
- MCP config at `~/.codeium/windsurf/mcp_config.json`
117124
- Global rules at `~/.codeium/windsurf/memories/global_rules.md`
118125
- Workflows at `.windsurf/workflows/` (workspace-scoped)
119126

120127
### Antigravity
128+
121129
- Skills at `~/.gemini/antigravity/skills/` (native Antigravity feature)
122130
- MCP config at `~/.gemini/antigravity/mcp_config.json`
123131
- System prompt appended to `~/.gemini/GEMINI.md` (shared with Gemini CLI — collision check warns if both are installed)
124132
- Mission Control handles built-in sub-agent delegation (Browser, Terminal) automatically
125133
- Settings managed via the IDE's Agent settings UI, not via `settings.json`
126134

135+
### Kimi
136+
137+
- Installation requires the `uv` Python package manager (`uv tool install kimi-cli`).
138+
- Root custom agent at `~/.kimi/agents/gentleman.yaml` with `system_prompt_path: ../KIMI.md`
139+
- `KIMI.md` is a thin Jinja template that includes modular prompt files:
140+
`persona.md`, `output-style.md`, `engram-protocol.md`, `sdd-orchestrator.md`
141+
- Built-in Kimi variables are preserved in `KIMI.md`: `${KIMI_AGENTS_MD}` and `${KIMI_SKILLS}`
142+
127143
### Kiro IDE
144+
128145
- **Detection**: gentle-ai detects Kiro from its config root (`~/.kiro`) during install/TUI discovery — `~/.kiro` must exist (created on first Kiro launch). `kiro` on `PATH` is also checked for sync/upgrade flows but is not required for install auto-detection
129146
- **Steering file** (all platforms): `~/.kiro/steering/gentle-ai.md` with frontmatter `inclusion: always`
130147
- Native subagents at `~/.kiro/agents/sdd-{phase}.md` (10 files)

docs/platforms.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,6 @@ If the hash matches `checksums.txt`, the file is authentic for that release.
5858
| VS Code Copilot | `%APPDATA%\Code\User\` (settings, MCP, prompts) + `%USERPROFILE%\.copilot\` (skills) |
5959
| Codex | `%USERPROFILE%\.codex\` |
6060
| Windsurf | `%USERPROFILE%\.codeium\windsurf\` (skills, MCP, rules) + `%APPDATA%\Windsurf\User\` (settings) |
61+
| Kimi | `%USERPROFILE%\.kimi\` (includes `config.toml`, system prompt, agents, MCP) |
6162
| Antigravity | `%USERPROFILE%\.gemini\antigravity\` |
6263
| Kiro IDE | `%USERPROFILE%\.kiro\steering\` (prompts) + `%USERPROFILE%\.kiro\skills\` (skills) + `%USERPROFILE%\.kiro\agents\` (SDD agents) + `%APPDATA%\kiro\User\settings.json` (settings) + `%USERPROFILE%\.kiro\settings\mcp.json` (MCP) |

internal/agents/factory.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
cursoradapter "github.com/gentleman-programming/gentle-ai/internal/agents/cursor"
1010
"github.com/gentleman-programming/gentle-ai/internal/agents/gemini"
1111
"github.com/gentleman-programming/gentle-ai/internal/agents/kilocode"
12+
"github.com/gentleman-programming/gentle-ai/internal/agents/kimi"
1213
"github.com/gentleman-programming/gentle-ai/internal/agents/kiro"
1314
"github.com/gentleman-programming/gentle-ai/internal/agents/opencode"
1415
"github.com/gentleman-programming/gentle-ai/internal/agents/qwen"
@@ -37,6 +38,8 @@ func NewAdapter(agent model.AgentID) (Adapter, error) {
3738
return antigravity.NewAdapter(), nil
3839
case model.AgentWindsurf:
3940
return windsurf.NewAdapter(), nil
41+
case model.AgentKimi:
42+
return kimi.NewAdapter(), nil
4043
case model.AgentQwenCode:
4144
return qwen.NewAdapter(), nil
4245
case model.AgentKiroIDE:
@@ -47,7 +50,7 @@ func NewAdapter(agent model.AgentID) (Adapter, error) {
4750
}
4851

4952
func NewDefaultRegistry() (*Registry, error) {
50-
adapters := make([]Adapter, 0, 9)
53+
adapters := make([]Adapter, 0, 12)
5154

5255
for _, agent := range []model.AgentID{
5356
model.AgentClaudeCode,
@@ -59,6 +62,7 @@ func NewDefaultRegistry() (*Registry, error) {
5962
model.AgentCodex,
6063
model.AgentAntigravity,
6164
model.AgentWindsurf,
65+
model.AgentKimi,
6266
model.AgentQwenCode,
6367
model.AgentKiroIDE,
6468
} {

0 commit comments

Comments
 (0)