OpenCode - ターミナルで動くClaude Code代替のOSS 〜さくらのAI Engineを使いこなす:主要クライアント実践ガイド(4)〜

はじめに

さくらインターネットでプロダクトマネージャーとして働いている荒木です。

さくらのAI Engineは、基盤モデル搭載済みのGPUサーバーで推論処理ができるAPIサービスです。テキスト生成・分類・埋め込み・音声認識などのLLMに対応しており、既存のツールのバックエンドに組み込むことでさまざまなAIアシストを得ることができます。

そこで今回は、私が普段よく使っているクライアントツールを例に、さくらのAI Engineを組み込んで利用する方法をご紹介します。全部で4本の連載を予定しています。最終回となる第4回はOpenCode編です。

ターミナルでAIアシスタントを使う

実はあまりIDEを使ってこなかったこともあり、普段の開発作業でターミナルを多用しています。

これまで3回にわたって、ObsidianプラグインCopilot、Rust製エディタZed、VS Code拡張のKiloCodeと、さくらのAI Engineを活用できる様々なクライアントを紹介してきました。いずれもGUIベースのツールでした。

最終回となる今回は、少し毛色の違うツールを紹介します。それがOpenCodeです。ターミナルで動作するAIコーディングアシスタントとして、「Claude CodeのOSS版」とも呼ばれています。

IDEをそれほど活用してこなかったこともあり、「Claude CodeはターミナルでAIアシスタントがつかえる」と聞いてすぐに試しました。試したところ、一番しっくりくるな。。。と思ったのでした。

一方で、Claude Codeで使えるLLMプロバイダはAnthropicに限られています。 Claude Codeの盛り上がりをみて、多くのClaude Codeのようなターミナルから使えるAIアシスタントが多数出てきました。OpenCodeはその一つで、もっとも勢いがあると言っても良い候補です。

本シリーズの締めくくりとして、OpenCodeとさくらのAI Engineの組み合わせをご紹介します。

OpenCodeとは

OpenCodeは、オープンソースのAIコーディングエージェントです。その特徴と成り立ちを見ていきましょう。

ターミナルで動作するAIアシスタント

OpenCodeの最大の特徴は、ターミナル内で完結するAIアシスタントであることです。

GUIアプリケーションではなく、コマンドラインツールとして設計されています。tmuxやscreenなどのターミナルマルチプレクサと組み合わせることで、既存の開発ワークフローに自然に統合できます。

インストールも npm, homebrew (macosとLinux用), choco (Windows用) 等が用意され簡単です。

Claude Codeとの関係

OpenCodeは「Claude CodeのOSS版」と呼ばれることがあります。

ただし、OpenCodeは単なるクローンではありません。プロバイダー非依存の設計により、Claude以外の様々なLLMモデルと組み合わせることができます。もちろん、さくらのAI Engineも利用することができます。

MITライセンス

OpenCodeはMITライセンスで公開されています。これは商用利用を含めて自由に使用できる、非常に寛容なライセンスです。

企業での利用においても、ライセンス面での制約はほとんどありません。必要に応じてソースコードを改変し、独自のカスタマイズを加えることも可能です。

活発なコミュニティ

OpenCodeは活発なオープンソースコミュニティによって開発されています。GitHubリポジトリでは多数の開発者が貢献しており、継続的に機能追加やバグ修正が行われています。ツールの品質と実用性が評価されており、問題が発生した場合でも、GitHubのIssuesやDiscussionsを通じてコミュニティからサポートを得られます。

主要な機能

OpenCodeには、以下のような特徴的な機能があります。

75以上のLLMプロバイダー対応

OpenAI、Google、Anthropic(Claude)など、主要なLLMプロバイダーをサポートしています。また、Ollamaを使用したローカルモデルにも対応しており、プライバシーを重視する場合でも利用可能です。

Language Server Protocol (LSP)統合

プロジェクトを起動すると、OpenCodeは自動的にプログラミング言語とフレームワークを識別し、関連するLSPサーバを起動します。これにより、AIは依存関係、関数シグネチャ、使用パターンを分析でき、高精度で文脈に関連した出力を生成できます。

