OpenCode クイックスタート:Terminal AI コーディングエージェントのインストール、設定、および利用

OpenCode のインストール、設定、および使用方法

目次

OpenCode は、ターミナル(TUI + CLI)で実行可能なオープンソースの AI コーディングエージェントであり、オプションとしてデスクトップや IDE 用のインターフェースも提供します。これが OpenCode クイックスタート です:インストール、検証、モデル/プロバイダーの接続、そして実際のワークフロー(CLI + API)の実行について解説します。

バージョンに関する注記:OpenCode のバージョン更新は迅速です。ここで紹介されている「最新」のコマンドは安定していますが、出力やデフォルト設定は変更される可能性があります。常に公式の CLI ドキュメントと変更履歴(以下リンク)で確認してください。

本記事は、AI 開発者ツール:AI 駆動型開発の完全ガイド の一部です。

OpenCode とは(その位置づけ)

OpenCode はターミナルファーストなエージェント型コーディングのために設計されており、プロバイダーやモデルに対して柔軟に対応しています。実際には、以下のようなワークフロー層として機能します:

  • opencode を実行してターミナル UI を起動する
  • opencode run を介して非対話型の「ワンショット」プロンプトを実行する(スクリプト/自動化用)
  • opencode serve でヘッドレス HTTP サーバーを公開する(opencode web で Web UI も利用可能)
  • 公式 JS/TS SDK @opencode-ai/sdk を介してプログラム制御可能

もし、サンドボックス環境内でマルチステッププランを実行できる他のオープンソースエージェント型アシスタントと比較したい場合は、OpenHands コーディングアシスタント クイックスタート を参照してください。

opencode with self-hosted qwen3.5 27b LLM

/ai-devtools/ クラスターを構築している場合、OpenCode は以下の領域に自然に拡張できるため、サブクラスターとして強力な候補となります:

  • CLI の深掘り
  • モデル/プロバイダーの挙動とコスト(OpenCode 内での LLM 比較)
  • 設定とエージェント
  • インテグレーション(GitHub/GitLab/Copilot)
  • チートシート
  • Oh My Opencode — OpenCode をベースに構築されたマルチエージェントオーケストレーションレイヤー

前提条件

以下の準備が必要です:

  • 現代的なターミナルエミュレーター(TUI 体験のために重要です)。
  • 少なくとも 1 つのモデル/プロバイダーへのアクセス(プロバイダーにより API キーまたはサブスクリプション認証が必要)。ローカルオプションとして、Ollamallama.cpp を使用すれば、互換性のあるサーバーをローカルで実行する場合、API キーなしでも動作します。

OpenCode のインストール(コピー&ペースト)

公式インストールスクリプト(Linux/macOS/WSL):

curl -fsSL https://opencode.ai/install | bash

パッケージマネージャーによるオプション(公式例):

# Node.js グローバルインストール
npm install -g opencode-ai

# Homebrew(OpenCode が最新のリリースのために推奨)
brew install anomalyco/tap/opencode

# Arch Linux(安定版)
sudo pacman -S opencode

# Arch Linux(AUR からの最新)
paru -S opencode-bin

Windows に関する注記(公式ガイドでは通常、最高の互換性のために WSL を推奨しています)。代替手段として Scoop/Chocolatey または npm があります。

# chocoloatey (Windows)
choco install opencode

# scoop (Windows)
scoop install opencode

Docker(クイックトライに有用):

docker run -it --rm ghcr.io/anomalyco/opencode

インストールの確認

opencode --version
opencode --help

期待される出力の形状(バージョンにより異なります):

# 例:
# <バージョン番号が印刷される (例:vX.Y.Z)>
# <利用可能なコマンド/サブコマンドに関するヘルプが印刷される>

プロバイダーの接続(2 つの実践的なパス)

パス A: TUI /connect(対話型)

OpenCode を起動します:

opencode

次に実行:

/connect

UI の手順に従ってプロバイダーを選択し、認証を行います(一部のフローではブラウザまたはデバイスログインが起動します)。

パス B: CLI opencode auth login(プロバイダーキー)

OpenCode は以下のコマンドでプロバイダーを設定できます:

opencode auth login

注記:

  • クレデンシャルは ~/.local/share/opencode/auth.json に保存されます。
  • OpenCode は、環境変数またはプロジェクト内の .env ファイルからキーを読み込むこともできます。

ローカル LLM ホスティング(Ollama, llama.cpp)

OpenCode は、OpenAI 互換の API と動作します。ローカル開発では、多くのユーザーが Ollama を実行し、OpenCode をそれを指すように設定します。最近、私は llama.cpp を使用して OpenCode を設定・実行する際に非常に良い体験をしました。llama-server は OpenAI 互換のエンドポイントを公開するため、同じワークフローで GGUF モデルを使用できます。メモリやランタイムの制御を細かく行いたい場合、あるいは Python を使わない軽量なスタックを望む場合(余談ですが、ollama は Go で実装されています)には、llama.cpp を試す価値があります。オフロードレイヤーの設定のしやすさ、GGUF 形式のモデルの使いやすさ、そして Qwen3.5 などの新モデルとの互換性の実装の良さと速さに、私は非常に満足しました。OpenCode 内で実際にどのモデルがパフォーマンスを発揮するか(コーディングタスクや構造化出力の精度など)を知りたい場合は、OpenCode における私の LLM 比較レポート を参照してください。

