Back

OpenCode: ターミナルファーストなAIコーディングエージェント

OpenCode: ターミナルファーストなAIコーディングエージェント

今日のAIコーディングツールの多くは、IDE拡張機能か、モデルコストを月額料金に含めたサブスクリプション型製品です。OpenCodeは異なるアプローチを取っています。ターミナルで動作するオープンソースのコーディングエージェントで、既に使用しているモデルやプロバイダーに接続し、邪魔をしません。

この記事では、OpenCodeとは何か、現代の開発ワークフローにどのように適合するか、そしてCLIコーディングアシスタントとして検討する価値がある理由を説明します。

重要なポイント

  • OpenCodeは、オープンソースのターミナルファーストなAIコーディングエージェントで、デスクトップおよびIDEインターフェースも提供しています。
  • 複数のAIプロバイダー(Anthropic、OpenAI、Gemini、Bedrockなど)をサポートし、使用した分だけ支払うことができます。
  • 組み込みツールにより、エージェントはファイルの読み取り、書き込み、編集、シェルコマンドの実行、LSP診断の表示が可能です。
  • PlanモードとBuildモードにより、エージェントがファイルを変更する前にレビューステップが提供されます。
  • LSP、MCP、カスタムコマンドによる拡張性により、多様なツールチェーンやワークフローに適応できます。

「ターミナルファースト」が実際に意味すること

ターミナルファーストは、ターミナル専用を意味するものではありません。OpenCodeは、ターミナルベースのTUI(Terminal User Interface)、デスクトップアプリ、IDE拡張機能として利用できます。しかし、ターミナルこそが最も快適に使えるように設計されている場所です。

実際には、ターミナルインターフェースは典型的なデスクトップのオーバーヘッドを回避し、シェルで直接実行され、開始するために別のGUIを必要としません。プロジェクトディレクトリを開き、opencodeを実行すれば、完全なインタラクティブコーディングセッションが始まります。TUIはキーボード駆動のワークフロー向けに構築されており、セッション、モデル切り替え、ファイルコンテキスト、コマンドはすべてキーボードから離れることなくアクセスできます。

既にターミナルで作業している開発者にとって、これは自然な選択です。GUIを好む人には、デスクトップやIDEオプションも用意されています。

OpenCode AIエージェントのコア機能

OpenCodeは単なるチャットインターフェース以上のものです。AIエージェントは、セッション中に呼び出すことができる組み込みツールのセットにアクセスできます。

  • ファイル操作: ファイルの直接的な読み取り、書き込み、編集、パッチ適用
  • シェル実行: 設定されたシェルでコマンドを実行
  • 検索: ファイル内容のgrep、globパターン、ディレクトリリスト
  • コードインテリジェンス: LSP統合による定義、参照、シンボルのナビゲーション

つまり、OpenCodeに機能追加を依頼すると、関連ファイルを読み取り、変更を加え、ビルドチェックを実行します。コードを手動でコピー&ペーストする必要はありません。

PlanモードとBuildモード

より実用的な機能の1つは、PlanモードとBuildモードの区別です。Planモードでは、OpenCodeはファイルに触れる前に実行予定の内容を下書きします。計画をレビューし、フィードバックを提供してから、Buildモードに切り替えて実行します。この2段階のアプローチにより、望まない変更を減らし、エージェントの動作に対する意味のある制御を提供します。

マルチセッションワークフロー

OpenCodeはセッションをローカルに保存するため、会話を切り替えて中断したところから再開できます。セッション間を切り替えたり、/shareでチームメイトとセッションリンクを共有したり、中断したところから再開できます。セッション共有はオプトイン方式で、デフォルトでは何も共有されません。

柔軟なモデルとプロバイダーサポート

OpenCodeは、Anthropic、OpenAI、Google Gemini、AWS Bedrock、Groq、Azure OpenAI、OpenRouterなど、幅広いAIプロバイダーに接続します。ローカルエンドポイント経由でセルフホスト型モデルもサポートしており、既にセットアップ済みの場合はGitHub Copilotも利用できます。

プロバイダーは環境変数またはローカルの.opencode.jsonファイルで設定します。APIキーはマシン上に保存されます。重い推論タスクに使用するモデルと、日常的なクリーンアップに使用するモデルを分けることができ、再起動せずにその場でモデルを切り替えることができます。

この柔軟性は、OpenCodeとサブスクリプションベースのAI開発者ツールとの最も明確な違いの1つです。選択したプロバイダーで、使用した分だけ支払います。

拡張性: LSP、MCP、カスタムコマンド

OpenCodeはLanguage Server Protocolと統合し、エージェントに言語ツールチェーンからの実際の診断へのアクセスを提供します。goplstypescript-language-server、またはLSP互換サーバーを設定すると、エージェントはエラーをチェックし、実際のコンパイラ出力に基づいた修正を提案できます。

より広範な拡張性のために、OpenCodeはModel Context Protocol (MCP)をサポートしています。これは、AIエージェントを外部ツールやサービスに接続するための標準です。MCPサーバーを設定に追加すると、そのツールが自動的にエージェントで利用可能になります。

カスタムコマンドを使用すると、再利用可能なプロンプトをMarkdownファイルとして定義できます(ユーザーごとまたはプロジェクトごとに保存)。名前付き引数プレースホルダーを使用できます。project:prime-contextのようなコマンドは、git ls-filesを実行し、READMEを読み取り、1ステップでエージェントのコンテキストをセットアップできます。

OpenCodeの位置づけ

AI開発者ツールの状況は、大まかに2つのカテゴリーに分かれます。エディターと並行して動作するIDE統合アシスタントと、コードベース上でより自律的に動作するCLIエージェントです。OpenCodeは後者のカテゴリーにしっかりと位置し、必要に応じてGUIオプションの柔軟性も備えています。

まとめ

OpenCodeは、サブスクリプションに縛られたAIコーディングアシスタントに対する実用的な代替手段を提供します。ターミナルで実行し、自分で用意したプロバイダー設定をサポートし、LSP、MCP、カスタムコマンドを通じて拡張性を公開することで、開発者にAIをワークフローのどこにどのように組み込むかの直接的な制御を提供します。複数のプロジェクトにわたって作業し、独自のツールチェーンを設定することを好み、検査および拡張可能なオープンソースのコーディングエージェントが必要な場合、OpenCodeは詳しく見る価値があります。opencode.aiから始めて、最初のプロジェクトで/initを実行し、1行も書く前にコードベースをどのように読み取るかを確認してください。

よくある質問

いいえ。OpenCodeはオープンソースであり、サブスクリプションやアカウントは不要です。Anthropic、OpenAI、Google Geminiなどのプロバイダーから独自のAPIキーを用意し、使用量に基づいてそれらのプロバイダーに直接支払います。キーはマシン上にローカルに保存されます。

はい。OpenCodeはローカルエンドポイント設定を通じてセルフホスト型モデルをサポートしています。独自のインフラストラクチャで互換性のあるモデルサーバーを実行している場合、OpenCodeをそれに向けて、クラウドプロバイダーを使用するのと同じように使用できます。

Planモードでは、エージェントがファイルを変更せずに実行予定の変更の概要を示します。最初に計画をレビューしてフィードバックを提供します。その後、Buildモードが承認された変更を実行します。この2段階のワークフローにより、制御が可能になり、望まない編集のリスクが軽減されます。

MCPは、AIエージェントが外部ツールやデータソースに接続できるようにする標準です。OpenCode設定にMCPサーバーを追加すると、その機能がセッション中に自動的にエージェントで利用可能になり、組み込みツール以外のことができるようになります。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay