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

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

目次

OpenCodeは、ターミナル(TUI + CLI)で実行できるオープンソースのAIコードエージェントで、デスクトップやIDEの表面もオプションで使用できます。これはOpenCode Quickstartです:インストール、確認、モデル/プロバイダの接続、そして実際のワークフロー(CLI + API)を実行します。

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

この記事はAI開発ツール:AIによる開発の完全ガイドの一部です。

OpenCodeとは(そしてどこに位置するか)

OpenCodeは、ターミナルを最優先にしたエージェンティックなコーディングを設計しており、プロバイダ/モデルの柔軟性を保ちながら動作します。実際には、次のことができるワークフローレイヤーです:

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

opencodeと自ホストされたqwen3.5 27b LLM

もし/ai-devtools/クラスタを構築している場合、OpenCodeはサブクラスタとしての候補となり、自然に次に拡張できます:

  • CLIの詳細な解説
  • モデル/プロバイダの動作とコスト(OpenCode内でのLLM比較)
  • 設定とエージェント
  • 統合(GitHub/GitLab/Copilot)
  • チェックリスト

事前準備

ご準備ください:

  • 現代的なターミナルエミュレータ(TUI体験のために重要)
  • 少なくとも1つのモデル/プロバイダへのアクセス(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ファイルからキーを読み込むこともできます。

プロジェクトを正しく開始する(推奨される最初の実行)

あなたのリポジトリから:

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を出力しない場合は、再プロンプト:「Unified 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: {
    // モデル文字列形式はプロバイダ/モデル(例としてのみ)
    // 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",

  // デフォルトモデル(プロバイダ/モデル)を選択します。これは`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チートシート(クイックリファレンス)

日々使用するコマンド

opencode                       # TUIを起動
opencode run "..."             # 非対話モード(スクリプト/自動化)
opencode run --file path "..." # ファイルをプロンプトに添付
opencode models --refresh      # モデルリストを更新
opencode auth login            # プロバイダ認証情報を設定
opencode serve                 # ヘッドレスHTTPサーバー(OpenAPI)
opencode web                   # ヘッドレスサーバー+WebUI
opencode session list          # セッション一覧
opencode stats                 # トークン/コスト統計

覚えておくべきTUIコマンド

/connect   # プロバイダを接続
/init      # リポジトリを分析、AGENTS.mdを生成
/share     # セッションを共有(有効な場合)
/undo      # 変更を元に戻す
/redo      # 変更を再実行
/help      # ヘルプ/ショートカット

デフォルトの「リーダー鍵」概念(TUI)

OpenCodeはターミナルの競合を避けるために設定可能な「リーダー」鍵(通常ctrl+x)を使用します。多くのショートカットは「リーダー + キー」です。

FAQ(スキーマ対応)

OpenCodeとは何ですか?

OpenCodeは、ターミナル(TUI + CLI)で動作し、追加のデスクトップ/IDE表面もサポートするオープンソースのAIコードエージェントです。

OpenCodeは無料ですか?

このツールはオープンソースです。使用コストは接続するモデル/プロバイダに依存します。一部のプロバイダはサブスクリプションベースの認証または無料の階層を提供する場合があります。

TUIを開かずにOpenCodeを実行するにはどうすればいいですか?

非対話モード(スクリプト/自動化に便利)でopencode run "..."を使用してください。

OpenCodeはプロバイダ認証情報をどこに保存していますか?

opencode auth login~/.local/share/opencode/auth.jsonに認証情報を保存します。

OpenCodeはAPI / SDKがありますか?

はい。OpenCodeはヘッドレスHTTPサーバー(opencode serve)を実行でき、/docにOpenAPI仕様を提供し、公式のJS/TS SDK:@opencode-ai/sdkを提供しています。

GitHub CopilotはOpenCodeと併用できますか?

GitHubはCopilotがOpenCodeと正式な統合を通じて認証をサポートすることを発表しました。具体的な利用可能性はあなたのCopilotプランと現在のプロバイダ認証フローに依存します。

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にデフォルトで設定されます(上書き可能)
WebUIモード opencode web サーバーを起動し、ブラウザを開きます
セッションをエクスポート opencode export [sessionID] アーカイブまたはコンテキスト共有に役立ちます
セッションをインポート opencode import session.json シェアURLからもインポートできます
グローバルCLIフラグを表示 opencode --help / opencode --version デバッグ用に--print-logs + --log-level
TUIリーダー鍵の概念 デフォルトのリーダー鍵は通常ctrl+x tui.jsonでカスタマイズ可能です

出典(公式が優先)

公式:

権威的な統合リファレンス:

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