プロジェクトの正しい開始方法(推奨される最初の起動)

リポジトリから:

cd /path/to/your/repo
opencode

次に初期化:

/init

これによりプロジェクトが分析され、プロジェクトのルートに AGENTS.md ファイルが作成されます。OpenCode(およびチームメンバー)が一貫したプロジェクトコンテキストを共有できるよう、このファイルをコミットするのが一般的に推奨されます。

主要な CLI ワークフロー(コピー&ペースト例)

OpenCode は非対話型の実行をサポートしています:

opencode run "Explain how closures work in JavaScript"

ワークフロー:コードの生成(CLI)

目標:最小限のコンテキストで小さなテスト可能な関数を生成する。

opencode run "Write a Go function ParsePort(envVar string, defaultPort int) (int, error). It should read the env var, parse an int, validate 1-65535, and return defaultPort if empty. Include 3 table-driven tests."

期待される出力:

  • 説明とコードブロック(関数 + テスト)。正確なコードはモデル/プロバイダーとプロンプトによって異なります。

ワークフロー:ファイルの安全なリファクタリング(CLI + Plan エージェント)

目標:より制限の厳しいエージェントを使用して、意図しない編集なしにリファクタリングを行う。

opencode run --agent plan --file ./src/auth.ts \
  "Refactor this file to reduce complexity. Output: (1) a short plan, (2) a unified diff patch, (3) risks/edge-cases to test. Do not run commands."

期待される出力:

  • プランセクション + diff --git ... パッチブロック + テストチェックリスト。
  • 内容は異なります。diff が生成されない場合は、再プロンプトしてください:“統一 diff のみを返してください”または"diff --git 形式を使用してください”。

ワークフロー:リポジトリに関する質問(CLI)

目標:実装の詳細を素早く特定する。

opencode run --agent explore \
  "In this repository, where is authentication validated for API requests? List likely files and explain the flow. If uncertain, say what you checked."

期待される出力:

  • ファイルパスの簡易マップとフローの説明。
  • 出力はリポジトリのサイズとモデル/プロバイダーのコンテキストツールの有無に依存します。

ワークフロー:持続サーバーによる反復的な CLI 実行の高速化

スクリプト化している場合、または複数の opencode run コールを実行する場合、一度だけヘッドレスサーバーを起動できます:

ターミナル 1:

opencode serve --port 4096 --hostname 127.0.0.1

ターミナル 2:

opencode run --attach http://localhost:4096 "Summarize the repo structure and main entrypoints."
opencode run --attach http://localhost:4096 "Now propose 3 high-impact refactors and why."

期待される出力:

  • opencode run と同じですが、通常は起動オーバーヘッドが少なくなります。

プログラムによる利用(公式 JS/TS SDK)

OpenCode は HTTP サーバー(OpenAPI)を公開し、型安全な JS/TS クライアントを提供しています。

インストール:

npm install @opencode-ai/sdk

例:サーバーとクライアントの起動、その後プロンプト

scripts/opencode-sdk-demo.mjs を作成:

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

const opencode = await createOpencode({
  hostname: "127.0.0.1",
  port: 4096,
  config: {
    // モデル文字列の形式は provider/model です(例のみ)
    // model: "anthropic/claude-3-5-sonnet-20241022",
  },
});

console.log(`Server running at: ${opencode.server.url}`);

// 基本的なヘルスチェック/バージョンチェック
const health = await opencode.client.global.health();
console.log("Healthy:", health.data.healthy, "Version:", health.data.version);

// セッションの作成とプロンプト
const session = await opencode.client.session.create({ body: { title: "SDK quickstart demo" } });

const result = await opencode.client.session.prompt({
  path: { id: session.data.id },
  body: {
    parts: [{ type: "text", text: "Generate a small README section describing this repo." }],
  },
});

console.log(result.data);

// 完了後サーバーをクローズ
opencode.server.close();

実行:

node scripts/opencode-sdk-demo.mjs

期待される出力の形状:

  • “Server running at …”
  • バージョン文字列を含むヘルスレスポンス
  • セッションプロンプトレスポンスオブジェクト(正確な構造は responseStyle と SDK バージョンに依存します)

コピー可能な最小限の OpenCode 設定

OpenCode は JSON と JSONC 設定をサポートしています。これは、プロジェクトローカル設定のための合理的な出発点です。

リポジトリのルートに opencode.jsonc を作成:

{
  "$schema": "https://opencode.ai/config.json",

  // デフォルトモデルを選択(provider/model)。`opencode models` で表示されるものと一致させる。
  "model": "provider/model",

  // オプション:軽量タスク(タイトルなど)用の安価な「小規模モデル」
  "small_model": "provider/small-model",

  // オプション:OpenCode サーバーのデフォルト値(serve/web で使用)
  "server": {
    "port": 4096,
    "hostname": "127.0.0.1"
  },

  // オプションの安全性:編集/コマンド実行前に確認を要求する
  "permission": {
    "edit": "ask",
    "bash": "ask"
  }
}

