Claude CodeとKilo Codeの違い — CLI・VS Code拡張・エージェント設定を比較
Kilo CodeはモデルをプロバイダーごとにBYOKで選べるオープンソースのエージェントです。Claude Codeとの権限ルールの評価順、モード切替、拡張の作りの違いを並べます。
Kilo CodeはCLIとVS Code拡張が同じ実行基盤を共有するエージェント
Kilo Codeは、ターミナルのCLI(kiloコマンド)とVS Code拡張の両方で使えるコーディングエージェントです。ドキュメントによれば、CLIはIDE拡張と同じ技術で動くため、どちらでも同じ流れでタスクを最後まで任せられます。モデルは複数のプロバイダーから選べ、1つのツールの中で切り替えられます。
Claude Codeとの最大の違いは、設計の出発点です。Claude CodeはClaudeのモデルを前提に権限や設定が組まれています。Kilo Codeはプロバイダーを接続する入れ物で、Claudeはその選択肢の1つです。つまり比較の問いは「Claudeを使うか」ではなく、「Claudeを動かす入れ物としてどちらの設計が合うか」になります。
設計の出発点
Claude Code
モデル切替は/modelと--model。権限は権限モードとルールで決めます。
Kilo Code
/connectで認証情報を登録し、/modelsでモデルを切り替えます。権限はpermission設定で決めます。
比較表 — 主な観点
| 観点 | Claude Code | Kilo Code |
|---|---|---|
| 起動 | Claude Codeclaude | Kilo Codekilo |
| モデル切替 | Claude Code/model、--model | Kilo Code/models、設定のmodel |
| 作業の切替 | Claude Code権限モード(Shift+Tab) | Kilo Codeエージェント(/agents、Cmd+.) |
| 権限ルール | Claude Codedeny、ask、allowの順に評価 | Kilo Code最後に一致したルールが勝つ |
| 設定ファイル | Claude Codesettings.json | Kilo Codekilo.jsonc |
| 指示ファイル | Claude CodeCLAUDE.md。AGENTS.mdも読める | Kilo Code/initでAGENTS.mdを作成 |
| 非対話実行 | Claude Codeclaude -p | Kilo Codekilo run --auto |
| VS Code拡張 | Claude CodeCLI同梱。端末用は別途インストール | Kilo Code実行基盤を内蔵。CLI不要 |
どの行も優劣ではなく、設計の置き場所の違いです。以降は、乗り換えや併用で実際に差が出る行を掘ります。
インストールと最初の認証
Kilo CLIはnpmで入れます。起動後に/connectでプロバイダーの認証情報を追加するのが最初の手順です。
npm install -g @kilocode/cli
kilo --version
kilo起動した画面で/connectを実行し、使いたいモデルのプロバイダーを登録します。AVX命令のない古いCPUでは「Illegal instruction」でクラッシュすることがあり、その場合はGitHubのリリースから-baseline版を取って使う必要があります。更新はkilo upgradeかnpm update -g @kilocode/cliです。
Claude Codeは、Claudeのサブスクリプションかコンソールのアカウントでサインインして使い始めます。BYOKの入口が前面にあるKilo Codeと、アカウントでの認証が基本のClaude Codeでは、最初の画面から入り口が違います。
モデルの切り替え — 設定の書き方が逆向き
Claude Codeは、セッション中に/model <別名または名前>で即座に切り替えます。引数なしの/modelでピッカーが開きます。起動時はclaude --model fableのように指定でき、計画中だけ上位モデルを使うopusplanという別名もあります。
Kilo Codeの設定はprovider_id/model_idの形です。~/.config/kilo/kilo.jsonc(グローバル)か、プロジェクトの./kilo.jsoncに書きます。
{
"$schema": "https://app.kilo.ai/config.json",
"model": "anthropic/claude-sonnet-4-20250514",
"provider": {
"anthropic": {
"options": { "apiKey": "{env:ANTHROPIC_API_KEY}" }
}
}
}上はドキュメントの設定例に沿った形で、モデルIDは例示です。Claudeを使うなら、自分の環境で使えるIDに読み替えます。
注意点が1つあります。{env:VAR}は、グローバル設定など信頼された設定でしか展開されません。リポジトリにコミットしたプロジェクトのkilo.jsonでは参照が無視され、警告がログに出るだけです。悪意あるリポジトリを開いただけで、秘密情報が攻撃者のbaseURLへ流れるのを防ぐための仕様です。APIキーは、プロジェクト側ではなくグローバル設定に置きます。
組み込みの一覧にないモデルは、provider.<provider_id>.modelsに登録すれば使えます。エージェントごとにモデルを固定することもできます。
作業の切り替え — 権限モードか、エージェントか
Claude Codeは、権限モードで「Claudeが確認なしでできること」を切り替えます。Shift+Tabでdefault、acceptEdits、planと巡回し、v2.1.283以降は対話的なターミナルとVS Codeでauto modeが標準の開始モードです。
Kilo Codeは、作業の性格ごとに「エージェント」を切り替えます。組み込みは次のとおりです。
| エージェント | 役割 | ツールの範囲 |
|---|---|---|
| code(既定) | 役割実装全般 | ツールの範囲全ツール |
| ask | 役割質問に答える | ツールの範囲読み取り専用 |
| plan | 役割設計と計画 | ツールの範囲読み取り専用。.kilo/plans/の計画ファイルだけ編集可 |
| debug | 役割原因調査と修正 | ツールの範囲全ツール |
| orchestrator | 役割タスクの分担 | ツールの範囲非推奨。削除予定 |
切り替えは/agents、サイドバーのドロップダウン、Cmd+.(WindowsとLinuxはCtrl+.)です。orchestratorは非推奨で、code・plan・debugがサブエージェントを呼べるようになったため専用のエージェントは要らなくなったと説明されています。
読み替えの目安は次のとおりです。
- Kilo Codeのplanは、Claude Codeのplanモードに近い役割です
- Kilo Codeのaskは、書き込みを全面的に禁じる読み取り専用の相手です
- acceptEditsやautoにあたる「承認の度合い」は、エージェントではなく
permission設定で決めます
つまりClaude Codeは「承認の度合い」の軸を1本持ち、Kilo Codeは「役割」と「権限」を別の軸にしています。
権限ルールの評価順が逆になる
乗り換えで最も事故になりやすいのが、ルールの評価順です。
- Claude Code:deny、ask、allowの順に評価し、最初に一致したルールで決まります。ルールの具体性で順序は変わりません。広いdenyは、狭いallowがあっても優先されます
- Kilo Code:パターン照合で、最後に一致したルールが勝ちます。キャッチオールの
"*"を先頭に置き、具体的なルールをその後ろに書くのが通常の形です
同じ意図を両方に書くと、たとえば次のような形になります(どちらもドキュメントの書式に沿った例です)。
// Kilo Code: kilo.jsonc
{
"permission": {
"bash": {
"*": "ask",
"git *": "allow",
"rm *": "deny"
}
}
}{
"permissions": {
"allow": ["Bash(git *)"],
"deny": ["Bash(rm *)"]
}
}後者は.claude/settings.jsonの書式です。Kilo Codeでは"*": "ask"を最後に移すと、すべてのコマンドが再び確認に戻ります。Claude Codeでは並べ替えても結果が変わらない一方、denyが常に強い点を前提にルールを書きます。Kilo Codeの設定をClaude Codeへ写すときは、「広いdenyの中に狭いallowの例外を置く」書き方が通らない点に注意してください。
承認の操作にも差があります。Kilo CLIの対話モードでは、コマンドの承認時に「Always run git」「Always run git status」のような段階的な選択肢が出て、選んだパターンがグローバル設定のpermission.bashに保存されます。他に開いているセッションの待機中の承認にも反映されます。
非対話実行 — 自動承認を明示するか、モードを渡すか
CIやスクリプトから呼ぶ場合の形も違います。
# Claude Code: 許可ツールを指定して非対話実行
claude -p "Find and fix the bug in auth.py" \
--allowedTools "Read,Edit,Bash"
# Kilo Code: --autoで自動承認の設定に従って実行
kilo run --auto "Implement feature X"Kilo CLIの--autoなしのkilo runは、承認を求められると自動で拒否します。拒否が1件でも出ると終了コード1で終わり、標準エラーに原因が出ます。タスクが完了していない可能性が高いためです。終了コードは0(成功)、124(タイムアウト)、1(エラー)です。--autoではフォローアップの質問にも「自分で判断して進める」という旨の応答が自動で返ります。
Claude Codeのclaude -pは、--allowedToolsのほか--permission-mode acceptEditsのように権限モードを渡す形です。Kilo Codeが「承認の既定動作」を--autoの有無で切り替えるのに対し、Claude Codeは許可の中身を引数で渡します。
VS Code拡張の作りの違い
Claude CodeのVS Code拡張は、チャットパネル用にCLIを同梱しています。統合ターミナルでclaudeを動かしたいときは、別にスタンドアロンのCLIが要ります。
Kilo Codeの拡張は、組み込みの実行基盤を持つため、別のKilo CLIのインストールは要りません。設定も、VS Codeの設定ではなくkilo.jsoncに置かれ、スタンドアロンのCLIと同じ~/.config/kilo/kilo.jsoncと./kilo.jsoncが使われます。拡張とCLIを併用しても、モデルや権限の設定を二重に管理せずに済みます。
拡張の機能として、ドキュメントはAgent Manager(差分パネル、複数モデルの比較、PR取り込み)、バックグラウンドエージェントの状態表示、スキル、カスタムのサブエージェントなどを挙げています。ドキュメントのインストール手順は「Install Pre-Release Version」を選ぶ形になっています。安定版だけを使う運用では、この点を導入前に確かめてください。
企業のプロキシ環境では、VS Codeのhttp.proxyで設定し、独自の証明書はkilo-code.new.extraCaCertsにPEMファイルのパスを書きます。
エージェントの定義 — Markdownの置き場所が似ている
カスタムのエージェントは、両方ともMarkdown + YAMLフロントマターで定義します。
| 項目 | Claude Code | Kilo Code |
|---|---|---|
| プロジェクト | Claude Code.claude/agents/ | Kilo Code.kilo/agents/(.kilo/agent/も可) |
| 個人 | Claude Code~/.claude/agents/ | Kilo Code~/.config/kilo/agent/ |
| 設定ファイルでも定義 | Claude Code/agentsや--agents | Kilo Codekilo.jsoncのagentキー |
Kilo Codeのフロントマターには、description、mode(primary、subagent、all)、model、permission、steps、temperatureなどを書けます。mode: primaryにすると、ピッカーから直接選べる「役割」として使えます。たとえば次のように、Markdownだけを編集できる文書担当を作れます。
---
description: Specialized for writing and editing technical documentation
mode: primary
permission:
edit:
"*": "deny"
"*.md": "allow"
bash: deny
---
You are a technical documentation specialist. Only edit Markdown files."*": "deny"を先に置き、"*.md": "allow"を後ろに書く順序が、先の「最後に一致したルールが勝つ」の実例です。順序を逆にすると、すべての編集が拒否されます。
指示ファイル、MCP、セッションの引き継ぎ
指示ファイルは、Claude CodeがCLAUDE.mdを基本にし、リポジトリがAGENTS.mdだけを持つ場合はそちらも読めます。Kilo Codeの組み込みの/initは、AGENTS.mdを作成・更新します。設定のinstructionsには、CONTRIBUTING.mdや.cursor/rules/*.mdのようなファイルのパスを並べられます。Kilo Codeのドキュメントには、CLAUDE.mdを自動で読むという記述はありません。CLAUDE.mdだけで運用しているリポジトリは、instructionsに指定するか、AGENTS.mdへ内容を寄せる検討が要ります。
MCPは、Claude Codeがclaude mcp add --transport http <名前> <URL>で追加します。Kilo Codeはkilo mcpで管理し、設定のmcpキーに書きます。他のツールの設定を移すときの考え方は、ClineからClaude CodeへMCP設定を移行する手順と同じです。サーバー定義の形は、ツールごとに書式が違います。
セッションの引き継ぎは、Kilo Code側に機能があります。Kilo CLIは、/resume-claudeでClaude Codeのセッションの記録(~/.claude/projects/以下)を取り込めます。空のセッション(/newの直後)でだけ動き、現在のディレクトリの直近10件から選ぶか、セッションのUUIDを渡します。表現できない一部のツール出力は読み飛ばされ、取り込み時の通知に件数が出ます。Claude CodeからKilo Codeへ試しに移るときに、履歴を手で写さずに済む機能です。
どちらを選ぶかの目安
次の条件に当てはまる場合は、Kilo Codeの設計が合います。
- 1つのツールの中で、複数のプロバイダーのモデルを切り替えたい
- 同じ設定ファイルを、CLIとVS Code拡張の両方で共有したい
- 「ask」「plan」「debug」のような役割を、エージェントとして分けて呼び出したい
次の場合は、Claude Codeの設計が合います。
- Claudeのモデルだけで運用し、権限モードとauto modeで承認の度合いを段階的に変えたい
- deny優先のルールで、禁止事項を確実に効かせたい
- CLAUDE.mdを中心に指示を管理している
BYOKで複数プロバイダーを選べる点は、JetBrains製のJunie CLIとも共通します。計画機能やCLI中心の設計を比べるなら、Augment CodeやKiroの比較も参考になります。
まとめ
Kilo Codeは、CLIとVS Code拡張が同じ設定とエージェントの仕組みを共有する、モデル選択型の入れ物です。Claude Codeは、Claudeを前提に権限モードとルールを組み込んだ設計です。乗り換えで最初に確かめたいのは、権限ルールの評価順(最後が勝つか、denyが勝つか)です。次に、CLAUDE.mdがKilo側で読まれない点と、{env:VAR}がプロジェクト設定で無効になる点を押さえておくと、移行後の設定が静かに効かなくなる事故を避けられます。