コンテンツにスキップ

ソースコード学習パス

これは OpenCode ソースコードのガイド付きコースです。以下の 8 モジュールはボトムアップ順に並んでいます:基礎(設定、プロバイダー、権限)から始まり、統合層(MCP、LSP)、コアエンジン(Agent)、最後にユーザー向けインターフェース(Command、CLI)で終わります。

各章は 1 つのモジュールのアーキテクチャ、型、コアフロー、設計トレードオフの深掘り(3000-4000 字)です。順序通りに読めば完全なメンタルモデルが得られますし、必要なモジュールだけ飛ばして読むこともできます。

前提スキル

ソースコードを読む前に、以下に慣れていることを確認してください:

スキル重要度理由
TypeScript必須コードベースは完全に型付けされており、型が主要なドキュメントです
Promises / async-await必須ほぼすべてが非同期です(LLM ストリーム、ファイル I/O、ツール実行)
Node.js streams重要LLM レスポンスとセッションイベントはストリームです
Git / ターミナル有益リポジトリをクローンしてローカルでデバッグします
React / Vue不要TUI は Web フレームワークではありません。フロントエンドスキルは不要です

所要時間の目安

目標時間学べること
1 モジュールを理解~30 分1 章を読んでそのモジュールの動作を説明できる
完全なリクエストをトレース~1 週間prompt が CLI → Session → Agent → Provider → Tool → レスポンスへ流れる過程を追える
機能を変更~1 ヶ月ある挙動(例:新しい権限ルール)を変更して動かせる
拡張を書く1-3 ヶ月プラグイン、カスタムツール、コアへの貢献ができる

8 つの章(順序通り)

基礎 — 土台

  1. Config · 初級 · ~25 分 設定の読み込み:6 層の優先度、Zod スキーマ、JSONC 解析、ホットリロード。ここから始めてください。他のすべてのモジュールが設定に依存します。

  2. Provider · 初級 · ~20 分 モデル抽象層:OpenCode が Vercel AI SDK で 75 以上の LLM に、プロバイダーごとの HTTP クライアントなしで通信する仕組み。

  3. Permission · 中級 · ~25 分 安全ゲート:3 段階の決定(許可/拒否/確認)、ワイルドカードマッチング、カスケード拒否、一括承認。

統合 — 外部プロトコル

  1. MCP · 中級 · ~25 分 外部ツールチャネル:3 種のトランスポート、OAuth 2.0 + PKCE、MCP ツールが AI SDK の動的ツールになる仕組み。

  2. LSP · 中級 · ~25 分 IDE グレードのコード理解:Effect Service アーキテクチャ、30 以上の言語サーバー定義、診断。

コア — エンジン

  1. Agent · 上級 · ~30 分 設定と実行の分離:Agent は設定定義、Session がループを駆動。並行制御、エラー処理、状態管理。

インターフェース — ユーザーが触れる入口

  1. Command · 上級 · ~20 分 コマンドは関数ではなく設定:4 つのソース(組み込み、Config、MCP プロンプト、Skills)、テンプレート駆動実行。

  2. CLI · 上級 · ~25 分 エントリーポイント:Yargs コマンドツリー、デュアルモード設計(TUI worker vs 非対話 run)、SSE イベントブリッジ。

どこから始めるか

コードベース初めての場合:Config から始める

prompt がコード編集になる過程を理解したい場合:Agent に飛び、コールチェーンを逆追いしてください。

新しいツールで OpenCode を拡張したい場合:MCPCommand を読んでください。

関連リンク