セッション共有

セッション終了後、ユニークなURLを生成できます。このリンクを共有することで、チームメンバーは会話全体を読み取り専用のスナップショットとしてブラウザで閲覧できます。

スクリプト対応

opencode runコマンドを使用することで、非対話的なタスクを実行できます。これは、OpenCodeをシェルスクリプト、エイリアス、CI/CDパイプラインに統合する際に便利です。

さくらのAI Engineとの連携設定

OpenCodeでさくらのAI Engineを使用するための設定方法を説明します。

インストール

OpenCodeのインストール方法はいくつかありますが、個人的にはバージョン管理ツールmiseを使用する方法がおすすめです。

mise install opencode@latest

執筆時点(2025年10月21日)では、バージョン0.15.8がインストールされました。

miseを使用していない場合は、公式サイトからバイナリをダウンロードするか、Homebrewなどのパッケージマネージャを使用してインストールできます。

# Homebrewの場合
brew install opencode

# Windowsの場合
choco install opencode

設定ファイルの作成

OpenCodeの設定は、JSON形式の設定ファイルで行います。設定ファイルの場所は~/.config/opencode/opencode.jsonです。

さくらのAI Engineを使用するための設定例は以下の通りです:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "sakura": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "sakura aipf",
      "options": {
        "baseURL": "https://api.ai.sakura.ad.jp/v1"
      },
      "models": {
        "gpt-oss-120b": {
          "name": "gpt-oss-120b"
        }
      }
    }
  }
}

設定内容を詳しく見てみましょう:

  1. $schema: 設定ファイルのスキーマ定義(オートコンプリート支援用)
  2. provider: プロバイダーの定義
    • npm: OpenAI互換プロバイダーとして@ai-sdk/openai-compatibleを指定
    • name: プロバイダーの表示名
    • options.baseURL: さくらのAI Engineのエンドポイント
    • models: 利用可能なモデルの定義

APIキーの設定

OpenCodeの認証コマンドを使用してAPIキーを設定します。

opencode auth login

このコマンドを実行すると、APIキーの入力を求められます。provider を other にして 、provider id に sakura を指定します。

設定先は、opencode auth list で確認できます。

❯ opencode auth list

┌  Credentials ~/.local/share/opencode/auth.json
│
●  sakura api
│
└  1 credentials

モデルの選択

OpenCodeを起動後、/modelsコマンドを実行すると、利用可能なモデル一覧が表示されます。設定ファイルで定義したさくらのAI Engineのモデルも、この一覧に表示されます。モデルを選択することで、そのモデルを使用してAIアシスタントと対話できます。

設定ファイルで定義したさくらのAI Engineのモデル(gpt-oss-120b)が表示されている

実際の使用体験

OpenCodeでさくらのAI Engineを使ってみた体験を紹介します。

起動とTUI

OpenCodeを起動してみます。ターミナルで以下のコマンドを実行します:

opencode

すると、ターミナル内にTUI(Terminal User Interface)が表示されます。画面は以下のように分かれています:

  • メインチャットウィンドウ: AIとの会話が表示される
  • プロンプト入力エリア: 質問やコマンドを入力する
  • ステータスバー: セッション情報が表示される

TUIは完全にキーボードで操作できます。長年ターミナルを使ってきた自分にとって、マウスを使わずに効率的に作業を進められるのは心地よいです。

コードの生成

実際にコードを生成してもらう場面で試してみました。

例えば、「Pythonでシンプルなウェブスクレイパーを作成してください」と入力してみます。すると、数秒でコードが生成されます。

この結果、2つのファイルが生成されました。

❯ ls
requirements.txt        scraper.py

scraper.py はこんなファイルになっています。

import requests
from bs4 import BeautifulSoup
import sys

