13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenCode vs Claude Code、ファイ!! OSSコーディングエージェントの実力を検証してみた

13
Posted at

はじめに

こんばんは、mirukyです。

「GitHub Stars 127K。Claude Codeキラーを名乗るOSSが、ターミナルの覇権を狙っている。」

2026年3月、AIコーディングエージェント市場に異変が起きています。AnthropicのClaude Codeがターミナルベースのコーディングエージェントとして圧倒的な存在感を示す一方、OpenCodeというOSSプロジェクトがわずか数ヶ月でGitHub Stars 127Kを突破し、823人のコントリビューター、月間500万人の開発者が利用する規模に急成長しました。

OpenCodeは「100% OSS」「プロバイダー非依存」「クライアント/サーバーアーキテクチャ」という、Claude Codeとは根本的に異なる設計思想を持っています。

本記事では、この2つのコーディングエージェントをアーキテクチャ、ツール、エージェント、権限、拡張性、価格の観点から徹底比較し、それぞれの強みと使い分けを解説します。

本記事の情報は2026年3月時点のものです。OpenCode v1.2.27、Claude Code最新版を基に検証しています。両ツールともに急速に進化中であり、仕様は変更される可能性があります。

目次

  1. OpenCodeとは何か
  2. アーキテクチャの根本的な違い
  3. モデル対応 ── 独占 vs 開放
  4. 組み込みツールの比較
  5. エージェント/サブエージェントの設計
  6. 権限モデルの比較
  7. Hooks ── 自動化の深度
  8. 拡張性 ── SDK・サーバー・プラグイン
  9. TUI/UI体験
  10. 価格モデルの比較
  11. どちらを選ぶべきか
  12. おわりに

1. OpenCodeとは何か

1-1. 基本情報

OpenCodeは、Anomaly(旧SST/terminal.shopチーム)が開発するOSSのAIコーディングエージェントです。

項目 内容
リポジトリ anomalyco/opencode
Stars 127K(2026年3月時点)
コントリビューター 823人
言語構成 TypeScript 55.2%、MDX 40.8%、CSS 3.1%、Rust 0.5%
ライセンス MIT
最新バージョン v1.2.27
月間利用者 500万人以上

「OpenCode」は2つある ── 混同注意
GitHubにはopencode-ai/opencodeという別リポジトリも存在しますが、こちらはGo言語ベースの旧プロジェクト(Stars 11.5K)で、2025年9月にアーカイブ済みです。charmbraceletの「Crush」に移行しています。本記事で扱うのはanomalyco/opencode(TypeScriptベース、Stars 127K)です。

1-2. なぜ急成長したのか

OpenCodeが短期間でこれほど普及した理由は、主に3つあります。

プロバイダー非依存: Anthropic、OpenAI、Google、ローカルLLMなど75以上のプロバイダーに対応。特定のベンダーにロックインされない

完全OSS(MITライセンス): ソースコードが完全に公開されており、誰でもフォーク・カスタマイズ可能。エンタープライズでの内部デプロイも自由

クライアント/サーバーアーキテクチャ: TUIはサーバーと通信するクライアントに過ぎず、SDKやモバイルアプリから同じサーバーをリモート操作できる

2. アーキテクチャの根本的な違い

2-1. 設計思想の比較

OpenCodeとClaude Codeは、アーキテクチャの時点で根本的に異なります。

観点 OpenCode Claude Code
ソースコード 100% OSS(MIT) プロプライエタリ
アーキテクチャ クライアント/サーバー分離 モノリシック(TUI + エンジン一体型)
サーバー OpenAPI 3.1準拠のHTTPサーバー ヘッドレスモード(claude -p)あり
利用形態 TUI / デスクトップアプリ / Web / SDK / モバイル Terminal / VS Code / JetBrains / Desktop / Web
開発チーム Anomaly(旧SST/terminal.shop) Anthropic

2-2. OpenCodeのクライアント/サーバーモデル

OpenCodeの最大の特徴は、TUIがサーバーの単なるクライアントであるという設計です。

