はじめに
こんばんは、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最新版を基に検証しています。両ツールともに急速に進化中であり、仕様は変更される可能性があります。
目次
- OpenCodeとは何か
- アーキテクチャの根本的な違い
- モデル対応 ── 独占 vs 開放
- 組み込みツールの比較
- エージェント/サブエージェントの設計
- 権限モデルの比較
- Hooks ── 自動化の深度
- 拡張性 ── SDK・サーバー・プラグイン
- TUI/UI体験
- 価格モデルの比較
- どちらを選ぶべきか
- おわりに
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はgoToDefinition、findReferences、hover、documentSymbol、workspaceSymbol、prepareCallHierarchyなどのコードインテリジェンス機能を直接利用できます。これにより、エージェントはコードベースの構造をより正確に理解した上で編集を行えます。
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による制御、セルフホストの要否、予算)に基づいて選択することです。
ではまた、お会いしましょう。