簡易チートシート(クイックリファレンス)

日常的に使用するコマンド

opencode                       # TUI を起動
opencode run "..."             # 非対話型実行(自動化用)
opencode run --file path "..." # プロンプトにファイルを添付
opencode models --refresh      # モデルリストを更新
opencode auth login            # プロバイダー認証を設定
opencode serve                 # ヘッドレス HTTP サーバー(OpenAPI)
opencode web                   # ヘッドレスサーバー + Web UI
opencode session list          # セッション一覧
opencode stats                 # トークン/コスト統計

記憶しておきたい TUI コマンド

/connect   # プロバイダーを接続
/init      # リポジトリを分析し、AGENTS.md を生成
/share     # セッションを共有(有効化されている場合)
/undo      # 変更を取り消す
/redo      # 変更をやり直す
/help      # ヘルプ/ショートカット

デフォルトの「リーダーキー」概念(TUI)

OpenCode は、ターミナルとの競合を避けるために設定可能な「リーダー」キー(一般的には ctrl+x)を使用します。多くのショートカットは「リーダー + キー」の形式です。

1 ページの印刷可能な OpenCode チートシートテーブル

このバージョンは意図的に高密度で「印刷に最適化」されています。(後ほど専用の /ai-devtools/opencode/cheatsheet/ ページに貼り付けることができます。)

タスク コマンド / ショートカット 注釈
TUI 起動 opencode デフォルトではターミナル UI が起動する
ワンショットプロンプト実行 opencode run "..." スクリプト/自動化用の非対話モード
プロンプトへのファイル添付 opencode run --file path/to/file "..." 複数ファイルの場合は --file フラグを複数回使用する
実行時のモデル選択 opencode run --model provider/model "..." モデル文字列は provider/model の形式
エージェントの選択 opencode run --agent plan "..." Plan は「変更なし」の安全な作業用に設計されており(権限制限付き)
モデル一覧表示 opencode models [provider] キャッシュ更新には --refresh を使用
プロバイダー認証設定 opencode auth login クレデンシャルは ~/.local/share/opencode/auth.json に保存
認証済みプロバイダー一覧 opencode auth list / opencode auth ls OpenCode が認識しているものを確認
ヘッドレスサーバー起動 opencode serve --port 4096 --hostname 127.0.0.1 OpenAPI 仕様は http://host:port/doc
サーバーへの実行添付 opencode run --attach http://localhost:4096 "..." 反復的なコールドブートを避けるのに便利
基本認証の有効化 OPENCODE_SERVER_PASSWORD=... opencode serve ユーザー名はオーバーライドされない限り opencode
Web UI モード opencode web サーバー起動後、ブラウザを開く
セッションのエクスポート opencode export [sessionID] アーカイブやコンテキスト共有に有用
セッションのインポート opencode import session.json 共有 URL からインポートも可能
全 CLI フラグの確認 opencode --help / opencode --version デバッグには --print-logs + --log-level
TUI リーダーキー概念 デフォルトは ctrl+x tui.json でカスタマイズ可能

Oh My Opencode — マルチエージェントオーケストレーションで OpenCode をさらに進化させる

OpenCode が動作し始めたら、次の自然なステップは Oh My Opencode です。これは OpenCode をマルチエージェントハーネスでラップするコミュニティプラグインです。主なアイデアは、セッション内で ultrawork(または ulw)を入力すると、オーケストレーター(Sisyphus)が制御を奪い、各モデルファミリーに最適化されたプロンプトを持つ専門エージェントにサブタスクを並行して委任します。

3 つの記事で詳しく解説しています:

  • Oh My Opencode クイックスタート
    bunx oh-my-opencode install でインストールし、プロバイダーを設定して、10 分以内に最初の ultrawork タスクを実行します。

  • 専門エージェントの深掘り
    Sisyphus、Hephaestus、Oracle、Prometheus、Librarian などの 11 のエージェントすべてを解説。モデルルーティング、フォールバックチェーン、セルフホストモデルの実践的なガイド付き。

  • Oh My Opencode 体験:正直な結果と請求リスク
    実ベンチマーク、$350 の Gemini 無限ループインシデント、そして OMO がオーバーヘッドに見合う価値を発揮する明確な判断基準。


出典(公式を優先)

公式:

  • OpenCode ドキュメント(イントロ、CLI、設定、サーバー、SDK):https://opencode.ai/docs/
  • OpenCode 変更履歴:https://opencode.ai/changelog
  • 公式 GitHub リポジトリ:https://github.com/anomalyco/opencode
  • リリース:https://github.com/anomalyco/opencode/releases

権威ある統合リファレンス:

  • GitHub 変更履歴(Copilot が OpenCode をサポート):https://github.blog/changelog/2026-01-16-github-copilot-now-supports-opencode/

信頼できる比較/チュートリアル: