Claude Media
Claude CodeとKilo Codeの違い — CLI・VS Code拡張・エージェント設定を比較

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前提

Claude Code

モデル切替は/modelと--model。権限は権限モードとルールで決めます。

プロバイダー接続型

Kilo Code

/connectで認証情報を登録し、/modelsでモデルを切り替えます。権限はpermission設定で決めます。

比較表 — 主な観点

観点Claude CodeKilo Code
起動Claude CodeclaudeKilo Codekilo
モデル切替Claude Code/model、--modelKilo Code/models、設定のmodel
作業の切替Claude Code権限モード(Shift+Tab)Kilo Codeエージェント(/agents、Cmd+.)
権限ルールClaude Codedeny、ask、allowの順に評価Kilo Code最後に一致したルールが勝つ
設定ファイルClaude Codesettings.jsonKilo Codekilo.jsonc
指示ファイルClaude CodeCLAUDE.md。AGENTS.mdも読めるKilo Code/initでAGENTS.mdを作成
非対話実行Claude Codeclaude -pKilo 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 CodeKilo Code
プロジェクトClaude Code.claude/agents/Kilo Code.kilo/agents/(.kilo/agent/も可)
個人Claude Code~/.claude/agents/Kilo Code~/.config/kilo/agent/
設定ファイルでも定義Claude Code/agentsや--agentsKilo 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}がプロジェクト設定で無効になる点を押さえておくと、移行後の設定が静かに効かなくなる事故を避けられます。

この記事を共有:XはてブLinkedIn