PLATFORM_SPEC.md — Kimi Code CLI (Moonshot AI)¶
New to gald3r on this platform? Start at Use gald3r with Kimi Code for a short overview before the full breakdown below.
The tool branded kimi for coding is Kimi Code, delivered primarily as the open-source
Kimi Code CLI (MoonshotAI/kimi-code, renamed from MoonshotAI/kimi-cli in the same 2026
release that moved the CLI from Python/uv to Node.js) plus a VS Code extension and third-party
editor integrations (JetBrains, Zed via ACP). Model id: kimi-for-coding / kimi-k2 family. As of
early-July-2026 the Kimi Code CLI natively supports all six gald3r-relevant extension
primitives — Agent Skills, rules/memory, subagents, lifecycle hooks, MCP, and user-defined commands
(expressed through Skills + Plugins).
Rebrand impact on gald3r (read this first): the repo rename
kimi-cli→kimi-codecarried a config-directory rename: project-level.kimi/→.kimi-code/, and the user-level home~/.kimi/→~/.kimi-code/(overridable via theKIMI_CODE_HOMEenv var). The skill cross-discovery set also changed — the current docs list.kimi-code/skills/and.agents/skills/(project) plus$KIMI_CODE_HOME/skills/and~/.agents/skills/(user); they no longer document.claude/skills/or.codex/skills/as discovery paths. Treat the old.claude/skills/-reuse claim as no longer verified — gald3r'sSKILL.mdtree should be shipped into.kimi-code/skills/(or.agents/skills/) for Kimi, not assumed to load from.claude/skills/.
Authoring path: UPDATE. Re-verified 2026-07-03 against https://www.kimi.com/code/docs/en (mirror https://moonshotai.github.io/kimi-code/en/ — see Verification Evidence). Overall readiness: full — nearly the complete gald3r primitive set is natively supported.
Instruction-file convention: Kimi's canonical project-instruction file is
AGENTS.md(generated by/init, injected into the system prompt via the built-inKIMI_AGENTS_MDtemplate variable) — notCLAUDE.md. This is unchanged by the rebrand.AGENTS.mdis also read at$KIMI_CODE_HOME/AGENTS.md(global) and~/.agents/AGENTS.md(cross-tool).Maturity caveat: Custom Plugins remain Beta. Hooks are documented as a complete customization surface in the new docs (no explicit Beta marker seen in the rebrand docs), but re-verify on the next scan since the underlying runtime changed (Python/uv → Node.js). User-defined commands are expressed through Skills/Plugins rather than a dedicated standalone slash-command authoring file.
1. Folder Hierarchy¶
<project-root>/
├── AGENTS.md ← instruction file (generated by /init; injected via KIMI_AGENTS_MD)
├── .kimi-code/
│ ├── local.toml ← project-local workspace settings (gitignored)
│ └── skills/ <name>/SKILL.md ← Agent Skills (YAML frontmatter + Markdown body)
└── .agents/skills/ <name>/SKILL.md ← ALSO discovered by Kimi (cross-tool compatible)
$KIMI_CODE_HOME/ (default ~/.kimi-code/)
├── config.toml ← hooks ([[hooks]]) + settings (TOML)
├── tui.toml ← UI preferences
├── AGENTS.md ← global instruction file
├── skills/ <name>/SKILL.md ← user-level skills
├── agents/ <name>.yaml ← built-in / custom agent specs (also --agent-file)
└── plugins/ <name>/plugin.json ← Custom Plugins (Beta), via `kimi plugin install`
~/.agents/
├── AGENTS.md ← cross-tool global instructions
└── skills/ <name>/SKILL.md ← cross-tool user-level skills
Skill discovery order: Project > User > Extra > Built-in. Extra dirs via --skills-dir or
extra_skill_dirs config. As of the kimi-code rebrand, verified cross-tool discovery is limited
to .agents/skills/ (project) and ~/.agents/skills/ (user) — .claude/skills/ and
.codex/skills/ are no longer listed in the current skills doc (see Verification Evidence).
Re-verify before relying on legacy .claude//.codex/ reuse.
gald3r writes: AGENTS.md; Agent Skills (SKILL.md) into .kimi-code/skills/ (native) and/or
.agents/skills/ (cross-tool); subagent YAML specs; hooks in $KIMI_CODE_HOME/config.toml
(default ~/.kimi-code/config.toml); MCP servers via kimi mcp / /mcp-config.
Kimi owns: the config.toml schema, the KIMI_AGENTS_MD injection mechanism, and the
built-in subagents (coder, explore, plan).
2. AI Instruction File¶
Kimi reads AGENTS.md as the project instruction file. If absent, /init analyzes the project
and generates it; it is then injected into the Agent system prompt via the built-in KIMI_AGENTS_MD
template variable, so it persists as always-on project context for the session. No CLAUDE.md
or KIMI.md is required. Unchanged by the kimi-cli → kimi-code rebrand. The current docs also
confirm AGENTS.md at $KIMI_CODE_HOME/AGENTS.md (global) and ~/.agents/AGENTS.md (cross-tool)
as additional scopes. gald3r's AGENTS.md is the first-class instruction input on Kimi.
3. Agents Support — ✅ NATIVE¶
- Agents & Subagents. Built-in subagents (
coder,explore,plan) dispatch in isolated contexts. Users define custom agents/subagents as YAML agent-spec files loaded viakimi --agent-file /path/to/my-agent.yaml(or built-in agents undersrc/kimi_cli/agents/). - Agent specs support
extend(inheritance),name,system_prompt_path,tools(module:ClassName),exclude_tools, and asubagentsblock. Subagents are prohibited from nesting the Agent tool (no recursive nesting). - gald3r
g-agnt-*definitions map to Kimi YAML agent specs. - Source: https://moonshotai.github.io/kimi-code/en/customization/agents.html
4. Skills Support — ✅ NATIVE¶
- Agent Skills using
SKILL.md(YAML frontmatter + Markdown prompt body). Required frontmatter for directory-form skills:nameanddescription. Optional:type(prompt|inline|flow),whenToUse(auto-invocation triggers),disableModelInvocation,arguments(named params exposed as$<name>placeholders). - Discovery tiers (rebrand-current): user
$KIMI_CODE_HOME/skills/(default~/.kimi-code/skills/) and~/.agents/skills/; project.kimi-code/skills/and.agents/skills/; extra viaextra_skill_dirsinconfig.toml; built-in lowest priority..claude/skills/and.codex/skills/are no longer documented as discovery paths post-rebrand — gald3r should shipSKILL.mdinto.kimi-code/skills/(native) or.agents/skills/(cross-tool with other AGENTS.md-native platforms), not rely on.claude/reuse for Kimi specifically. - Manual invocation:
/skill:<name>(e.g./skill:git-commits fix concurrency issuepasses arguments). Automatic invocation usesdescription/whenToUseunlessdisableModelInvocationortype: flowrestricts it. - Flow skills (
type: flow) embed Mermaid/ Agent Flow diagrams withBEGIN/ENDnodes for multi-step automated workflows, run via/flow:<name>— an adoptable workflow-automation primitive beyond plain prompt skills. - Source: https://moonshotai.github.io/kimi-code/en/customization/skills.html
5. Commands / Workflows — ✅ NATIVE¶
- User-authored commands are expressed via Agent Skills invoked as
/skill:<name>and Flow skills as/flow:<name>(saved prompt templates), plus Custom Plugins (Beta) that declare executable tools viaplugin.json./skill:<name>"reads the corresponding SKILL.md file content and sends it to the Agent as a prompt." - Built-in
/-commands (/help,/init,/hooks,/mcp-config, etc.) are not user-extensible. There is no separate top-level slash-command authoring file distinct from Skills — Skills + Plugins are the documented user-defined-command path. - gald3r
@g-*//g-*commands map to Kimi Skills (/skill:<name>). - Source: https://moonshotai.github.io/kimi-code/en/customization/skills.html
6. Hooks System — ✅ NATIVE¶
- 13 lifecycle events (rebrand docs list these; some renamed/added vs. the pre-rebrand set):
SessionStart, SessionEnd, PreToolUse, PostToolUse, PostToolUseFailure, UserPromptSubmit, Stop,
SubagentStart, SubagentStop, PermissionRequest, PermissionResult, Notification (+ blockable
markers on
UserPromptSubmit,PreToolUse,Stop). Re-verify the exact 13-name list on the next scan —PermissionRequest/PermissionResultappear new vs. the pre-rebrandPreCompact/PostCompact/StopFailurenaming; both sets are recorded here pending a full diff. - Defined in
$KIMI_CODE_HOME/config.toml(default~/.kimi-code/config.toml) using[[hooks]]array syntax with fieldsevent+command(shell command) required, optionalmatcher(regex) andtimeout(1–600s, default 30s). Hooks receive JSON on stdin; exit 0 = allow, exit 2 = block, other = log only. Managed/viewed via/hooks. - Use cases: auto-format, security checks blocking dangerous ops, protecting sensitive files,
desktop notifications, verifying task completion before session close — so gald3r SessionStart
context injection, PreToolUse
.gald3r/guards, and pre-commit gates wire in via shell commands. - OS note: hook
commandis an arbitrary shell command; gald3rg-hk-*.pyhooks run by invokingpython <path>directly (no PowerShell involved — Kimi Code is cross-platform and shell-agnostic). - gald3r wiring status (re-verified 2026-08-30): still not wired in
layout_map.yaml—[[hooks]]registration lives only in the USER-GLOBAL$KIMI_CODE_HOME/config.toml;.kimi-code/local.tomlis documented as project-local settings, never hooks. A 2026-08-30 live re-fetch surfaced one new, potentially useful detail for a future pass: "the working directory for hook commands is the current session's project directory" — i.e. the OS-level process cwd genuinely tracks the active project, unlike Hermes. That is real signal a relative-path command COULD resolve correctly per-project, but it does not remove the actual blocker (the registration file itself is still global with no project override), and this repo has no live Kimi install to confirm the behavior described. Left unwired; seelayout_map.yaml's own kimi comment block for the full citation. - Source: https://moonshotai.github.io/kimi-code/en/customization/hooks.html
7. Rules / Memory — ✅ NATIVE¶
AGENTS.mdis the always-on project instruction/memory file, injected viaKIMI_AGENTS_MDinto the Agent system prompt. Generated/refreshed by/init. This is Kimi's rules surface — a single project instruction file rather than a multi-filerules/directory.- gald3r
g-rl-*content maps intoAGENTS.mdsections (Kimi has no documented per-fileglobs:-scoped rule directory; consolidate rule guidance intoAGENTS.md). - Source: https://moonshotai.github.io/kimi-code/en/guides/getting-started.html
8. MCP Support — ✅ NATIVE¶
- Model Context Protocol (MCP) tools. Managed via the
kimi mcpsub-command group and conversationally via/mcp-config(AI-native add/edit/authenticate without hand-editing JSON). Servers add tools the agent can call. - Source: https://moonshotai.github.io/kimi-code/en/customization/skills.html
9. Plugins / Distribution — distribution channel (Beta)¶
- Custom Plugins (Beta): a plugin is a directory with
plugin.jsondeclaring executable tools (Python/TypeScript/shell) the AI can invoke; tools take JSON-Schema parameters, receive stdin, return stdout. Installed viakimi plugin install <dir|zip|git-url>, stored in$KIMI_CODE_HOME/plugins/(default~/.kimi-code/plugins/). Distinct from MCP (lightweight local toolkits) and from Skills (knowledge/prompt guidance). Official Plugins also exist. This is a natural distribution channel for gald3r executable tooling on Kimi. - API compatibility: exposes OpenAI-compatible and Anthropic-compatible endpoints
(
kimi-for-coding), plus VS Code extension and ACP/Wire-Protocol integration for third-party editors (JetBrains, Zed, Zsh). - Source: https://moonshotai.github.io/kimi-code/en/customization/skills.html
Parity vs. Cursor Reference¶
Kimi reaches near-full parity with the Cursor reference (g-skl-platform-cursor): native
commands (via Skills/Plugins), rules (AGENTS.md), agents, skills, hooks, and MCP. Caveats: the
full surface is CLI-centric; Custom Plugins are Beta; rules are a single AGENTS.md
file rather than a scoped rules/ directory; and user-defined commands are expressed through
Skills/Plugins (no standalone slash-command authoring file). Flow skills (Mermaid/ workflow
automation) are a Kimi-native bonus with no direct Cursor analog.
Reuse note (rebrand-updated): the current docs list .agents/skills/ (project + user) as the
cross-tool discovery path, not .claude/skills//.codex/skills/ — that legacy claim is
unverified post-rebrand. The highest-confidence Kimi install ships gald3r's SKILL.md tree into
.kimi-code/skills/ (native) or .agents/skills/ (cross-tool with other AGENTS.md-native
platforms), plus an AGENTS.md, with hooks wired in $KIMI_CODE_HOME/config.toml (default
~/.kimi-code/config.toml).
Hook System¶
- Type: native —
$KIMI_CODE_HOME/config.toml(default~/.kimi-code/config.toml)[[hooks]]array - Config file:
~/.kimi-code/config.toml(TOML; relocatable viaKIMI_CODE_HOME) - Events available (rebrand docs): SessionStart, SessionEnd, PreToolUse, PostToolUse, PostToolUseFailure, UserPromptSubmit, Stop, SubagentStart, SubagentStop, PermissionRequest, PermissionResult, Notification (partial list confirmed; full 13-event enumeration pending a dedicated re-scan — see rebrand_note in frontmatter)
- Event payload format: JSON via stdin; result via exit codes (
0allow /2block / other = log only); optionalmatcherregex +timeout(1-600s, default 30s) - Command extensions: arbitrary shell
command;g-hk-*.pywire viapython <path>(no PowerShell involved — cross-platform agent) - Maturity: documented as a complete customization surface post-rebrand; re-verify stability given the Python/uv → Node.js runtime change
Atypical Handling¶
- Instruction file is
AGENTS.md, notCLAUDE.md— inject gald3r guidance there (Kimi uses theKIMI_AGENTS_MDtemplate variable). Post-rebrand, skills load from.kimi-code/skills//.agents/skills/— do not assume.claude/skills//.codex/skills/reuse without re-checking. - Config directory renamed:
.kimi/→.kimi-code/(project),~/.kimi/→~/.kimi-code/(user, overridable viaKIMI_CODE_HOME). Config is TOML (config.toml) for hooks/settings; agent specs are YAML; skills areSKILL.md(YAML frontmatter + Markdown). Three different formats across surfaces. - User-defined commands = Skills/Plugins — there is no dedicated standalone slash-command file;
map gald3r commands to
/skill:<name>. - Custom Plugins remain Beta — do not assume long-term config stability for
plugin.json; re-verify on each scan.
gald3r Integration Notes¶
- Ship gald3r's
SKILL.mdtree into.kimi-code/skills/(native) or.agents/skills/(cross-tool) + anAGENTS.mdinstruction file (or run/init). - Wire hooks in
$KIMI_CODE_HOME/config.toml(default~/.kimi-code/config.toml) via[[hooks]]; invokeg-hk-*.pythroughpython <path>(no PowerShell involved). - Map gald3r commands to Kimi
/skill:<name>; consider Flow skills (type: flow) for multi-step gald3r workflows and Custom Plugins for executable tooling. - Re-verify on the next
@g-platform-scan-docs kimi(crawl_max_age_days: 14) — confirm the full 13-event hook list and Plugin maturity post rebrand; the old.claude/skills/cross-discovery claim should be treated as retired unless a future scan reinstates it.
Capability Summary¶
| Hooks | Rules | Skills | Commands | MCP | Docs Fresh |
|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Legend: ✅ verified working · ⚠️ partial / Cursor-generic · ❌ not supported · ❓ untested.
Verification Evidence¶
Rebrand re-scan (2026-07-03) — https://www.kimi.com/code/docs/en — mirror https://moonshotai.github.io/kimi-code/en/¶
| Capability | How verified |
|---|---|
| Rebrand | Repo MoonshotAI/kimi-cli renamed MoonshotAI/kimi-code (v0.22.2, 2026-07-03); www.kimi.com/code/docs confirms "major version upgrade — moving from Python/uv to Node.js", legacy Python docs frozen/no-longer-maintained. "Kcode" is not a separate product — no independent product of that name is verifiable in English or Chinese sources; every signal (repo, docs, GitHub Copilot GA note) resolves to this same Kimi Code / Kimi K2.7 Code rebrand. |
| Config home | /configuration/config-files — ~/.kimi-code/config.toml (default), ~/.kimi-code/tui.toml; override via KIMI_CODE_HOME env var; project-local <project-root>/.kimi-code/local.toml (gitignored) |
| Skills | /customization/skills — SKILL.md (name+description required; optional type/whenToUse/disableModelInvocation/arguments); discovery = $KIMI_CODE_HOME/skills/ + ~/.agents/skills/ (user), .kimi-code/skills/ + .agents/skills/ (project), extra_skill_dirs (extra), built-in (lowest) — .claude/skills//.codex/skills/ not listed |
| Commands | /customization/skills — /skill:<name> (manual, supports arguments) + /flow:<name>; automatic invocation via description/whenToUse unless disableModelInvocation/type: flow |
| Hooks | /customization/hooks — ~/.kimi-code/config.toml [[hooks]]; fields event/command required, matcher/timeout (1-600s, default 30) optional; JSON stdin; exit 0 allow / 2 block / other log-only; events include SessionStart, SessionEnd, PreToolUse, PostToolUse, PostToolUseFailure, UserPromptSubmit, Stop, SubagentStart, SubagentStop, PermissionRequest, PermissionResult, Notification (blockable: UserPromptSubmit/PreToolUse/Stop) |
| Agents | /customization/agents — global $KIMI_CODE_HOME/AGENTS.md (default ~/.kimi-code/AGENTS.md), cross-tool ~/.agents/AGENTS.md, project .kimi-code/AGENTS.md or AGENTS.md; single AGENTS.md convention confirmed, no KIMI.md/CLAUDE.md alternative |
| Rules/Instructions | /guides/getting-started — confirms ~/.kimi-code/ as the default local-data directory, KIMI_CODE_HOME override |
| Cross-compat (changed) | Rebrand docs list .agents/skills/ for cross-tool discovery; .claude/skills//.codex/skills/ reuse claim from the pre-rebrand spec is not reproduced in current docs — downgraded to unverified until a future scan confirms either way |
Sources cited by the task brief and cross-checked here: https://github.com/MoonshotAI/kimi-code ; https://www.techtimes.com/articles/319556/20260702/open-weight-ai-enters-github-copilot-kimi-k27-code-costs-less-audits-differently.htm
Prior scan (2026-06-02) — https://moonshotai.github.io/kimi-cli/en/ (pre-rebrand mirror, now superseded)¶
| Capability | How verified |
|---|---|
| Commands | /customization/skills — user commands via /skill:<name> + /flow:<name> (Skills) and Custom Plugins (Beta); built-in /-commands not user-extensible |
| Rules | /guides/getting-started — AGENTS.md generated by /init, injected via KIMI_AGENTS_MD system-prompt variable (always-on context) |
| Agents | /customization/agents — built-in coder/explore/plan subagents; custom YAML specs via --agent-file (extend/tools/exclude_tools/subagents) |
| Skills | /customization/skills — SKILL.md (YAML frontmatter + Markdown); discovered .kimi/.claude/.codex/.agents skills dirs (pre-rebrand); Flow skills type: flow |
| Hooks | /customization/hooks — ~/.kimi/config.toml [[hooks]]; 13 events; JSON stdin; exit 0 allow / 2 block; Beta |
| MCP | /customization/skills — kimi mcp sub-command group + /mcp-config (AI-native, no JSON hand-editing) |
| Plugins | /customization (Custom Plugins, Beta) — plugin.json executable tools; kimi plugin install; stored ~/.kimi/plugins/ |
| Cross-compat | Pre-rebrand docs claimed .claude/skills/ + .codex/skills/ discovery — superseded, see rebrand re-scan above |
Reference page — canonical source: g-skl-platform-kimi/PLATFORM_SPEC.md in the engine repo, generated by scripts/generate_platform_support_docs.py. Pages marked curated are hand-assessed and not yet live-verified.