def fetch_title(url: str) -> str:
    """Fetch the HTML title of the given URL.

    Args:
        url: The URL to retrieve.
    Returns:
        The contents of the <title> tag, or a placeholder string if none is found.
    """
    try:
        response = requests.get(url, timeout=10)
        response.raise_for_status()
    except requests.RequestException as exc:
        return f"Error fetching URL: {exc}"
    soup = BeautifulSoup(response.text, "html.parser")
    if soup.title and soup.title.string:
        return soup.title.string.strip()
    return "No title found"

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python scraper.py <url>")
        sys.exit(1)
    url = sys.argv[1]
    print(f"Title: {fetch_title(url)}")

生成されたコードを実際に動作させた結果、(あたりまえですが)すぐに動作しました。

❯ python3 scraper.py https://www.sakura.ad.jp
Title: さくらインターネット

レスポンス速度は良好です。さくらのAI EngineのAPIレスポンスが速いため、ターミナルベースでもストレスなく利用できます。

スクリプトとの統合

opencode runコマンドを使用することで、CI/CDパイプラインへの統合も可能です。

例えば、コミット前にコードレビューを自動実行する、といった用途が考えられます:

opencode run "このコードをレビューして、潜在的な問題を指摘してください" < file.py

このように、非対話的にOpenCodeを使用できるため、自動化の可能性が広がります。

おすすめポイントと注意点

実際に使ってみて感じた、OpenCodeとさくらのAI Engineの組み合わせの良い点と、気をつけるべき点をまとめます。

おすすめポイント

ターミナル完結のワークフロー

GUIアプリケーションに切り替えることなく、ターミナル内でAI支援を受けられます。tmuxやvimなどのターミナルツールと組み合わせることで、一貫した開発環境を構築できます。特に、SSHでリモートサーバに接続している場合、GUI不要のOpenCodeは非常に便利です。

軽量で高速

メモリ使用量が少なく、起動も高速です。VS Codeなどの重量級エディタと比較してリソース消費が少ない点は、古いマシンや制約のある環境では大きなメリットです。

プロバイダー非依存

75以上のLLMプロバイダーに対応しているため、さくらのAI Engineだけでなく、状況に応じて他のサービスも使い分けられます。ローカルモデルにも対応しているため、完全にオフラインで動作させることも可能です。

CI/CD統合の容易さ

opencode runコマンドにより、非対話的な使用が可能です。GitHub ActionsやGitLab CIなどのパイプラインに組み込むことで、自動コードレビューや自動ドキュメント生成といった用途に活用できます。

オープンソースの透明性

MITライセンスで公開されており、ソースコードを自由に確認・改変できます。企業での利用において、ツールの動作を完全に把握できる点は、セキュリティ上の安心感につながります。

注意点

設定ファイルの手動編集

設定はJSON形式のファイルを手動で編集する必要があります。GUIの設定画面がないため、JSONの構文エラーに注意が必要です。

$schemaを指定することで、VS Codeなどのエディタでオートコンプリートが効くため、設定作業は比較的スムーズに行えます。

日本語ドキュメント

公式ドキュメントは英語が中心です。日本語の情報はまだ少ないため、トラブルシューティング時には英語ドキュメントを参照する必要があります。LLMに与えるプロンプトは日本語で大丈夫ですが、opencode自体が生成するメッセージは英語です。

ただし、基本的な使い方はシンプルなため、英語が苦手でも、ある程度理解できるかと思います。

こんな人におすすめ

OpenCodeとさくらのAI Engineの組み合わせは、以下のような方に特に適しています:

ターミナルを愛用する開発者

Vim、Emacs、tmuxなどのターミナルツールを日常的に使用している方には、OpenCodeは自然にフィットします。既存のワークフローを変更することなく、AI支援を追加できます。

リモート開発を行う方

SSHでリモートサーバに接続して開発する機会が多い方には、ターミナルベースのOpenCodeは最適です。GUIを使わずに、リモート環境でもローカルと同じようにAI支援を受けられます。

CI/CD自動化に興味がある方

opencode runコマンドにより、CI/CDパイプラインへの統合が容易です。自動コードレビュー、自動テスト生成、自動ドキュメント作成など、様々な自動化のアイデアを実現できます。

