Claude CodeとKimi Code CLIの違い — 旧Kimi CLIからの移行手順も解説
Claude CodeとKimi Code CLIを、導入・認証・モデル・MCP・権限モデルで比較します。アーカイブされた旧Kimi CLIからkimi migrateで移せるもの・移せないものも扱います。
Kimi Code CLIは、Moonshot AIのKimiモデルを標準にした、ターミナル常駐のコーディングエージェントです。Claude Codeと同じ「ターミナルで動くエージェント」ですが、前提になるモデルと契約が違います。Claude CodeはClaudeのサブスクリプションまたはAPIで動き、Kimi Code CLIは/loginでKimi Codeのアカウントか、Moonshot AIのAPIキーを選びます。
もう一つ、名前が紛らわしい旧Kimi CLI(Python版)は、リポジトリがアーカイブされて更新が止まりました。新しいKimi Code CLIへの移行手順も、後半で扱います。
Claude CodeとKimi Code CLIの違いを一覧で見る
| 観点 | Claude Code | Kimi Code CLI |
|---|---|---|
| 標準のモデル | Claude CodeClaudeモデル | Kimi Code CLIKimiモデル(他社モデルも設定可) |
| ログイン | Claude CodeClaudeのサブスクリプション / Consoleアカウント / クラウドプロバイダー | Kimi Code CLIKimi Code OAuth / Moonshot AIのAPIキー |
| MCPの追加 | Claude Codeclaude mcp add コマンド | Kimi Code CLI/mcp-config と mcp.json |
| 設定の置き場所 | Claude Code~/.claude と ~/.claude.json | Kimi Code CLI~/.kimi-code/ |
| Windowsの前提 | Claude CodeGit for Windowsは任意(推奨) | Kimi Code CLIGit for Windowsが必須 |
導入の違い — インストールとWindowsの前提
どちらも公式のインストールスクリプトが第一の選択肢です。
# Claude Code
curl -fsSL https://claude.ai/install.sh | bash
# Kimi Code CLI
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
kimi --versionKimi Code CLIはスクリプト経由ならNode.jsが不要です。npmで入れる場合はNode.js 22.19.0以上が要り、パッケージ名は@moonshot-ai/kimi-codeです。旧版のPython/uv版とは実装が別物で、新版はTypeScriptで書かれ、Node.jsの上で動きます。
Windowsの前提は、両者で重さが違います。
- Kimi Code CLI: 初回起動の前にGit for Windowsが必要。同梱のGit Bashをシェル環境に使う。Git Bashが標準以外の場所にあるなら、
KIMI_SHELL_PATHにbash.exeの絶対パスを設定する - Claude Code: Git for Windowsは推奨だが任意。未導入ならPowerShellツールでシェルコマンドを実行する。Git Bashを見つけられないときは、settings.jsonの
envにCLAUDE_CODE_GIT_BASH_PATHを書く
Windowsでの立ち上げ失敗が多いなら、Claude Codeのinstall完全ガイドのOS別手順も参照してください。
認証とモデル選択の違い
Claude Codeの初回起動では、ブラウザでの認証に進みます。対象はClaudeのPro・Max・Team・Enterprise、Claude Consoleのアカウント、対応クラウドプロバイダー経由の3系統です。環境変数ANTHROPIC_API_KEYがあると、ログインの代わりにそのキーを承認する流れになります。ログイン方法の使い分けはClaude Codeログイン方法3種の使い分けに詳しくあります。
Kimi Code CLIは、初回に/loginを実行して選びます。
- Kimi Code(OAuth): 認証コードを別の端末で入力する方式
- Kimi Platform APIキー: platform.kimi.comまたはplatform.kimi.aiで発行したキー
同じKimiでも、課金の経路が違う点に注意が必要です。Kimi Codeの会員プランの利用枠はAnthropic互換のBase URL(https://api.kimi.com/coding/)で、サブスクリプションの利用枠を使います。Kimi Open Platformは別のBase URLで、従量課金です。キーとBase URLの組み合わせを取り違えると、/loginのモデル一覧が空になります。
モデルの切り替えは、Kimi Code CLIでも/modelで行えます。ここまでは同じ操作感です。差が出るのは他社モデルを使うときです。
Kimi Code CLIで他社の供給元を使うには、~/.kimi-code/config.tomlのprovidersに書きます。対応するtypeには、anthropic(Claude系)、openai、google-genai、vertexaiなどがあります。次はAnthropic APIの例です(公式の記載に沿った形)。
[providers.anthropic]
type = "anthropic"
api_key = "sk-ant-xxxxx"
[models."claude-opus-4-7"]
provider = "anthropic"つまりKimi Code CLIからClaudeモデルを呼ぶことはできます。反対に、Claude Codeはモデルの選択肢がClaude系列で、/modelやclaude --modelで切り替えます。ANTHROPIC_BASE_URLは送り先を変える設定で、答えるモデルは送り先とANTHROPIC_MODELで決まります。Anthropic以外の送り先に向ければ、Claude Codeの操作系のままKimiのモデルが答えます。この使い方は後半の節で扱います。
MCPの追加方法の違い
Claude CodeはコマンドでMCPサーバーを足します。HTTPサーバーとstdioサーバーで書き方が違います。
claude mcp add --transport http notion https://mcp.notion.com/mcp
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
-- npx -y airtable-mcp-server
claude mcp get notionデフォルトのスコープはlocalで、追加したプロジェクトでだけ有効になり、自分にしか見えません。チームで共有するなら--scope projectを付け、プロジェクト直下の.mcp.jsonに書きます。
Kimi Code CLIは、TUIの/mcp-configで会話しながら追加するのが基本です。JSONを手で書くなら、mcp.jsonにmcpServersを置きます。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
},
"linear": { "url": "https://mcp.linear.app/mcp" }
}
}commandがあればstdio、urlがあってtransportが無ければHTTPと判定されます。ユーザー単位は~/.kimi-code/mcp.json、プロジェクト単位は作業ディレクトリの.kimi-code/mcp.jsonで、同名なら後者が勝ちます。
見落としやすい違いが3つあります。
- 書き方の落とし穴: Claude Codeは
urlがあるのにtypeが無いJSONを設定エラーにする。Kimi Code CLIはtypeが無くてもurlだけでHTTPとして読む - OAuth: Kimi Code CLIは
/mcp-config login <server-name>でブラウザ認可を行う。Claude Codeは/mcpで認証する - 反映のタイミング: Kimi Code CLIでは、
mcp.jsonを編集してもすでに開いているセッションには登録されない。新しいセッションから有効になる
Claude Codeのclaude mcp add側の詳細は、Cline→Claude CodeのMCP設定移行でも、JSONの写し方として扱っています。
権限モデルの違い
確認を求める強さの設計が違います。
| 系統 | Claude Code | Kimi Code CLI |
|---|---|---|
| 毎回確認する | Claude Codedefault(CLIでの表示はManual) | Kimi Code CLIAlways Ask(既定) |
| 編集は通す | Claude CodeacceptEdits | Kimi Code CLIAsk When Needed(/yolo) |
| 完全に任せる | Claude Codeauto / bypassPermissions | Kimi Code CLINever Ask(/auto) |
| 計画だけ立てる | Claude Codeplan | Kimi Code CLIPlan(Shift-Tabか/plan) |
Kimi Code CLIの既定は、読み取りだけ自動で通し、変更や実行は毎回確認するAlways Askです。Ask When Neededでも、.envやSSH秘密鍵へのアクセス、rm -rfのような危険なコマンドは確認が残ります。Never Askでは、これらの確認も外れて、コマンドがそのまま実行されます。
Claude Codeのほうは、v2.1.283以降で、対話的な端末セッションの開始時のモードがautoです。分類器が行為を審査し、多くの編集とコマンドを確認なしで通します。以前は、Pro・Max・Teamのプランだけがautoで始まりました。この既定の違いが、両者の第一印象を大きく分けます。「慎重に始まるKimi」と「任せて始まるClaude Code」という対比です。
MCPツールの許可は、どちらもmcp__<server>__<tool>の名前で書きます。mcp__github__*のようにサーバー単位のワイルドカードも使えます。引数は判定に使われない点も共通です。Kimi側の公式ドキュメントは、高リスクなツールは手動承認のままにし、mcp__*で全許可しないよう案内しています。Claude Codeは、括弧付きのmcp__ルールを読み飛ばし、mcp__*の許可ルールも効かせません。
権限モデルの経緯は、Claude Code権限モデルの変遷にまとめています。
指示ファイル・skills・hooksの違い
Claude CodeはCLAUDE.mdを指示の置き場にし、AGENTS.mdがあればそれも読めます。Kimi Code CLIの指示は、~/.kimi-code/にある全体用のAGENTS.mdが中心です。
skillsは、どちらもSKILL.mdを置くディレクトリ形式です。Kimi Code CLIでは、アクティブなskillが/skill:<name>のスラッシュコマンドになります。nameとdescriptionはどちらも必須で、片方でも欠けると解析に失敗します。
サブエージェントとプラグインは、どちらにもあります。Kimi Code CLIのREADMEは、主な特長にsubagentsとplugin marketplaceを挙げています。Claude Codeでは、Agentツールが別のコンテキストウィンドウでサブエージェントを動かします。プラグインは、旧Kimi CLIから新版へ移行されない項目でもあります。
hooksは思想が違います。Kimi Code CLIのhooksは、config.tomlの[[hooks]]に書きます。
[[hooks]]
event = "Notification"
matcher = "task\\.completed"
command = "terminal-notifier -title Kimi -message 'Task done'"スクリプトの終了コードが0なら通し、2なら止め、それ以外は既定で通します。公式ドキュメントも、エラーやタイムアウトでは止まらない設計(fail-open)を明言しています。したがって、危険な操作を止める最後の砦には向きません。Claude Codeにも、PreToolUseやPostToolUseなど、ツール呼び出しの前後で動くhooksがあります。設定例はClaude Code Hooks完全ガイドにあります。
Kimiの契約でClaude Codeを動かす別ルート
Kimi側の公式ドキュメントには、Claude Codeを使い続けたままKimiのAPIへ向ける手順があります。~/.claude/settings.jsonのenvにBase URLとキーを書きます(次は公式ドキュメントの一部を抜いた形です)。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.kimi.com/coding/",
"ANTHROPIC_API_KEY": "あなたのAPIキー",
"ANTHROPIC_MODEL": "k3-256k"
}
}このドキュメントは、ほかにもサブエージェントの既定モデルや、コンテキストの上限を調整する変数も書いています。注意点は3つです。
- 設定に平文でキーを置くので、リポジトリやdotfilesの公開に注意する
settings.jsonのenvは、端末でexportした同名の変数を上書きする- 会員のプランによって使えるモデル名と、コンテキストの上限が違う
この方式は、Claude Codeの操作系(権限、hooks、skills)をそのまま使い、モデルだけをKimiにする構成です。Kimi Code CLIに乗り換える話とは別で、Claude Code側の資産を捨てずに済みます。
旧Kimi CLIはアーカイブ済み — kimi migrateで移すもの
Python版のKimi CLI(MoonshotAI/kimi-cli)は、リポジトリがアーカイブされ、読み取り専用になりました。以降のリリース、バグ修正、セキュリティ更新はありません。既存のインストールはサポートされなくなる、と案内されています。不具合や要望は、新しいKimi Code CLIのリポジトリへ出す形です。
移行の流れは次のとおりです。
- Kimi Code CLIをインストールする
- 新しい端末で
kimiを実行する。~/.kimi/に旧データがあると、移行するかを尋ねられる。いつでもkimi migrateで手動実行もできる /loginをやり直し、MCPサーバーを再認可する- 旧CLIをアンインストールする(
uv tool uninstall kimi-cliかbrew uninstall kimi-cli)
移行される範囲は、次のとおりです。
| 種別 | 扱い |
|---|---|
設定(config.toml) | 扱い移行される |
| MCPサーバーの設定 | 扱い移行される |
| 入力履歴 | 扱い移行される |
| チャットセッション | 扱い選んだ分だけ移行される |
| ログイン(OAuth)の資格情報 | 扱い移行されない |
| MCPサーバーの認可 | 扱い移行されない |
| 旧CLIのプラグイン | 扱い移行されない |
~/.kimi/の元データは変更も削除もされないので、旧版の環境はそのまま残ります。ただし更新は止まっているので、当面の併用にとどめる形になります。移行は繰り返し実行でき、取り込み済みのセッションは重複しません。取り込まれたセッションには[imported]のマークが付きます。
もう一点、PyPIのkimi-codeは新しいKimi Code CLIではありません。旧kimi-cliの別名で、こちらもアーカイブされています。新版の入手はインストールスクリプト、Homebrewのbrew install kimi-code、npmの@moonshot-ai/kimi-codeのいずれかです。
旧CLIのkimi mcp addサブコマンドで設定した人は、新版では/mcp-configとmcp.jsonが正規の窓口になる点も覚えておくと安全です。
使い分けの目安
- Claudeモデルで長い自律セッションを回したい、
CLAUDE.mdとhooksで運用ルールを組みたい: Claude Code - Kimiモデルと、動画入力(画面録画を貼って読ませる)を使いたい: Kimi Code CLI
- 1つの端末でClaudeとKimiの両方のモデルを触りたい: Kimi Code CLIのprovider設定か、Claude Codeの
ANTHROPIC_BASE_URL - 旧Kimi CLIを使っている: 更新が止まっているので、
kimi migrateで新版へ
ほかのIDE型・CLI型のエージェントとの違いは、Claude CodeとKiroの比較でも扱っています。
まとめ
Claude CodeとKimi Code CLIの違いは、標準のモデルと契約、MCPの足し方、権限の初期値の3点に集まります。導入はどちらもワンコマンドで、Windowsだけ前提が違います。旧Kimi CLIを使っているなら、移行の作業はkimi migrateと、ログインとMCP認可のやり直しです。