opencodeを実行すると、内部でHTTPサーバー(デフォルトポート4096)が起動し、TUIはそのサーバーと通信します。このサーバーはOpenAPI 3.1仕様に準拠しており、SDK経由でプログラマティックに操作できます。

# サーバーのみ起動(ヘッドレス)
opencode serve --port 4096 --hostname 0.0.0.0

# 別の端末から接続
# SDKを使ってセッションを操作可能

これにより、以下が可能になります。

  • モバイルアプリからの操作: 外出先からスマートフォンでサーバーに接続し、コーディングタスクを指示
  • CI/CDとの統合: SDKを使ってビルドパイプラインからエージェントを呼び出し
  • 複数クライアントの同時接続: 同一サーバーに複数のUIから接続

2-3. Claude Codeの統合モデル

一方、Claude Codeは統合型のアプローチを取っています。ターミナル、VS Code拡張、JetBrainsプラグイン、デスクトップアプリ、Webなど、すべての環境で同一のClaude Codeエンジンが動作します。

Claude Codeの強みは、環境間でCLAUDE.md、設定、MCPサーバーが一貫して機能する点です。また、claude -pによるプログラマティック利用、Agent SDKによるCI/CD統合も充実しています。

Remote Control機能
Claude Codeにはclaude --remote-controlというリモート操作機能があり、claude.aiやClaudeアプリからローカルのClaude Codeセッションを操作できます。アーキテクチャは異なりますが、「リモートから操作する」というユースケースは両者ともカバーしています。

3. モデル対応 ── 独占 vs 開放

3-1. 対応モデルの比較

モデル対応は、両者の最も大きな違いの1つです。

観点 OpenCode Claude Code
デフォルトモデル 設定次第(任意) Claude(Sonnet / Opus / Haiku)
対応プロバイダー数 75+ Anthropicメイン + サードパーティ対応
モデル認証方式 APIキー、GitHub Copilot、ChatGPT Plus/Pro Claudeサブスクリプション、APIキー
独自ゲートウェイ OpenCode Zen なし

3-2. OpenCode Zen ── 検証済みモデルゲートウェイ

OpenCodeは独自のAIゲートウェイ 「OpenCode Zen」 を提供しています。これは、OpenCodeチームがコーディングエージェントとしての品質をベンチマーク・検証したモデルを、最適なプロバイダー経由で提供するサービスです。

モデル 入力/1Mトークン 出力/1Mトークン
GPT 5 Nano 無料 無料
Big Pickle 無料 無料
Claude Sonnet 4.6(≤200K) $3.00 $15.00
Claude Opus 4.6(≤200K) $5.00 $25.00
GPT 5.4 $2.50 $15.00
Gemini 3.1 Pro(≤200K) $2.00 $12.00

Zenの特徴は原価販売です。マークアップはクレジットカード手数料(4.4% + $0.30/取引)のみで、モデルプロバイダーの料金がそのまま反映されます。

3-3. Claude Codeのモデル戦略

Claude Codeは基本的にClaudeモデルに最適化されています。サードパーティプロバイダーの利用も可能ですが、Claudeモデルとの統合が最も深く、Hooks、Subagent、Agent Teamsなどの高度な機能はClaude上で最も安定して動作します。

料金はClaudeサブスクリプション(Free / Pro $20/月 / Max $100/月〜)またはAnthropic Console APIの従量課金から選択可能です。Claude CodeはFreeプランでも利用可能ですが、使用量に制限があります。Pro以上のプランではより多くの使用量が割り当てられ、Max(5xまたは20x)ではさらに大幅に増加します。

4. 組み込みツールの比較

4-1. ツール一覧の比較

両者のツールを並べると、基本的なファイル操作やコマンド実行は共通していますが、差別化ポイントがいくつかあります。

