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

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

目次

OpenCodeは、ターミナル(TUI + CLI)で実行できるオープンソースのAIコーディングエージェントです。オプションとしてデスクトップおよびIDE向けのインターフェースも提供されています。これはOpenCode クイックスタートです:インストール、確認、モデル/プロバイダーの接続、そして実際のワークフロー(CLI + API)の実行方法を紹介します。

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

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

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

OpenCodeは、ターミナルファーストでエージェント型のコーディングを目的として設計されており、プロバイダー/モデルに対して柔軟性を保っています。実際には、以下のことができるワークフローレイヤーです:

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

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

同じ「ローカルモデルをHTTP経由で利用」というコンセプト(Ollamaまたはllama.cpp、権限、価格設定)を持つAnthropicのターミナルファーストエージェントについては、Ollama、llama.cpp、価格設定のためのClaude Codeのインストールと設定をご覧ください。

同じターミナルエージェントのアイデアに対する意図的に最小限のアプローチ — デフォルトで4つのツール、組み込みのサンドボックスなし、その他はすべて拡張機能経由 — については、Piコーディングエージェント レビューをご覧ください。

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 "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つはどちらも単発のスモークテストです。同じタスクの制約付き、本番環境向けバージョン — 明示的なリスク/エッジケースの出力、統一差分パッチ、権限を考慮した探索プロンプト、およびモデルが遵守しない場合の対処法 — については、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": "provider/small-model",

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

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

無人 opencode run ジョブを対象とするより完全な権限ポリシーについては、OpenCode CLI 実践ガイドをご覧ください。

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

毎日使用するコマンド

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は、AnthropicのサードパーティによるClaudeサブスクリプションアクセスのブロックポリシーの影響を受けた最初のツールの一つでした — これは2026年1月に、同じ制限がOpenClawに及ぶ1か月前に行われた動きです。OpenClawの台頭と崩壊のタイムラインは、これらの両方のイベントと、サブスクリプション計算に基づいて構築されたエージェントツールにとってそれらが代表するより広いパターンを文書化しています。


ソース(公式が第一)

公式:

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

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

購読する

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