3行でいうと
- Kimi Code CLIの拡張は5種類です。MCP(外部ツール)、スキル(Markdownの手順書)、サブエージェント(役割別の助手)、フック(イベントで動くスクリプト)、プラグイン(これらを束ねる単位)。置き場所は、自分の全プロジェクト向けの
~/.kimi-code/と、リポジトリごとの.kimi-code/の2層が基本です。 - リポジトリに入っている拡張は、動き出しうるものとして扱われます。公式は、プロジェクトの
.kimi-code/mcp.jsonの stdio 項目は、セッション開始時にローカルのコマンドを実行する、と書き、プロジェクトのエージェントファイルも、見知らぬリポジトリでは先に中身を見るよう警告しています。 - 他のエージェントからKimiを使う入口は2つです。Kimi Codeの会員のキー(接続先
api.kimi.ai/coding)と、従量課金のOpen Platformのキー(接続先api.moonshot.ai)。取り違えると通らなくなります(Open Platform側の文書は、401はキーが無効か、プラットフォームと合っていない場合、と書いています)。Claude Code、Codex、OpenCode、Hermes Agentに、公式が設定例を出しています。 - Kimi Codeのコミュニティガイドラインは、会員の利用を対話的な使い方に限り、非対話の自動化とクライアント情報の偽装を禁じています。拡張や他社ツールと組み合わせる前に読みます。
この記事は、公式ドキュメントを2026年10月24日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。運営者はKimiを入れていますが、使い心地はこの記事には書いていません。設定の例は公式に書かれたとおりに写してあり、動作確認はしていません。公式ページは要約の形で取得したため、読み切れていない箇所は「読めていない」と書いています。ドキュメントの大半のページに日付の表示はなく、Kimi Codeは更新が速いので、名前や挙動が変わることがあります。
先に結論
- まず足すなら、MCPかスキル。 MCPは
/mcp-configで会話しながら足せます。スキルは、~/.kimi-code/skills/<名前>/SKILL.mdに、名前と説明つきのMarkdownを1つ置くだけです。 - フックは「安全の最後の砦」にしない。 公式は、フックはエラーやタイムアウトのとき通してしまう(fail-open)ので、警告や軽い介入向けだと書いています。
- プラグインは、人に配るときに作る。 自分だけなら、スキルとMCPで足ります。ただし現在は、ユーザー単位の導入だけで、プロジェクト単位は未対応と書かれています。
- 他のエージェントでKimiを使うなら、先に入口を決める。 接続先も環境変数名もモデル名も、入口ごとに違います。
前提:用語をそろえる
- MCP(Model Context Protocol):AIの道具を外部のサービスと結ぶ共通のルール。Kimi Code CLIはそのクライアントとして、外部のツールを組み込みの
ReadやBashと同じようにエージェントへ見せます。 - スキル:名前と説明(YAMLのフロントマター)をつけたMarkdownの手順書。サブエージェント:メインから小さな仕事を任され、独立した文脈で動いて結論だけ返す助手。フック:イベントで自分のシェルコマンドを動かす仕組み。プラグイン:これらをまとめた導入の単位。
- ACP(Agent Client Protocol):エディタがエージェントを動かす共通のルール。ワークスペースの信頼:開いたフォルダの設定(プロジェクト単位のMCPなど)を有効にしてよいか、人が確認する仕組み。
全体像:拡張の5種類と置き場所
公式のドキュメントから読み取れる範囲を、表にまとめます。
| 拡張 | 何で書くか | 自分の全プロジェクト向けの置き場所 | リポジトリ向けの置き場所 | 公式のページ |
|---|---|---|---|---|
| MCP | JSON(mcp.json) |
~/.kimi-code/mcp.json |
.kimi-code/mcp.json |
Model Context Protocol (MCP) |
| スキル | Markdown(SKILL.md) |
~/.kimi-code/skills/ と ~/.agents/skills/ |
.kimi-code/skills/ と .agents/skills/ |
Agent Skills |
| エージェント | Markdown(フロントマター付き) | ~/.kimi-code/agents/ と ~/.agents/agents/ |
.kimi-code/agents/ と .agents/agents/ |
Agents and Sub-Agents |
| フック | TOML(config.toml の [[hooks]]) |
~/.kimi-code/config.toml |
読んだ範囲では、プロジェクト単位の置き場所は見つからなかった | Hooks |
| プラグイン | JSON(マニフェスト)と同梱ファイル | /plugins で導入。実体は $KIMI_CODE_HOME/plugins/managed/<id>/ にコピーされる |
未対応(ユーザー単位のみと書かれている) | Plugins |
KIMI_CODE_HOME(既定は ~/.kimi-code)を変えると、Kimi専用の置き場所は一緒に移ります。一方、~/.agents/ 以下は、他のツールと共有できるように、本物のホームの下に残る、と書かれています。ここでの「リポジトリ」は、作業フォルダから上へたどって最初に .git がある場所です(スキルとエージェントのページの記載。MCPのページは、作業フォルダの .kimi-code/mcp.json と書いています)。
MCP:外部のツールをつなぐ
設定ファイルと書き方
Kimi Code CLIのMCPの設定ファイルは mcp.json で、2か所に置けます。同じ名前があれば、プロジェクト側が、ユーザー側を上書きします。公式の例は次のとおりです。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
},
"linear": {
"url": "https://mcp.linear.app/mcp"
},
"legacy-events": {
"transport": "sse",
"url": "https://mcp.example.com/sse"
}
}
}
つなぎ方は、書き方から決まります。command があれば stdio、url があって transport がなければ HTTP、古いSSEは transport: "sse" が必要です。
足せる項目は、stdio向けの env(環境変数)と cwd、HTTPとSSE向けの headers(固定のヘッダー)と bearerTokenEnvVar(ベアラートークンを入れた環境変数の名前)、全体向けの enabled(false で無効)、startupTimeoutMs(既定30000ミリ秒)、toolTimeoutMs、enabledTools と disabledTools(許可と拒否のリスト)、実験的な deferred です。
トークンを直接書かず、bearerTokenEnvVar で環境変数の名前だけを書く形は、共有する設定ファイルに向いています(僕らの見立てです)。
足す、確かめる、消す
/mcp-config:サーバーを、会話しながら足す、直す、消す。OAuthのログインも、/mcp-config login <サーバー名>で行います。公式GitHubのREADMEも、手でJSONを書かなくてよいと紹介しています。/mcp:いまのセッションの、サーバーごとの接続状態を見る。- 設定ファイルを直接編集した場合も、プラグインで足した場合も、反映されるのは、そのあとに作ったセッションからです。
- サーバーを消しても、開いているセッションは止まりません。そのセッションでは
/mcpにremovedと出て、呼び出しは、削除の通知つきで失敗します。
読んだ範囲では、公式のMCPのページにも kimi コマンドのリファレンスにも、kimi mcp add のようなコマンドは見つかりませんでした。他のツールの手順を、そのまま当てはめないようにします。
信頼:リポジトリの mcp.json は、人が確認してから動く
ここが、いちばん大事な所です。公式の文は短く、重みがあります。
stdio entries in a project-level
.kimi-code/mcp.jsonexecute local commands when a session starts.
- 信頼していないフォルダでは、「ワークスペースの信頼」の確認が出て、プロジェクトのサーバーごとに、つなぎ方と起動の中身(コマンドと引数、またはURL)が一覧されます。既定の選択肢は「このフォルダを信頼する」なので、中身を読んでから確定する、と公式は書いています。信頼すると、そのワークスペースのプロジェクト単位のサーバーが有効になります。
- 画面を出せない場面(CIの
kimi -pなど)では、信頼済みでないワークスペースのプロジェクト単位のサーバーは無効のままです。そのプロセスだけ信頼したいときは、環境変数KIMI_CODE_TRUST_WORKSPACEに1を入れます。保存される信頼の記録は作られません(環境変数のページの記載)。
認証とタイムアウト
- 固定の資格情報:
headersかbearerTokenEnvVar。 - OAuth:
/mcp-config login <サーバー名>でブラウザの認可を行う。 - タイムアウトの優先順位は、サーバーごとの項目、環境変数(
KIMI_MCP_STARTUP_TIMEOUT_MS、KIMI_MCP_TOOL_TIMEOUT_MS)、config.tomlの[mcp]、組み込みの既定、の順です。設定ページには、[mcp]のstartup_timeout_msの既定が30000、tool_timeout_msの既定が60000と書かれています。
つながらないときの切り分け(僕らの整理)
ここは、この記事の各節に書かれた公式の挙動を、確認の順に並べ直したものです。
/mcpで、そのサーバーの接続状態を見る。表示がないなら、設定ファイルを直したあとに、新しいセッションを作ったかを確かめる。- プロジェクトの
.kimi-code/mcp.jsonに書いたなら、ワークスペースの信頼の確認に答えたかを確かめる。kimi -pのように画面を出せない場面では、信頼済みでなければ無効のままで、KIMI_CODE_TRUST_WORKSPACEに1を入れる方法があります。 - 起動に時間がかかるサーバー(初回に
npxで取得するものなど)なら、startupTimeoutMs(既定30000ミリ秒)を延ばす。 - HTTPのサーバーで認証が要るなら、
/mcp-config login <サーバー名>を行うか、headersかbearerTokenEnvVarを確かめる。
権限:名前で許可、拒否する
MCPのツール名は mcp__<サーバー名>__<ツール名> の形です。mcp__github__* のように、* と ** が使えます。引数は、照合の対象にはなりません。どのルールにも当たらない呼び出しは、承認を求められ、「このセッションは許可」を選ぶと、同じ種類の呼び出しが、そのセッションの間通ります。永続のルールは、設定ファイルに書きます(公式の例)。
[[permission.rules]]
decision = "allow"
pattern = "mcp__github__*"
[[permission.rules]]
decision = "deny"
pattern = "mcp__filesystem__write_file"
ルールは書いた順に照合され、最初に当たったものが効きます(設定ページの記載)。
公式の警告は4点です。信頼できる提供元のサーバーだけにつなぐこと。承認画面で、ツール名と引数を見ること。ファイルの書き込みやコマンドの実行のような危ないツールは、手動の承認を残し、mcp__* のような全許可を避けること。そして、「Ask When Needed」モードはMCPツールの呼び出しを自動で承認するので、完全に信頼できるサーバーでだけ使うこと。承認モードの意味は、04の記事に書いてあります。
必要なときだけツールを読み込む「deferred」(実験的)
サーバーを足すほど、ツールの一覧が文脈を食います。deferred: true のサーバーのツールは一覧に入らず、モデルが組み込みの select_tools で必要な定義だけを読み込みます。公式は実験的な機能とし、tool-select の実験フラグ(環境変数 KIMI_CODE_EXPERIMENTAL_TOOL_SELECT=1、または config.toml の [experimental])と、モデルの dynamically_loaded_tools の宣言の両方がそろわないと、設定は無視される、と書いています(公式のモデルは、この宣言を自動で行う、とも書かれています)。全実験機能をまとめて入れる環境変数 KIMI_CODE_EXPERIMENTAL_FLAG=1 もあります。全サーバーを既定にするのは [mcp] の default_deferred = true で、サーバーごとの指定が優先します。
スキル:手順書をMarkdownで渡す
作る:ディレクトリ形と、フラット形
スキルは、決まった場所に置いたMarkdownです。形は2つあります。
skills/
├── review-pr/ # ディレクトリ形 → スキル名 review-pr
│ ├── SKILL.md # 本体
│ └── references/
│ └── checklist.md # 補助のファイル(${KIMI_SKILL_DIR} で参照)
└── commit.md # フラット形 → スキル名 commit
補助のファイル(チェックリストやスクリプト)が要るなら、ディレクトリ形にします。フラット形のスキルには専用のフォルダがないので、${KIMI_SKILL_DIR} は、スキルを置いた skills/ フォルダそのものを指します。同じ場所に <名前>/SKILL.md と <名前>.md があるときは、ディレクトリ形が勝ちます。
SKILL.md の書き方
先頭にYAMLのフロントマター、続けてMarkdownの本文を書きます。完全な例は後ろの「PRのレビュー」にあります。
| フロントマター | 意味(公式の表の要約) |
|---|---|
name |
スキル名。大文字小文字を区別しない。ディレクトリ形では必須 |
description |
モデルが、いつ使うかを決めるための1行。ディレクトリ形では必須 |
type |
prompt(既定)、inline(同じ)、flow(手動だけ)。ほかの値は読み飛ばされる |
whenToUse |
いつ発動させるか |
disableModelInvocation |
true で、モデルが自分で呼ぶのを止める |
arguments |
名前つきの引数。本文で $<名前> として読める |
本文では、実行前に $ARGUMENTS(引数の文字列そのまま)、$0、$1(位置引数)、$<名前>、${KIMI_SKILL_DIR} が置き換えられます。引数のプレースホルダが1つもないときは、呼び出し時の文字が末尾に ARGUMENTS: ... として足されます。ディレクトリ形で name か description を欠くと、解析が失敗する、と公式は書いています。
呼ぶ:手動と自動
手動は、スラッシュコマンドです。
/skill:code-style
/skill:git-commits fix concurrency issue in login endpoint
自動は、モデルが description と whenToUse を見て呼ぶ形です。disableModelInvocation: true か type: flow のスキルは、自動では呼ばれません。スキルがスキルを呼ぶ入れ子は、3段までで、それより深いものは打ち切られます。
置き場所と優先順位
優先順位は「プロジェクト、ユーザー、追加、組み込み」の順です。追加の置き場所は、config.toml の最上位に書きます。
extra_skill_dirs = ["~/team-skills", ".agents/team-skills"]
起動のたびの切り替えには、kimi --skills-dir <dir>(自動で見つける置き場所の代わりに、指定した場所を使う。何度も付けられる)もあります。
公式の完全な例:PRのレビュー(抜粋)
---
name: review-pr
description: Review a Pull Request according to team standards and produce a structured review report
type: prompt
whenToUse: When the user asks me to review a PR, inspect code changes, or evaluate commit quality
arguments:
- pr_ref
---
Please review the PR the user specified: $pr_ref
1. Fetch and read the full diff for `$pr_ref`.
2. Check each of the following items:
- Whether corresponding test cases are included
- Whether error handling covers edge cases
3. Refer to the checklist in the same directory: `references/checklist.md`
4. Produce a review report (conclusion, blocking changes, suggestions)
公式の手順は、これを ~/.kimi-code/skills/review-pr/SKILL.md に保存し、チェックリストを同じフォルダの references/checklist.md に置き、新しいセッションで /skill:review-pr #1234 と呼ぶ、というものです。上の本文は、公式の例から項目を減らした抜粋です。
組み込みのスキルと、他のツールからの取り込み
CLIには同梱のスキルがあり、スラッシュコマンドのリファレンスに載っています。/mcp-config(MCPの設定とOAuthログイン)、/update-config(config.toml と tui.toml の確認と編集)、/custom-theme(配色テーマ)、/check-kimi-code-docs(公式ドキュメントをもとにした質問への回答)、/sub-skill(ローカルのスキルを階層のあるまとまりに整理。.review は提案だけ、.consolidate は実行)です。
もう1つ、/import-from-cc-codex は、Claude CodeとCodexの指示、スキル、MCPの設定をKimi Codeに取り込むものと説明されています。ただし、一覧に1行あるだけで、何をどこから読み、何を書き換えるかは、読んだ範囲では見つかりませんでした。試すなら小さなリポジトリで、取り込み先を確かめながら、というのが僕らの見立てです。Kimi自身を説明する組み込みスキルは、最上位の builtin_product_skills(既定 true)で止められます。
サブエージェントとエージェントファイル:役割を分けて任せる
組み込みの3種類
公式が挙げる組み込みのサブエージェントは3つです。coder(ファイルを書き換え、コマンドを実行できる、既定の汎用)、explore(読むだけの探索)、plan(実装の計画づくり。シェルは使えない)。この3つは、さらにサブエージェントを呼べません。呼ぶかどうかは、メインのエージェントが判断すると読めます(判断の基準を書いた文は、読んだ範囲では確認できていません)。呼ぶたびに承認の画面が出ますが、許可ルールに当たる場合と「Ask When Needed」モードでは出ません。
サブエージェントは、自分の文脈で動き、メインに戻るのは最終の結果だけ、と読めます。そのかわり、それぞれがトークンを使うので、簡単な仕事ならメインで済ませるほうが安い、と公式は書いています(リポジトリ単位の調整モードとして、実験的なTowerもあります)。
自分のエージェントを書く
エージェントファイルは、フロントマター付きのMarkdownで、本文がシステムプロンプトになります。公式の例です。
---
name: reviewer
description: Strict code reviewer that reports severity-ranked findings
whenToUse: Code reviews and PR checks
override: false
tools:
- Read
- Grep
- Glob
- mcp__github__*
disallowedTools:
- Bash
---
You are a strict code reviewer. Read the diff, then report findings grouped by severity…
フロントマターは、description(必須。メインが、どのサブエージェントを選ぶかの手がかりになる)、name(省略するとファイル名)、whenToUse、override(同名の組み込みを置き換える。既定 false)、tools(許可リスト。省略か * だけで全部、tools: [] で全部無効)、disallowedTools(拒否リスト。tools のあとに適用)、subagents(呼べるサブエージェントの許可リスト。省略すると coder、explore、plan)です。
公式は照合の細部も書いています。組み込みのツール名は大文字小文字を区別した完全一致で(read は Read に当たらず警告が出ます)、ワイルドカードが効くのは mcp__ で始まる項目だけです。
本文には ${base_prompt}(既定のプロンプトを埋め込む)や ${plugin_sections}(プラグインの指示を残す)が使えます。どちらも書かない本文は、プロンプト全体を自分のものにし、プラグインの指示は入りません。公式は、サブエージェントとして動くカスタムエージェントには、「最後のメッセージが引き渡しのすべて」という既定の枠組みが付かないので、最後のメッセージを完結した結果にするよう、本文に書くことを勧めています。
置き場所と、起動時の指定
優先順位は、明示の --agent-file、プロジェクト、追加(config.toml の extra_agent_dirs)、ユーザー、プラグイン、組み込みの順です。メインのエージェントを選ぶには、次のように書きます(公式の例)。
kimi --agent reviewer
kimi -p --agent reviewer "Review the changes on this branch"
--agent と --agent-file は、新しいセッションにだけ効き、--session や --continue とは組み合わせられません。エージェントは、セッションを作るときに固定され、あとから切り替えられません。$KIMI_CODE_HOME/SYSTEM.md を書くと、既定のメインエージェントのシステムプロンプトを、恒久的に置き換えられます。ツールの集合や委任の許可リストは、そのまま既定が使われます。
公式が出している信頼の警告(エージェントファイル)
プロジェクトのエージェントファイルは、信頼していないクローンも含め、リポジトリ自身が持ってきます。override: true つきの agent.md は、既定のメインエージェントのシステムプロンプトを丸ごと置き換え、tools のないファイルは全ツールを持ちます。公式は、見慣れないリポジトリでは、実行する前に .kimi-code/agents/ と .agents/agents/ を、スクリプトを確かめるのと同じように見るよう書いています。セッションのフォルダの記録(wireファイルやタスク記録)は、プロンプトやコマンドの出力、資格情報の痕跡を含みうるので、共有する前に伏せるよう、公式は書いています。
フック:決まったタイミングで、自分のスクリプトを動かす
書き方
フックは、~/.kimi-code/config.toml の [[hooks]] に書きます。1つのルールに書けるのは、event(必須)、matcher(正規表現、省略で全部)、command(必須)、timeout(秒、1〜600、既定30)だけで、余分な項目があると設定ファイルが読み込めなくなります。複数のルールが同じイベントに当たると並列に動き、同じ command は1回だけ動きます。公式のクイックスタートの例です。
# ~/.kimi-code/config.toml に書く
[[hooks]]
event = "Notification" # 発動:バックグラウンドの状態が変わったとき
matcher = "task\\.completed" # 「完了」の通知だけが対象
command = "terminal-notifier -title Kimi -message 'Task done'"
イベントは20種類が表にあります。主なものは、UserPromptSubmit(入力の送信時)、PreToolUse(ツールを呼ぶ前。権限の確認より前)、PostToolUse、Stop(モデルが応答を終えようとしたとき)、SessionStart、SessionEnd、SubagentStart、SubagentStop、PermissionRequest、Notification などです。このうち、メインの流れを変えられるのは PreToolUse、Stop、UserPromptSubmit の3つだけで、残りは観察用です。
止める:終了コード
フックのスクリプトは、標準入力でイベントのJSONを受け取ります(hook_event_name、session_id、cwd など。ツール名やコマンドの内容は、イベントごとに足される)。結果は、終了コードで返します。
| 終了コード | 意味 | CLIの動き |
|---|---|---|
| 0 | 許可 | 続行。標準出力が文脈に足されることがある |
| 2 | ブロック | 操作を止める。標準エラー出力が理由になる |
| それ以外 | スクリプトのエラー | 通す(fail-open) |
| タイムアウトや異常終了 | 例外 | 通す(fail-open) |
JSONを標準出力に出して、止めることもできます。hookSpecificOutput の中の permissionDecision に deny を、permissionDecisionReason に理由を入れます。公式の例は、「grep ではなく rg を使って」と理由を返すものでした。
公式の例:危ないシェルコマンドを止める
[[hooks]]
event = "PreToolUse"
matcher = "Bash"
command = "node ~/.kimi-code/hooks/block-dangerous-bash.mjs"
timeout = 5
公式のスクリプトは、標準入力のJSONから tool_input.command を取り出し、rm -rf を含んでいれば、標準エラー出力に理由を書いて終了コード2で終わる、という短いものです。公式は、仕組みを見せるだけで実用の水準ではなく、文字列の検査はすり抜けやすい、と断っています。本物にするには、許可リストか、クォートや変数展開や複数コマンドを読めるシェルの構文解析が要る、という説明です。
フックの設定が、どう確認、承認されるのかという信頼の仕組みは、フックのページには書かれていませんでした。プラグインが持つフックは、プラグインを有効にしている間だけ動き、導入しただけでは動かない、と書かれています。
プラグイン:束ねて、配る
導入と管理
プラグインは、スキル、エージェント、セッション開始時に読み込むスキル、システムプロンプトへの指示、MCPサーバー、フック、スラッシュコマンドを、1つの導入の単位にしたものです。管理は、TUIの /plugins の画面と、スラッシュコマンドで行います。公式のページには、kimi plugin ... というシェルのサブコマンドの記載はありません。
/plugins の画面には、Installed、Official(Kimi保守)、Curated(パートナーの第三者製)、Custom(URLから導入)の4つのタブがあります。
主なコマンドは、/plugins list(一覧)、/plugins install <パスかURL>(ローカルのフォルダ、zipのURL、GitHubのURLから導入)、/plugins marketplace [source](公式のマーケットプレイス、または自分のJSON)、/plugins info <id>(詳細と診断)、enable、disable、remove(確認あり)、reload、/plugins mcp enable|disable <id> <server>(プラグインのMCPの切り替え)です。
GitHubからは、リポジトリのURL、tree/<ref>、releases/tag/<tag>、commit/<sha> の4つの形で導入できます。通信は github.com のリダイレクトと codeload.github.com だけで、api.github.com は呼ばない、と書かれています。
導入の性質として、次の4点が書かれています。変更が効くのは /reload か新しいセッションから。ローカルの導入は $KIMI_CODE_HOME/plugins/managed/<id>/ にコピーされ、CLIは常にそのコピーから動く(元のフォルダを直しても、入れ直すまで効かない)。削除は、導入の記録を消すだけで、コピーと元のフォルダは残る。導入はユーザー単位で、全プロジェクトに効き、プロジェクト単位は未対応。
マニフェストの書き方
プラグインは、フォルダかzipで、マニフェストを kimi.plugin.json か .kimi-plugin/plugin.json に置きます(両方あれば前者が優先)。公式の例です。
{
"name": "kimi-finance",
"version": "1.0.0",
"description": "Finance data and analysis workflows for Kimi Code CLI",
"skills": "./skills/",
"systemPromptPath": "./SYSTEM.md",
"sessionStart": {
"skill": "using-finance"
},
"interface": {
"displayName": "Kimi Finance",
"shortDescription": "Market data and financial analysis workflows"
}
}
主な項目は、name(必須。idになる)、skills(./ 始まりのパス)、agents(省略すると agents/ を自動で探す)、sessionStart.skill(セッション開始時に読み込むスキル)、systemPrompt と systemPromptPath(有効な間、システムプロンプトに足す指示)、mcpServers(既定で有効)、hooks(有効な間だけ動く)、commands(スラッシュコマンドになる .md)です。
プラグインのスキルは /skill:<プラグインid>:<スキル名> で呼びます。名前だけでは、プラグインのスキルに当たりません。スラッシュコマンドは /<プラグイン名>:<コマンド名> になり、公式の例は commands/report.md を /kimi-finance:report TSLA と呼ぶものでした。tools、apps、inject、configFile のような、対応しない項目は、診断が出て無視されます。システムプロンプトへの指示には、項目ごとに32KB、全プラグインの合計で64KBの上限があります。
公式は、安全面の作りについても書いています。導入やセッション開始のとき、コマンド型のプラグインのツールは実行しません。すべてのパスは、シンボリックリンクを解決したあとも、プラグインのフォルダの中でなければなりません。プラグインのMCPサーバーは、/reload か新しいセッションのあとに起動し、いつでも /plugins から止められます。壊れたマニフェストは /plugins info <id> に診断として出ます。一方、第三者製のプラグインについての独立した警告は、ページには見つかりませんでした。公式GitHubのREADMEには、導入ごとに信頼の水準が先に表示される、という趣旨の説明がありますが、その表示の中身は、読んだ範囲では確認できていません。
公式のプラグイン3つ
- Kimi Datasource(v3.4.0):金融、マクロ指標、中国本土の企業の登記、論文、中国の法令などを自然言語で問い合わせる。
/loginが必要で、呼び出しごとにプランの枠を消費する。読み取り専用で、出力は参考情報であり投資や事業の助言ではない、と公式が書いています。 - Kimi Browser Extension(v2.0.11):自分のブラウザ(ログイン状態つき)をAIが操作する。
/pluginsの導入に加えて、ブラウザ拡張の導入も要ります。 - Kimi Computer Use(v0.5.4):macOSとWindowsのデスクトップアプリを操作する。macOSはアクセシビリティと画面収録の許可が要り、Windows版はマウスとキーボードを一時的に奪うことがあります。取り返しのつかない作業を任せてよいかについての公式の注意書きは、読んだ範囲では確認できていません。
導入は、/plugins の Official タブで選んで Enter、そのあと /reload か /new です。自動更新はありません。バージョンの数字は、2026年10月24日に公式ページに表示されていたものです。デスクトップアプリの文書は、ブラウザを操作するほうを「Kimi WebBridge」と呼んでいて、CLIの文書の「Kimi Browser Extension」と同じものかは、公式が明言していません。
最初の10分でやること
公式に書かれている範囲で、小さく始める順番です。ここは僕らの整理で、公式がこの順番を勧めているわけではありません。
- 何が入っているかを見る。 プロジェクトの中で
kimiを起動し、/mcpと/plugins listを打つ。リポジトリの.kimi-code/と.agents/の中身を、先に目で見る(信頼していないリポジトリなら特に)。 - スキルを1つ作る。
~/.kimi-code/skills/hello-style/SKILL.mdのような場所に、nameとdescriptionと短い本文を書く。最小の形は次のとおりです(フロントマターの項目は公式の表のとおりで、中身の文は僕らの例です)。新しいセッションで/skill:hello-styleと呼び、動くかを見る。
---
name: hello-style
description: Answer in short, plain sentences when the user asks for a brief explanation
---
Answer in at most three short sentences.
Avoid jargon; if a term is needed, explain it in one clause.
- MCPを1つだけ足す。
/mcp-configで、公式の例にあるような、読み取り中心のサーバーを1つ足す。足したあとは、/mcpで接続状態を見て、新しいセッションで使う。 - 権限を絞る。 足したサーバーのツールに対して、
[[permission.rules]]で、書き込み系をdenyかaskにする。 - フックは、通知から。 いきなり止めるフックを書かず、
Notificationのような観察用のイベントで、挙動を確かめる。上の「公式のクイックスタートの例」を~/.kimi-code/config.tomlに写し、バックグラウンドの作業が終わったときに通知が出るかを見ます。例のterminal-notifierはmacOS向けの通知ツールなので、ほかのOSでは別の通知コマンドに置き換えます(僕らの整理です)。通知が出なければ、commandをターミナルで単独で打って動くかを先に確かめ、matcherの正規表現が合っているかを見ます。
エディタから使う:ACPとサーバーAPI
ACP(Zed、JetBrains)
IDEは、kimi acp を子プロセスとして起動し、標準入出力のJSON-RPCで話します。ログインはCLIで済ませたものをそのまま使います。公式のZedの設定例です(~/.config/zed/settings.json)。
{
"agent_servers": {
"Kimi Code CLI": {
"type": "custom",
"command": "kimi",
"args": ["acp"],
"env": {}
}
}
}
JetBrainsは、AIチャットの「Configure ACP agents」に、同じ形の agent_servers を書きます(type は無し)。公式は、command にはフルパス(which kimi で調べる)を書くよう強く注意しています。macOSでGUIから起動したIDEは、ターミナルの PATH を引き継がないことが多いためです。すぐ切れるときは、ターミナルで kimi acp を打ち、標準入力を待てばCLIは正常で、IDEの設定の問題です。「Auth required」のときは、ターミナルで kimi を起動してログインし直します。ACPで使えるMCPは http、stdio、sse で、acp 型は捨てられます(画面には出ませんが、警告はログに書かれる、と公式は書いています)。
VS Code拡張のカスタマイズのページは、MCPだけを扱っていました(歯車の「MCP Servers」から、stdioかhttpを足す。保存前に接続を試せる)。スキル、エージェント、フック、プラグインは、そのページには出ていませんでした。デスクトップアプリは、CLIと同じ mcp.json、スキルの置き場所、[[hooks]] を使うと書かれています。MCPは、新しく作ったセッションから効く、と書かれています(スキルとフックについては、書かれていませんでした)。
kimi web のローカルサーバーには、RESTとWebSocketのAPIがありますが、公式は実験的で、安定性は保証しないと書いています。GET /api/v1/providers/{provider_id} は保存したAPIキーを返すので、ポートを公開するときは気をつけるよう、公式は書いています。--dangerous-bypass-auth というフラグがあることも書かれていますが、警告の文言は、読んだ範囲では確認できていません。この記事では、細部を扱いません。
他のエージェントからKimiを使う
入口は2つ
| 入口 | 接続先(公式の表記) | キーの作り方 | 課金 | 公式のページ |
|---|---|---|---|---|
| Kimi Code(会員) | 海外は https://api.kimi.ai/coding/(OpenAI互換は末尾に v1)、中国は https://api.kimi.com/coding/ |
Kimi Codeのコンソールで作る。1人5つまで。作成時に1回しか全文を見られない | 会員の枠(Plus以上)。会話やCLIと同じ枠を共有する | Use in Third-Party Tools(キーの数と全文表示の記載は、Kimi Code概要ページ) |
| Kimi Open Platform(従量) | 海外は https://api.moonshot.ai/v1、Anthropic互換は https://api.moonshot.ai/anthropic |
platform.kimi.ai のコンソール | 使った分の従量課金(02の記事) | Kimi in Claude Code(Platform) |
FAQは、会員のキーとOpen Platformのキーは接続先が別で、それぞれ対応する接続先と組み合わせる、と書いています。モデルIDも入口で違います(Kimi Codeの文書は k3.1-pro、k3、kimi-for-coding など、Open Platformは kimi-k3.1-pro、kimi-k3、kimi-k2.7-code など。一覧は02と04の注記も参照)。会員の枠では、Goにはコーディングの枠がなく、Plus以上で k3.1-pro と k3 が使え、1Mの文脈はPro以上、256K版(k3-256k)はPlus以上、と書かれています。プランにない指定はエラー(403か400)になります。
Claude Codeで使う(Kimi Codeの会員)
公式の手順は、次の流れです。会員でKimi Codeが使える状態にし、Claude Codeを公式の手順で入れ、Kimi Codeのコンソールでキーを作ります。そのうえで、起動する前に、公式のページにあるNodeのスクリプトを実行します。公式の説明では、このスクリプトは ~/.claude.json に hasCompletedOnboarding などの項目を足してAnthropicのログインを飛ばし(既存の内容は残す、と書かれています)、~/.claude/settings.json の env から、接続先、資格情報、モデルに関する既存のキーを消します。スクリプトの全文は、この記事には写していません。実行する前に、中身を読むことを勧めます(僕らの見立てです)。ほかのシェルの設定ファイルに残る ANTHROPIC_* の export も、消すよう書かれています。
そのうえで、~/.claude/settings.json に書きます。公式の例は、256Kの文脈の場合です。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.kimi.ai/coding/",
"ANTHROPIC_API_KEY": "Your API Key",
"ANTHROPIC_MODEL": "k3.1-pro",
"ANTHROPIC_DEFAULT_FABLE_MODEL": "k3.1-pro",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "k3.1-pro",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "k3.1-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "k3.1-pro",
"CLAUDE_CODE_SUBAGENT_MODEL": "k3.1-pro",
"CLAUDE_CODE_EFFORT_LEVEL": "max",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "262144",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "262144"
}
}
1Mの文脈にするときは、公式の例では、モデル名を k3.1-pro[1m] にして、2つの数字を 1048576 にします。保存したらClaude Codeを再起動します。env はターミナルの export より優先されます。確かめるには、/status で Base URL が https://api.kimi.ai/coding/ になっているかを見ます(モデル名の表示はClaudeのままのことがあるが、呼び出しはKimi Codeに行く、と公式は書いています)。
ANTHROPIC_DEFAULT_*_MODEL と CLAUDE_CODE_SUBAGENT_MODEL を入れ忘れると、タイトル生成などの裏の作業やサブエージェントが失敗する、と公式の表にあります。圧縮の基準(CLAUDE_CODE_AUTO_COMPACT_WINDOW)と文脈の上限は、モデルの文脈に合わせます。
公式の注意は3つです。settings.json はキーを平文で持つので、gitに入れない。K3.1 Proは思考のモードだけに対応し、思考を切るとHTTP 400になる。プロキシで通信の形式を変換すると、挙動が変わることがあるので、Kimi Code側の標準のプロトコルを勧める。思考の強さは /effort で切り替えられ、medium と high が high に、xhigh と max が max に対応します。
VS CodeのClaude Code拡張では、設定後に、ログイン画面の「Run claude in terminal」から、フォルダの信頼とキーの確認に答え、VS Codeを開き直す必要がある、と書かれています。
Claude Codeで使う(Open Platformの従量キー)
Platform側の文書は、接続先とキーの変数が違います。公式の例は、メインに kimi-k3[1m]、HAIKU の段階に kimi-k2.7-code を割り当てています。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.moonshot.ai/anthropic",
"ANTHROPIC_AUTH_TOKEN": "YOUR_MOONSHOT_API_KEY",
"ANTHROPIC_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2.7-code",
"ANTHROPIC_DEFAULT_FABLE_MODEL": "kimi-k3[1m]",
"CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k3[1m]",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000",
"CLAUDE_CODE_EFFORT_LEVEL": "max"
}
}
確認には、/v1/messages へのcurlが示されています。JSONが返れば接続先とキーは合っており、401ならキーが無効か、プラットフォームと合っていません。
この文書の注意は、こうです。kimi-k2.7-code は思考が必須で、思考を切ると400が返る。ANTHROPIC_API_KEY を一緒に設定すると、ANTHROPIC_AUTH_TOKEN と衝突する。以前にClaude Codeで /login していると、ANTHROPIC_AUTH_TOKEN が優先されるので、/status で確かめ、/logout で消す。2つの入口の例で、キーの環境変数が ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN に分かれている点は、混ぜると壊れやすい所です。
Codexで使う
Kimi Codeのサーバーは、OpenAIのResponses APIに対応しているので、Codexからは、自作のプロバイダーとして直接つなげる、と公式は書いています(変換用のツールは要りません)。Responses APIは、テキストと画像の入力に対応し、動画には対応しません。公式の流れは次のとおりです。
- Kimi Codeのコンソールでキーを作り、Codex CLIを入れる(
npm install -g @openai/codex)。 ~/.codex/models.jsonに、k3.1-proとk3.1-pro-highspeedのカタログを書く(中身は公式のページにあり、この記事には写していません)。~/.codex/config.tomlに、次を書く。
model = "k3.1-pro"
model_provider = "kimi"
web_search = "live"
model_catalog_json = "~/.codex/models.json"
[model_providers.kimi]
name = "Kimi"
base_url = "https://api.kimi.ai/coding/v1"
env_key = "KIMI_API_KEY"
wire_api = "responses"
[desktop]
enabled-reasoning-efforts = ["low", "high", "max"]
- キーは環境変数
KIMI_API_KEYに入れる(公式は、これがCodex自身の推奨でもあると書いています)。macOSのデスクトップアプリは、Dockから起動すると、ターミナルの変数を引き継がないので、launchctl setenvが要り、再起動すると消えます。代わりにexperimental_bearer_tokenを使う方法もありますが、キーが設定ファイルに平文で残るので、env_keyと同時には使わず、コミットしないよう、公式が警告しています。 codexを起動してhelloを送る。起動の表示がmodel: k3.1-proとprovider: kimiになれば成功です。
つまずき方として、Missing environment variable: KIMI_API_KEY は、そのプロセスが変数を読めていない場合です。codex exec がツールのコマンドを動かせないときの --sandbox danger-full-access は、サンドボックスの隔離を切るので、信頼できる作業にだけ使うよう、公式が警告しています。
OpenCodeとHermes Agentで使う
OpenCodeは、opencode auth login で「Kimi For Coding」を選んでキーを入れ、/models でモデルを選びます(ページに設定ファイルや接続先の記載はありません)。Hermes Agentは、hermes model で「Kimi / Kimi Coding Plan」を選んでキー(sk-kimi- で始まる)を入れ、hermes config edit で ~/.hermes/config.yaml の base_url(https://api.kimi.ai/coding/v1)、key_env: KIMI_API_KEY、api_mode: chat_completions、default: k3.1-pro などを直します。
規約:会員のキーで何をしてよいか
ここは、設定よりも先に読む所です。Kimi Codeのコミュニティガイドラインは、会員の使い方について、次のことを書いています。
- 会員は、Kimi CLI、VS Code、Claude Code、OpenCode、OpenClawなどの主要なコーディングツールやエージェントの枠組みと使える。一方で、「Kimi Code subscriptions are for interactive use only.」(会員は対話的な利用向け)とある。企業の連携や商用のサービスは、Kimi Platformを通すよう案内されている。
- 「Don't use Kimi Code for non-interactive automation.」(非対話の自動化はしない)。スクリプトによる一括実行や、データのラベル付けの流れが、例に挙がっている。
- アカウントやAPIアクセスの転売、リバースプロキシでアカウントを他人に使わせることは違反。VPNや社内ネットワークのような順方向のプロキシはよい。
- クライアントの識別情報を偽ったり変えたりしない。Kimi Codeの概要ページも、クライアントのUser-Agentを変えないよう警告しています。
- 違反が疑われると、まず状況を確認し、重さに応じて対応する。例として、同時接続の制限が挙がっている。正規でない経路での購入は、確認のうえ停止されることがあり、損失は負わない、と書かれている。
04の記事で扱った kimi -p(画面なしの実行)や、CIでの利用が、この「非対話の自動化」にどこまで当たるのか、線引きは、読んだ範囲では公式に見つかりませんでした。業務に組み込む前に、公式に問い合わせるか、従量課金のOpen Platformを使うのが堅い、というのが僕らの見立てです。
僕らの見立て:足す前に、自分に聞くこと
ここからは僕らの見立てで、公式の推奨ではありません。
- 誰のコードが、いつ動くのか。 MCP(stdio)、フック、プラグインのMCPは、自分のパソコンでコマンドが動く入口です。スキルとエージェントは、モデルに読ませる命令ですが、
toolsの指定がなければ全ツールが使えます。 - 自分の層か、リポジトリの層か。 迷ったら自分の層(
~/.kimi-code/)です。リポジトリに入れた拡張は、同じリポジトリを開く全員に効きます。 - 絞ってから足す。 足すサーバーのツール名が決まっていれば、権限のルールは先に書けます。
- 他社ツールの設定は、戻せる形で。 Claude Codeの
settings.jsonのenvはターミナルの設定より優先され、案内にはAnthropicのログインを飛ばす書き換えも含まれます。バックアップを取り、いじったファイルを控えます。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。運営者はKimiを入れていますが、使い心地はこの記事には書いていません。コマンド、設定、数値は公式ドキュメントから写したもので、動作確認はしていません。公式ページは要約の形で取得しました。
- 読めていない所:
--dangerous-bypass-authを警告として扱った文、Computer Useの取り返しのつかない作業についての注意書き、フックのイベントごとの入力項目の細部、サーバーAPIの後半、Codexのmodels.jsonの全文、Claude Code向けの整理用スクリプトの全文、HermesのYAMLの全文。VS Code拡張のスキル、エージェント、フック、プラグインの扱いは、公式のページに書かれていませんでした。 - 公式のページの大半に日付はなく、バージョンの数字は、2026年10月24日に表示されていたものです。マーケットプレイスの中身も変わります。
- 公式が「実験的」と書くもの:MCPの
deferred、サーバーAPI、Tower、サブエージェントのfork。非推奨と書かれているもの:kimi server(kimi webを使う)。 - 公式の文書どうしで、細部の違いがあります。Claude Code向けの手順は、Kimi Codeの文書では
ANTHROPIC_API_KEY、Open Platformの文書ではANTHROPIC_AUTH_TOKENです。入口が違うためと読めますが、公式が理由を説明しているかは確認できていません。使う入口のページだけを見て、混ぜないようにします。 - プラグインやスキルを、マーケットプレイスや第三者のGitHubから入れるときは、中身(特にフックとMCPの起動コマンド)を自分で読んでから有効にします。公式のプラグインのページに、第三者製への独立した警告は見つかりませんでした。
- MCPやプラグインで外部のサービスにつなぐと、そのサービスの規約とデータの扱いも別に関わります。データの行き先は入口ごとに違います(01と02)。
- この記事は、法律や契約の助言ではありません。規約の解釈は、専門家に確認してください。
出典
- Model Context Protocol (MCP) in Kimi Code CLI(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Agent Skills in Kimi Code CLI(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Plugins(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Agents and Sub-Agents(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Hooks(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Kimi Datasource(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Slash Commands(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- kimi Command(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- kimi acp Subcommand(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Using Kimi Code CLI in IDEs(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Server API(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Configuration files(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Environment variables(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Migrating from kimi-cli(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Kimi Code for VS Code: Customization(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Settings and Extensions(Kimi Code Desktop)(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Claude Code(Use in Third-Party Tools)(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Codex(Use in Third-Party Tools)(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- OpenCode(Use in Third-Party Tools)(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Hermes Agent(Use in Third-Party Tools)(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Model Configuration(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Membership Benefits(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Community Guidelines(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- FAQ(Moonshot AI、Kimi Code Docs、日付の表示なし、確認日2026-10-24)
- Kimi Code Docs 概要(Moonshot AI、日付の表示なし、確認日2026-10-24)
- MoonshotAI/kimi-code README(Moonshot AI、GitHub、確認日2026-10-24)
- Kimi in Claude Code(Moonshot AI、Kimi Open Platform、日付の表示なし、確認日2026-10-24)
- Use Kimi API in agents(Moonshot AI、Kimi Open Platform、日付の表示なし、確認日2026-10-24)
- Models(Moonshot AI、Kimi Open Platform、日付の表示なし、確認日2026-10-24)