軽量なツールを好む方

VS CodeやJetBrains IDEといった重量級のツールではなく、軽量で高速なツールを好む方には、OpenCodeは良い選択肢です。

オープンソースを重視する方

MITライセンスのオープンソースツールであるため、企業での利用においても、ソースコードの透明性を確保できます。必要に応じて改変やカスタマイズも可能です。

シリーズ総括

本シリーズでは4回にわたって、さくらのAI Engineを活用できる様々なクライアントツールを紹介してきました。それぞれの特徴を振り返ってみましょう。

第1回: Obsidian Copilot

Markdownベースのナレッジ管理ツールObsidianで、さくらのAI Engineを活用する方法を紹介しました。カスタムプロンプトを設定することで、ドキュメント作成やテキスト編集の効率が大きく向上します。ローカルファーストを重視する方に適しています。

第2回: Zed

Rust製の次世代エディタZedは、軽快な動作とネイティブなAI統合が魅力です。VS Codeの重さに不満を感じている方、パフォーマンスを重視する開発者に最適な選択肢です。

第3回: KiloCode

VS Code向けの拡張機能として、既存のワークフローに自然に統合できます。マルチモードシステムにより、状況に応じて最適なAIアシスタントを使い分けられます。VS Codeを使い続けたい方におすすめです。

第4回: OpenCode

ターミナルで動作するAIコーディングアシスタントとして、GUIを必要としない独自のポジションを確立しています。リモート開発やCI/CD統合に強く、ターミナルを愛用する開発者に最適です。

どれを選ぶべきか

どのツールを選ぶかは、あなたの開発スタイルと優先事項次第です:

  • ナレッジ管理重視 → Obsidian Copilot
  • エディタの軽快さ重視 → Zed
  • VS Codeとの統合重視 → KiloCode
  • ターミナル完結重視 → OpenCode

重要なのは、自分に合ったツールを見つけることです。幸い、さくらのAI Engineはこれらすべてのツールと連携できるため、複数試してみて、最も使いやすいものを選ぶことができます。

おわりに

OpenCodeとさくらのAI Engineの組み合わせは、「ターミナル完結のワークフローで、強力なAI支援を受けたい」というニーズに応える選択肢です。OpenCodeは、その中でも特に「ターミナル重視」という明確な方向性を持つツールです。GUIを必要とせず、シンプルで軽量、かつ強力な機能を提供します。

正直なところ、すべての開発者にOpenCodeが適しているわけではありません。GUIに慣れている方、ビジュアル要素を重視する方には、他のツール(ZedやKiloCode)の方が適しているでしょう。しかし、ターミナルを愛用し、キーボード操作を好み、軽量で効率的なツールを求める開発者にとって、OpenCodeは非常に魅力的な選択肢です。特に、リモート開発やCI/CD統合といった場面では、その真価を発揮します。

さくらのAI Engineとの連携も非常にスムーズです。設定ファイルにJSON形式で数行記述するだけで、すぐに利用開始できます。日本国内で提供されているサービスという安心感も、企業での利用において重要な要素です。

「ターミナルでAIアシスタント」という組み合わせに、懐疑的な方もいるかもしれません。しかし実際に試してみると、ターミナルベースならではの利点が見えてきます。SSHでのリモート作業、CI/CDパイプラインへの統合、軽量で高速な動作——これらは、GUIツールでは得られない価値です。

本シリーズを通じて、さくらのAI Engineは様々なクライアントツールと組み合わせることができることを紹介してきました。Obsidianでのナレッジ管理、Zedでの高速なコーディング、KiloCodeでのVS Code統合、OpenCodeでのターミナル作業——それぞれの場面で、さくらのAI Engineは安定したパフォーマンスを提供します。

どのツールを選ぶかは、あなたの開発スタイルと優先事項次第です。重要なのは、自分に合ったツールを見つけることです。このシリーズが、その選択の一助となれば幸いです。

関連リンク