OpenCodeクイックスタート:ターミナル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 コーディングアシスタント クイックスタート を参照してください。

Anthropic のターミナルファーストエージェントで、同じく「HTTP 経由のローカルモデル」(Ollama または llama.cpp、権限、料金)という仕組みを持つものを探している場合は、Ollama、llama.cpp、料金設定向けの Claude Code のインストールと設定 を参照してください。

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 なしの軽量なスタック(ちなみに Ollama は Go で実装されています)を希望する場合、llama.cpp は試す価値があります。オフロードレイヤーの設定のしやすさ、GGUF 形式のモデルの使いやすさ、Qwen3.5 のような新モデルとの互換性の大幅な改善に非常に満足しました。OpenCode 内で実際にどのモデルが良好に動作するか(コーディングタスクおよび構造化出力の精度において)を知りたい場合は、OpenCode 向けの私の LLM 比較レポート を参照してください。

プロジェクトの正しい開始方法(推奨される初回実行)

リポジトリから以下を実行します:

cd /path/to/your/repo
opencode

次に初期化を行います:

/init

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

コア CLI ワークフロー(コピペ用例)

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

opencode run "JavaScript におけるクロージャの動作を説明してください"

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

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

opencode run "Go 関数 ParsePort(envVar string, defaultPort int) (int, error) を書いてください。環境変数を読み取り、整数をパースし、1-65535 の範囲を検証し、空の場合は defaultPort を返す必要があります。3つのテーブル駆動テストを含めてください。"

期待される出力:

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

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

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

opencode run --agent plan --file ./src/auth.ts \
  "このファイルの複雑さを減らすためにリファクタリングしてください。出力:(1) 短い計画、(2) 統一diffパッチ、(3) テストすべきリスク/エッジケース。コマンドは実行しないでください。"

期待される出力:

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

ワークフロー: リポジトリへの質問(CLI)

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

opencode run --agent explore \
  "このリポジトリにおいて、API リクエストの認証はどこで検証されていますか?考えられるファイルを列挙し、フローを説明してください。不確実な場合は、何を確認したかを述べてください。"

期待される出力:

  • ファイルパスの短いマップ + フローの説明。
  • 出力はリポジトリのサイズおよびモデル/プロバイダーのコンテキストツールに依存します。

ワークフロー: 永続サーバーによる CLI 実行の高速化

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

ターミナル 1:

opencode serve --port 4096 --hostname 127.0.0.1

ターミナル 2:

opencode run --attach http://localhost:4096 "リポジトリの構造と主要なエントリーポイントを要約してください。"
opencode run --attach http://localhost:4096 "次に、3つの高影響リファクタリング案とその理由を提案してください。"

期待される出力:

  • 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 http://host:port/doc に OpenAPI 仕様
サーバーへの実行の添付 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 は、Anthropic によるサードパーティの Claude サブスクリプションアクセスをブロックするポリシーの影響を受けた最初のツールの一つでした — これは 2026年1月、同じ制限が OpenClaw に影響を与える1ヶ月前に行われた措置です。OpenClaw の台頭と衰退のタイムライン は、両方のイベントおよびサブスクリプションコンピューティングを基盤としたエージェントツールが示すより広範なパターンを文書化しています。


出典(公式を優先)

公式:

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

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

購読する

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