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

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

目次

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

バージョンに関する注記:OpenCodeは頻繁にリリースされます。ここでの「latest」のコマンドは安定していますが、出力やデフォルト値は変更される可能性があります。常に公式のCLIドキュメントと変更履歴(下記にリンクあり)と照合してください。

本記事は、AI開発ツール:AI駆動型開発の完全ガイドの一部です。Nous Hermesのようなセルフホスト型アシスタントを運用している場合も、Hermes Agent CLI チートシートは、このOpenCodeクイックスタートと並んで hermes コマンドセットをマッピングします。

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

OpenCodeは、ターミナル優先のエージェント型コーディングのために設計されており、プロバイダー/モデルの柔軟性を維持しています。実用上、これは以下のことができるワークフローレイヤーです:

  • opencode コマンドの実行時にターミナルUIを開始する
  • opencode run による非対話型の一発(one-shot)プロンプトを実行する(スクリプト/自動化用)
  • opencode serve によるヘッドレスHTTPサーバー、および opencode web によるWeb UIを公開する
  • 公式のJS/TS SDK @opencode-ai/sdk を通じてプログラム制御可能

サンドボックス環境で多段階の計画を実行できる、別のオープンソースのエージェント型アシスタントと比較したい場合は、OpenHands CLI クイックスタートを参照してください。

Anthropicのターミナル優先型エージェントで、同じ「HTTP経由のローカルモデル(Ollamaまたはllama.cpp、権限、料金)」というアプローチを採用しているものについては、Ollama、llama.cpp、料金向けClaude Codeのインストールと設定を参照してください。

同じターミナルエージェントの考え方をあえて最小限にしたもの(デフォルトのツール4つ、ビルトインのサンドボックスなし、その他はすべて拡張機能経由)については、Pi Coding Agent レビューを参照してください。

opencode with self-hosted qwen3.5 27b LLM

前提条件

以下が必要です:

  • 最新のターミナルエミュレータ(TUIの体験のために重要です)。
  • 少なくとも1つのモデル/プロバイダーへのアクセス(プロバイダーによって異なりますが、APIキーまたはサブスクリプション認証)。ローカルオプションとしては、Ollamaやllama.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があります。

# chocolatey (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"

コマンドラインのワークフローパターン — git出力のパイプ、MakefileとCIターゲット、非同期実行のための権限ポリシー — および想定される失敗モードについては、OpenCode CLI 実践ガイドを参照してください。これは、このクイックスタートを繰り返するのではなく、それに基づいて構築されています。

ワークフロー: コードの生成(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エージェント)

目標:より制限の厳しい plan エージェントが、それを頼りにする前に実行されることを確認すること。

opencode run --agent plan --file ./src/auth.ts \
  "Refactor this file to reduce complexity. Output a short plan only. Do not run commands."

期待される出力:計画セクション、ファイル編集なし、コマンド実行なし。

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

目標: explore エージェントが実装の詳細を特定できることを確認すること。

opencode run --agent explore \
  "Where is authentication validated for API requests in this repository?"

期待される出力:ファイルパスの短いマップとフローの説明。

これら2つはいずれも単発のスモークテストです。同じタスクの制約付き、プロダクションレベルのバージョン — 明示的なリスク/エッジケースの出力、unified-diffパッチ、権限を考慮した探索プロンプト、モデルが遵守しない場合の対応 — については、OpenCode CLI 実践ガイドの「OpenCode CLIの使用場面ベスト」セクションを参照してください。

ワークフロー: 永続サーバーによる反復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」
  "small_model": "provider/small-model",

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

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

非同期の opencode run ジョブをターゲットにした、より完全な権限ポリシーについては、OpenCode CLI 実践ガイドを参照してください。

セッション間のプロジェクトメモリは別物のインストールです。OpenCode、Cursor、および他のコーディングエージェント向け Hindsight Memoryは、上記のプロジェクト opencode.jsonc とは異なるファイルである、ユーザーレベルの ~/.config/opencode/opencode.json にプラグインを追加します。

短いチートシート(クイックリファレンス)

毎日使うコマンド

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つの記事がそれを深くカバーしています:


OpenCodeは、AnthropicのサードパーティのClaudeサブスクリプションアクセスをブロックするポリシーによって影響を受けた最初のツールの一つでした — これは2026年1月に実施され、同じ制限がOpenClawに及ぶ1ヶ月前行われました。OpenClawの台頭と没落のタイムラインは、これらの2つのイベントと、サブスクリプション計算資源の上に構築されたエージェントツールにとってそれらが象徴するより広範なパターンを文書化しています。


出典(公式を優先)

公式:

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

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

購読する

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