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 レビューを参照してください。

前提条件
以下が必要です:
- 最新のターミナルエミュレータ(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つの記事がそれを深くカバーしています:
-
Oh My Opencode クイックスタート
bunx oh-my-opencode install経由でインストールし、プロバイダーを設定し、10分以内に最初のultraworkタスクを実行します。 -
特別化エージェントの深掘りとモデルガイド
全11のエージェント(Sisyphus、Hephaestus、Oracle、Prometheus、Librarianなど)の解説 — モデルルーティング、フォールバックチェーン、セルフホスト型モデルのための実用的なガイダンス付き。 -
Oh My Opencode 体験:正直な結果と課金リスク
実際のベンチマーク、Geminiの無限ループインシデント(350ドル)、そしてOMOがオーバーヘッドに見合う場合の明確な結論。
OpenCodeは、AnthropicのサードパーティのClaudeサブスクリプションアクセスをブロックするポリシーによって影響を受けた最初のツールの一つでした — これは2026年1月に実施され、同じ制限がOpenClawに及ぶ1ヶ月前行われました。OpenClawの台頭と没落のタイムラインは、これらの2つのイベントと、サブスクリプション計算資源の上に構築されたエージェントツールにとってそれらが象徴するより広範なパターンを文書化しています。
出典(公式を優先)
公式:
- 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/
信頼できる比較/チュートリアル:
- DataCamp: OpenCode vs Claude Code (2026): https://www.datacamp.com/blog/opencode-vs-claude-code
- Builder.io: OpenCode vs Claude Code (2026): https://www.builder.io/blog/opencode-vs-claude-code
- freeCodeCamp: OpenCodeを使用してターミナルにAIを統合する: https://www.freecodecamp.org/news/integrate-ai-into-your-terminal-using-opencode/