Skills
A Skill is a Markdown file with YAML frontmatter describing reusable knowledge or a workflow. Skills can be invoked manually with a slash command or automatically by the model.
File structure
Two forms:
- Directory form (recommended):
<name>/SKILL.mdplus supporting files. - Flat form:
<name>.md.
If both exist in the same directory, the directory form wins.
Frontmatter fields: name (required in directory form; case-insensitive), description (required in directory form; flat form falls back to the first non-empty body line, 240 chars), type (prompt default / inline (same as prompt) / flow (manual invocation only)), whenToUse (also when-to-use, when_to_use), disableModelInvocation, arguments (array or whitespace-separated; usable in the body as $<name>).
Body placeholders: $ARGUMENTS, $ARGUMENTS[0]/$0, $1… (positional, quoting supported), $<name> (declared args), ${KIMI_SKILL_DIR}. If no placeholder is present, the invocation text is appended as \n\nARGUMENTS: <text>.
Locations
Priority: Project > User > Extra > Built-in.
| Scope | Location |
|---|---|
| User | $KIMI_CODE_HOME/skills/ (default ~/.kimi-code/skills/), ~/.agents/skills/ |
| Project | .kimi-code/skills/, .agents/skills/ |
| Extra | extra_skill_dirs in config.toml (additive); --skills-dir CLI flag (replaces auto-discovery for that launch; repeatable) |
| Built-in | Shipped with the CLI (lowest priority); product skills toggleable via builtin_product_skills |
merge_all_available_skills (config, default true) controls merging skills from all available directories.
Invocation
- Manual:
/skill:<name> [extra text]; shorthand/<name>works when the name isn’t claimed by a system command; sub-skills appear as/<parent>.<sub>. - Automatic: the model invokes
inline-type skills via theSkilltool (blocked bydisableModelInvocation: true; max nesting depth 3). flowskills are manual-only but still exposed via/skill:<name>.- Skill commands entered while the agent is busy are queued;
Ctrl-Ssteers a queued command into the running turn. Unmatched/...input is sent to the agent as a regular message.
Built-in skills
Ship as /<name> (no skill: prefix; idle-only):
| Command | Purpose |
|---|---|
/mcp-config | Configure MCP servers + MCP OAuth login (see MCP: Connecting Servers to Kimi Code) |
/custom-theme [<text>] | Create/edit a TUI theme |
/update-config | Inspect/edit config.toml/tui.toml |
/check-kimi-code-docs | Answer product questions from the official docs |
/import-from-cc-codex | Import Claude Code and Codex instructions, skills, and MCP settings |
/sub-skill | Plus /sub-skill.review, /sub-skill.consolidate |
Example
~/.kimi-code/skills/commit-msg/SKILL.md:
---
name: commit-msg
description: Draft a Conventional Commits message for the staged changes
whenToUse: When the user asks for a commit message
arguments: [scope]
---
Review `git diff --staged` and draft one Conventional Commits message.
Use scope `$scope` if provided. Output the message only, no explanation.
Invoke it:
/skill:commit-msg api
Last verified: 2026-09-07
Official sources:
- https://www.kimi.com/code/docs/en/kimi-code-cli/customization/skills.html
- https://www.kimi.com/code/docs/en/kimi-code-cli/reference/slash-commands.html
- https://www.kimi.com/code/docs/en/kimi-code-cli/configuration/config-files.html
AI coding tools evolve quickly. If you find outdated information, please open an issue or pull request.