OpenCode 入門:ターミナル AI コーディングエージェントのインストール、設定、および使用方法

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

目次

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

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

この記事は、AI 開発者ツール:AI 活用開発の完全ガイド の一部です。

OpenCode とは(およびその位置づけ)

OpenCode は、**ターミル中心の代理型コーディング(agentic coding)**のために設計されており、同時にプロバイダーやモデルに対して柔軟性を保っています。実際には、以下の機能を持つワークフロー層として機能します。

  • opencode を実行するとターミナル UI を起動
  • opencode run を通じて非対話的な「ワンショット」プロンプトを実行(スクリプト/自動化用)
  • opencode serve を通じてヘッドレス HTTP サーバー(および opencode web による Web UI)を公開
  • 公式 JS/TS SDK @opencode-ai/sdk を通じてプログラム制御が可能

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

Anthropic のターミル中心エージェントで、同じ「HTTP 経由のローカルモデル(Ollama または llama.cpp、権限、料金)」という構成のものについては、Claude Code の Ollama、llama.cpp、料金設定へのインストールと設定 を参照してください。

opencode with self-hosted qwen3.5 27b LLM

前提条件

以下のものが準備されている必要があります。

  • 最新のターミナルエミュレーター(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 を使用しない軽量なスタックを望む場合(BTW、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",

  // デフォルトモデルを選択(provid er/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 タスクを実行します。

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

  • Oh My Opencode 体験:正直な結果と請求リスク
    実際のベンチマーク、$350 の Gemini 無限ループインシデント、そして OMO がオーバーヘッドを正当化する際の明確な結論。


出典(まず公式)

公式:

  • OpenCode ドキュメント(Intro、CLI、Config、Server、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/

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

購読する

システム、インフラ、AIエンジニアリングの新記事をお届けします。