ツール OpenCode Claude Code
ファイル読み取り read Read
ファイル書き込み write Write
ファイル編集 edit Edit
パッチ適用 patch
シェル実行 bash Bash
ファイル検索(glob) glob Glob
テキスト検索(grep) grep Grep
ディレクトリ一覧 list ─(Bashで代替)
Web取得 webfetch WebFetch
Web検索 websearch(Exa AI) WebSearch
ToDoリスト todowrite / todoread TodoWrite / Task
質問ツール question AskUserQuestion
スキル読み込み skill スキルシステム
LSPツール lsp(実験的) LSP(code intelligenceプラグイン経由)
Chrome統合 --chrome
Notebook NotebookEdit

4-2. OpenCodeのLSPツール

OpenCodeの注目すべき差別化ポイントの1つが、LSP(Language Server Protocol)の組み込みサポートです。

lspツール(実験的機能)により、LLMはgoToDefinitionfindReferenceshoverdocumentSymbolworkspaceSymbolprepareCallHierarchyなどのコードインテリジェンス機能を直接利用できます。これにより、エージェントはコードベースの構造をより正確に理解した上で編集を行えます。

Claude CodeにもLSPツールが存在し、定義ジャンプ・参照検索・型情報取得・シンボル一覧・実装検索・呼び出し階層のトレースが可能です。ただし、code intelligenceプラグインと対応するLanguage Serverバイナリが必要です。両者ともLSP統合を提供している点では共通ですが、OpenCodeはネイティブ組み込み(実験的)、Claude Codeはプラグイン経由という違いがあります。

4-3. Claude CodeのChrome統合

一方、Claude CodeにはChrome拡張機能による独自の統合があります。--chromeフラグを有効にすると、ブラウザの操作・スクリーンショット取得・Webテストの自動化が可能になります。フロントエンド開発やE2Eテストの場面で強力です。

5. エージェント/サブエージェントの設計

5-1. エージェント構成の比較

観点 OpenCode Claude Code
プライマリエージェント Build(全ツール)、Plan(制限付き) メインスレッド(全ツール)
サブエージェント General(全ツール※todo除く)、Explore(読み取り専用) Explore、Plan、General-purpose
エージェント切り替え Tabキーで切り替え --agentフラグ or @メンション
カスタムエージェント JSON設定 or Markdownファイル Markdownファイル(frontmatter)
エージェントチーム Agent Teams(複数エージェント並列)
永続メモリ memoryフィールド(user/project/local)
バックグラウンド実行 background: true
worktree分離 isolation: "worktree"

5-2. OpenCodeのエージェント設計

OpenCodeのエージェントは、JSON設定またはMarkdownファイルで定義します。

// opencode.json
{
  "agent": {
    "code-reviewer": {
      "description": "Reviews code for best practices",
      "mode": "subagent",
      "model": "anthropic/claude-sonnet-4-20250514",
      "prompt": "You are a code reviewer...",
      "tools": {
        "write": false,
        "edit": false
      }
    }
  }
}

特筆すべきは、エージェントごとにモデルを変更できる点です。計画にはHaikuを使い、実装にはOpusを使うといった運用が簡単にできます。また、opencode agent createコマンドで対話的にエージェントを作成でき、LLMがシステムプロンプトを自動生成してくれます。

5-3. Claude Codeのサブエージェント設計

Claude Codeのサブエージェントはより高度な機能を備えています。

---
name: code-reviewer
description: Expert code review specialist
tools: Read, Grep, Glob, Bash
model: sonnet
memory: project
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-command.sh"
---
You are a senior code reviewer...

Claude Codeの特徴的な機能として以下があります。

永続メモリ(memoryフィールド): サブエージェントがセッション間で知見を蓄積できる。userスコープならプロジェクト横断、projectスコープならリポジトリ内で共有

Agent Teams: 複数のエージェントが独立したコンテキストウィンドウで並列に作業し、相互に通信できるチーム体制

worktree分離(isolation: "worktree": サブエージェントをgit worktreeで隔離し、メインブランチに影響を与えずに作業させる

バックグラウンド実行: Ctrl+Bでサブエージェントをバックグラウンドに送り、メインの作業を続行できる

Agent Teamsとは
Claude Code固有の機能で、複数のエージェントがそれぞれ独立したセッションで並列に作業し、タスクボードを通じて協調します。OpenCodeのサブエージェント(@general等)は親セッション内で動作するため、厳密には並列ではありません。

6. 権限モデルの比較

6-1. 権限設計の思想

観点 OpenCode Claude Code
デフォルト すべて許可(allow) ツールごとに許可確認
アクション allow / ask / deny allow / deny(ルールベース)
粒度 ツール名 + グロブパターン ツール名 + 引数パターン
コマンド別制御 "git push": "ask" "Bash(git push *)": deny
外部ディレクトリ external_directory --add-dir
パーミッションモード default / acceptEdits / plan / dontAsk / bypassPermissions

6-2. OpenCodeの権限モデル

OpenCodeの権限設計はシンプルかつ強力です。opencode.jsonでグローバル設定を行い、エージェントごとにオーバーライドできます。

{
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "git push *": "deny",
      "grep *": "allow"
    },
    "edit": "allow",
    "external_directory": {
      "~/projects/personal/**": "allow"
    }
  }
}

最後にマッチしたルールが優先されるため、*でデフォルトを設定し、特定のパターンでオーバーライドする直感的な設計です。.envファイルはデフォルトで読み取り拒否されるなど、セキュリティ面の配慮もあります。

6-3. Claude Codeのパーミッションモード

Claude Codeは5段階のパーミッションモードを提供します。

モード 動作
default 標準の許可確認
acceptEdits ファイル編集を自動承認
plan 読み取り専用(計画モード)
dontAsk 許可プロンプトを自動拒否
bypassPermissions 許可プロンプトをスキップ

--allowedTools--disallowedToolsで細かくツールを制御でき、"Bash(git log *)"のような引数パターンでの制御も可能です。alwaysオプションによりセッション内での永続許可も設定できます。

7. Hooks ── 自動化の深度

7-1. Hooksの比較

Hooksは、エージェントのライフサイクルにカスタムロジックを挿入する機能です。ここが両者の最大の差が出るポイントの1つです。

観点 OpenCode Claude Code
Hooks機能 なし(2026年3月時点) 20以上のフックイベント
フックタイプ command / http / prompt / agent
主要イベント SessionStart, PreToolUse, PostToolUse, Stop, SubagentStart/Stop 等
非同期フック async: true
プロンプトフック LLMによる判定フック
エージェントフック サブエージェントによる検証フック

7-2. Claude CodeのHooksシステム

Claude CodeのHooksは非常に充実しています。20以上のライフサイクルイベントに対して、4種類のフックハンドラを定義できます。

フックタイプ:

  • command: シェルコマンドを実行
  • http: HTTPエンドポイントにPOST
  • prompt: LLMに単発の判定を依頼
  • agent: サブエージェントにツールを使った検証を行わせる

主要なイベント例:

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": ".claude/hooks/block-rm.sh"
      }]
    }],
    "Stop": [{
      "hooks": [{
        "type": "prompt",
        "prompt": "Check if all tasks are complete: $ARGUMENTS"
      }]
    }],
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "./scripts/lint-check.sh",
        "async": true
      }]
    }]
  }
}

特に強力なのはStopフックです。エージェントが「完了」と判断したタイミングでLLMやサブエージェントに検証させ、まだやるべきことがあれば作業を継続させることができます。ハーネスエンジニアリングにおける 「早期完了宣言」問題 を直接解決するメカニズムです。

7-3. OpenCodeのカスタムツール

OpenCodeにはHooksシステムはありませんが、カスタムツールによって一部のユースケースをカバーできます。LLMが呼び出せる独自の関数を設定ファイルで定義し、任意のコードを実行できます。ただし、これはライフサイクルフックとは異なり、エージェントの自律的な判断を制御する仕組みではありません。

8. 拡張性 ── SDK・サーバー・プラグイン

8-1. SDK/APIの比較

観点 OpenCode Claude Code
SDK @opencode-ai/sdk(TypeScript) Agent SDK(TypeScript)
APIプロトコル OpenAPI 3.1(REST) SDKベース
セッション管理 CRUD + prompt/abort/share/revert CRUD + prompt/resume/fork
ファイル操作 text検索、file検索、symbol検索 ─(ツール経由)
イベント SSE(Server-Sent Events) イベントストリーム
構造化出力 JSON Schema対応 JSON Schema対応
TUI制御 API経由でプロンプト注入・トースト表示
認証 HTTP Basic認証

8-2. OpenCodeのSDK

OpenCode SDKは、サーバーAPIの型安全なラッパーです。

import { createOpencode } from "@opencode-ai/sdk"

const { client } = await createOpencode()

// セッション作成 → プロンプト送信
const session = await client.session.create({
  body: { title: "Feature implementation" }
})

const result = await client.session.prompt({
  path: { id: session.id },
  body: {
    parts: [{ type: "text", text: "Implement user authentication" }]
  }
})

// 構造化出力(JSON Schema)
const structured = await client.session.prompt({
  path: { id: session.id },
  body: {
    parts: [{ type: "text", text: "Analyze the codebase" }],
    format: {
      type: "json_schema",
      schema: {
        type: "object",
        properties: {
          summary: { type: "string" },
          issues: { type: "array", items: { type: "string" } }
        }
      }
    }
  }
})

8-3. MCP/ACPサポート

観点 OpenCode Claude Code
MCP 対応(opencode.jsonで設定) 対応(.mcp.jsonで設定)
ACP 対応
Channels 対応(Telegram, Discord等)
プラグイン エコシステムとして公開 プラグインシステム

OpenCodeはACP(Agent Communication Protocol)にも対応しており、外部エージェントとの通信プロトコルをサポートしています。Claude CodeはChannels機能により、TelegramやDiscordからのプッシュイベントをセッションに注入できます。

9. TUI/UI体験

9-1. TUIの比較

OpenCodeのTUIは、Neovimユーザーとterminal.shopの開発者によって設計されており、ターミナルネイティブな操作性に強いこだわりがあります。

機能 OpenCode Claude Code
エージェント切り替え Tabキー /agentsコマンド
ファイル参照 @でファジー検索 @でファイルメンション
画像入力 ドラッグ&ドロップ 対応
セッション共有 /share /share
Undo/Redo /undo/redo /undo
テーマ カスタムテーマ対応
フォーマッタ コード出力の整形設定
キーバインド 完全カスタマイズ可能 一部カスタマイズ可能
デスクトップアプリ macOS / Windows / Linux macOS / Windows / Linux
マルチセッション サブエージェントのセッション間をLeader+Left/Rightで循環 セッション管理あり
初期化 /initでAGENTS.md自動生成 CLAUDE.mdによる記憶

10. 価格モデルの比較

10-1. コスト構造

観点 OpenCode Claude Code
ツール本体 無料(OSS) 無料
モデル料金 各プロバイダーの従量課金 or Zen Claudeサブスクリプション or API
サブスクリプション Zenは従量課金のみ(定額なし) Free / Pro $20/月 / Max $100/月〜
無料オプション GPT 5 Nano、Big Pickle(Zen経由) Freeプランで利用可能(使用量制限あり)
チーム機能 Zenワークスペース(ベータ、無料) Max for Enterprise
セルフホスト 可能(OSS) 不可

10-2. コスト試算

個人開発者の場合:

Claude CodeはFreeプランでも利用可能ですが、使用量に制限があります。Pro($20/月)以上で実用的な使用量が確保でき、Max($100/月〜)では5x〜20xの大幅な使用量が利用可能です。一方、OpenCodeはモデルの従量課金のみなので、使い方次第ではClaude Codeより安くなります。特にGPT 5 NanoやBig Pickleなどの無料モデルを活用すれば、コストゼロでの運用も可能です。

チームの場合:

OpenCodeのZenワークスペースは現在ベータ版で無料。管理者がメンバーごとの月次上限を設定できます。Claude Codeのエンタープライズプランは組織単位での管理が可能ですが、具体的な料金は問い合わせが必要です。

セルフホストの場合:

OpenCodeはMITライセンスのOSSなので、社内サーバーにデプロイし、自社のAPIキーで運用できます。これはデータの外部送信が許可されない環境でのみ可能な選択肢であり、Claude Codeでは実現できません。

11. どちらを選ぶべきか

11-1. 総合比較表

評価軸 OpenCode Claude Code
モデルの自由度 ◎(75+プロバイダー) △(Claudeメイン)
OSS/透明性 ◎(MIT) ×(プロプライエタリ)
アーキテクチャの柔軟性 ◎(C/Sモデル)
Hooksシステム ×(未実装) ◎(20+イベント)
エージェントチーム ×(未実装)
永続メモリ ×(未実装)
LSP統合 ○(実験的) ○(プラグイン経由)
権限の柔軟性
SDK/拡張性
エンタープライズ対応 ○(セルフホスト可)
コミュニティ ◎(127K Stars) ◎(大規模ユーザー基盤)
TUI品質
コスト効率 ◎(無料モデルあり) ○(無料〜定額で予測可能)

11-2. OpenCodeを選ぶべきケース

マルチモデル戦略を取りたい: タスクに応じてClaude、GPT、Gemini、ローカルLLMを使い分けたい場合

ベンダーロックインを避けたい: 特定のプロバイダーに依存せず、将来のモデル選択の自由度を確保したい場合

セルフホストが必要: データの外部送信が制限される環境で、社内にコーディングエージェントをデプロイしたい場合

SDK/APIでの統合を重視: クライアント/サーバーアーキテクチャによるプログラマティックな操作が必要な場合

コストを最小化したい: 無料モデルの活用や、自社APIキーでの運用を検討している場合

11-3. Claude Codeを選ぶべきケース

Hooksによる高度な自動化: PreToolUse、Stop、PostToolUseなどのライフサイクルフックで、エージェントの動作を精密に制御したい場合

Agent Teamsでの並列作業: 複数のエージェントを独立したコンテキストで並列に動作させ、大規模な開発タスクを分担したい場合

長期的なナレッジ蓄積: サブエージェントの永続メモリ機能を使い、プロジェクト固有のパターンや知見をセッション間で蓄積したい場合

Claudeモデルとの深い統合: Anthropicのモデルを最大限に活用する最適化された体験を求める場合

定額料金での予測可能なコスト: Pro $20/月やMax $100/月〜で、API従量課金を気にせず運用したい場合

12. おわりに

OpenCodeとClaude Codeは、同じ問題を異なる設計思想で解決しようとしているツールです。

OpenCodeは 「自由と開放性」 を設計の中心に据えています。75以上のプロバイダー対応、MIT OSSライセンス、クライアント/サーバーアーキテクチャ ── すべてが「ユーザーが選択し、カスタマイズし、所有する」という思想に基づいています。わずか数ヶ月で127K Starsという急成長は、この思想に共感する開発者がいかに多いかを示しています。

Claude Codeは 「深い統合と制御」を設計の中心に据えています。20以上のライフサイクルフック、Agent Teams、永続メモリ、worktree分離 ── これらはすべて、エージェントが長時間、安定して、高品質に作業を続けるための制御構造です。Anthropicがハーネスエンジニアリングを推進する立場であることを考えれば、Claude Code自体がその思想の最も先鋭的な実装と言えます。

結論として、両者は排他的ではありません。OpenCodeのプロバイダー非依存の設計は、Claudeモデルを含む複数のモデルを使い分ける柔軟性を提供します。むしろ「OpenCode + Claudeモデル」という組み合わせも十分に実用的です。

重要なのは、自分のプロジェクトの要件(モデルの自由度、Hooksによる制御、セルフホストの要否、予算)に基づいて選択することです。

ではまた、お会いしましょう。

参考リンク

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?