インストール - OpenCode
概要
OpenCodeは、オープンソースのAIコーディングエージェントである。
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。
主要な特徴として、以下が挙げられる。
- Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート
- 2026年1月にGitHub Copilotとの公式パートナーシップを発表
- プライバシー重視の設計
- コードは送信されず、ローカルでの処理を優先
- CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供
- MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート
- 組み込みエージェント
- build (開発用)
- plan (読み取り専用分析)
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。
主な機能
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。
| 機能 | 説明 |
|---|---|
| TUI (Bubble Tea) | ターミナルベースの対話型インターフェース |
| マルチプロバイダ対応 | 75以上のLLMプロバイダをサポート |
| セッション管理 | 会話履歴の保存、復元、エクスポート |
| ツール統合 | ファイル操作、Bash実行、テスト実行等 |
| MCP (Model Context Protocol) | 外部ツールとの統合プロトコル |
| LSP (Language Server Protocol) | 25以上の組み込みLSPサーバーによる言語サーバーとの連携 |
| 組み込みエージェント | build (開発用) plan (読み取り専用分析) general (調査用) explore (コード探索用) |
| Desktop アプリ | Tauri v2ベースのネイティブアプリ |
| IDE拡張機能 | VS Code、JetBrains等のIDE拡張 |
| カスタムコマンド | .opencode/commands/ ディレクトリ内でユーザ定義コマンド作成 |
| Git統合 | /undo、/redo コマンドでGitバック付きの変更管理
|
対応AIプロバイダとモデル
OpenCodeは、75以上のLLMプロバイダに対応している。
主要プロバイダ一覧
| プロバイダ | 認証方法 | 備考 |
|---|---|---|
| Anthropic | APIキー (ANTHROPIC_API_KEY) |
Claude 4.x系をサポート |
| OpenAI | APIキー (OPENAI_API_KEY) |
GPT-4o、o3等をサポート |
APIキー (GOOGLE_API_KEY) |
Gemini 3等をサポート | |
| GitHub Copilot | GitHub認証 (OAuth) | /connect コマンドで認証
|
| Z.AI | APIキー | GLM-5、GLM-4.7等をサポート GLM Coding Plan対応 |
| AWS Bedrock | AWS認証情報 | Anthropicモデルのホスティング |
| Azure OpenAI | Azureエンドポイント | OpenAIモデルのホスティング |
| Ollama | ローカル実行 (認証不要) | ローカルモデルの実行 |
| OpenRouter | APIキー | 複数プロバイダのルーティング |
| Groq | APIキー | 高速推論 |
| Together AI | APIキー | オープンソースモデル |
| Fireworks AI | APIキー | 高速推論 |
推奨モデル
| 用途 | 推奨モデル |
|---|---|
| 高精度コーディング | Claude Sonnet 4.5、GPT-4o |
| 高速処理 | Claude Haiku 4.5、Gemini 2.5 Flash |
| 複雑な推論 | Claude Opus 4.6、o3 |
| ローカル実行 | Qwen 2.5 Coder (Ollama) |
| コスト効率重視 | GLM-4.7、GLM-5 (Z.AI Coding Plan) |
ローカルモデル (Ollama)
Ollamaを使用することで、ローカル環境でモデルを実行できる。
Ollamaのインストール
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。
curl -fsSL https://ollama.com/install.sh | bash
モデルのダウンロード
Ollamaでモデルをダウンロードする。
ollama pull qwen2.5-coder
OpenCodeでの設定
opencode.json でOllamaプロバイダを設定する。
{
"$schema": "https://opencode.ai/config.json",
"model": "ollama/qwen2.5-coder"
}
前提条件
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。
標準インストール時の前提条件
| 要件 | 詳細 |
|---|---|
| OS | Linux、MacOS、Windows |
| Node.js | npm経由のインストールに必要 (Node.js 18以上) |
| ネットワーク | AIプロバイダへの接続に必要 |
| AIプロバイダのAPIキー | 使用するプロバイダのAPIキーまたは認証情報 |
インストール
OpenCodeのインストール方法を以下に示す。
クイックインストール (Linux)
公式のインストールスクリプトを使用してインストールする。
curl -fsSL https://opencode.ai/install | bash
Homebrew (MacOS)
Homebrewを使用してインストールできる。
brew install opencode
npm (全プラットフォーム)
npmを使用してグローバルインストールする。
npm install -g opencode
Windows (Scoop / Chocolatey)
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。
Scoopでのインストール
scoop install opencode
Chocolateyでのインストール
choco install opencode
デスクトップアプリケーション
OpenCodeの公式Webサイトにアクセスして、デスクトップアプリケーションをダウンロードする。
対応プラットフォーム:
- Linux (deb、rpm)
- MacOS (dmg)
- Windows (exe)
バージョン確認
インストール後、バージョンを確認する。
opencode --version
初期設定
OpenCodeの初期設定を以下に示す。
プロバイダの認証
OpenCodeの初回起動時に、/connect コマンド または opencode auth login コマンドでAIプロバイダとの認証を設定する。
GitHub Copilotとの連携
OpenCodeはGitHub Copilotの公式パートナーであり、/connect コマンドで認証を設定できる。
OpenCodeを起動する。
opencode
認証を設定する。
/connect
例えば、GitHub Copilotを選択する。
Webブラウザが開き、GitHub認証ページが表示される。
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。
APIキーによる認証
環境変数でAPIキーを設定する方法もある。
export ANTHROPIC_API_KEY="sk-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_API_KEY="..."
環境変数を永続化する場合は、~/.profileファイル等に環境変数 ANTHROPIC_API_KEY を設定する。
export ANTHROPIC_API_KEY="sk-..."
Z.AI (GLM) との連携
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、Z.AI GLM または GLM Coding Planのサブスクリプション契約およびAPIキーが必要である。
GLM / GLM Coding Planの概要
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。
| プラン | 月額 | GLM-5対応 | 5時間あたりの目安 |
|---|---|---|---|
| Lite | $10 | 対応 | 約80プロンプト |
| Pro | $30 | 対応 | 約400プロンプト |
| Max | $120 | 対応 | 約1,600プロンプト |
使用可能なモデルは以下の通りである。
- GLM-5 (ProプランおよびMaxプランのみ)
- GLM-4.7
- GLM-4.6
- GLM-4.5
- GLM-4.5-Air
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。
認証の設定手順
Z.AIのAPIコンソールにアクセスして、APIキーを取得する。
opencode auth login コマンドを実行して、プロバイダ選択で Z.AI Coding Plan を選択する。
opencode auth login
┌ Add credential │ ◆ Select provider │ ● Z.AI Coding Plan │ ... └
Z.AIのAPIキーを入力する。
┌ Add credential │ ◇ Select provider │ Z.AI Coding Plan │ ◇ Enter your API key │ <Z.AIのAPIキーを入力> └
OpenCodeを起動して、/models コマンドでGLM-5 / GLM-4.7等のモデルを選択する。
opencode
/models
トラブルシューティング : Insufficient balance
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。
Insufficient balance or no resource package. Please recharge.
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。
プロバイダ選択で Z.AI (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。
| エンドポイント | URL | 用途 |
|---|---|---|
| 標準 (通常API) | https://api.z.ai/api/paas/v4 | 従量課金のAPI利用 |
| Coding Plan専用 | https://api.z.ai/api/coding/paas/v4 | GLM Coding Planサブスクリプション利用 |
対処方法として、一旦Z.AIの認証情報をログアウトしてから、Z.AI Coding Plan で再度ログインする。
Z.AIの認証情報をログアウトする。
opencode auth logout
再度ログインして、プロバイダ選択で Z.AI Coding Plan を選択する。
opencode auth login
┌ Add credential │ ◆ Select provider │ ● Z.AI Coding Plan ← Z.AI ではなく、Z.AI Coding Planを選択すること │ ... └
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。
設定ファイル
OpenCodeの設定ファイルは、プロジェクトルート または ホームディレクトリ に配置する。
設定ファイルの場所
設定ファイルは以下の順序で検索される。
- プロジェクトルート
- opencode.json
- ホームディレクトリ
- ~/.opencode/config.json
設定ファイルの例
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5-20250929",
"small_model": "anthropic/claude-haiku-4-5-20251001",
"keybinds": {
"leader": "ctrl+x"
}
}
設定可能な項目を以下に示す。
model- 使用するモデル名 (プロバイダ/モデル名 形式)
- 例:
anthropic/claude-sonnet-4-5-20250929、openai/gpt-4o
small_model- 軽量タスク用のモデル (コスト削減に有効)
- 例:
anthropic/claude-haiku-4-5-20251001
keybinds.leader- リーダーキーの設定
- デフォルト :
ctrl+x
CLIコマンド
OpenCodeは、CLIモードと対話モードの両方で使用できる。
主要コマンド
| コマンド | 説明 |
|---|---|
opencode |
TUIを起動 |
opencode run "プロンプト" |
非対話モードでプロンプトを実行 |
opencode --model プロバイダ/モデル名 |
モデルを指定して起動 |
opencode --continue |
前回のセッションを継続して起動 |
opencode auth login |
プロバイダの認証を設定 |
opencode auth logout |
認証情報を削除 |
opencode models |
使用可能なモデル一覧を表示 |
opencode mcp list |
MCPサーバ一覧を表示 |
opencode mcp add サーバー名 |
MCPサーバを追加 |
opencode serve |
ヘッドレスバックエンドサーバを起動 |
opencode --version |
バージョンを表示 |
opencode --help |
ヘルプを表示 |
非対話モード
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。
使用例
プロジェクトの概要を説明する。
opencode run "このプロジェクトの概要を説明して"
モデルを指定してテストを実行する。
opencode run "テストを実行して" --model anthropic/claude-sonnet-4-5-20250929
TUI (ターミナルユーザーインターフェース)
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。
スラッシュコマンド
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。
| コマンド | 説明 |
|---|---|
/new |
新しいセッションを開始 |
/init |
プロジェクト構造を分析 |
/undo |
直前の変更を元に戻す (Git連携) |
/redo |
元に戻した変更をやり直す |
/compact |
会話を要約して圧縮 |
/share |
会話の共有リンクを生成 |
/export |
会話をMarkdownでエクスポート |
/sessions |
過去のセッション一覧を表示 |
/models |
使用可能なモデル一覧を表示 |
/agents |
エージェント一覧を表示 |
/connect |
プロバイダ認証を設定 |
/status |
現在のステータスを表示 |
/mcp |
MCPサーバ一覧を表示 |
/theme |
テーマを変更 |
/editor |
外部エディタで入力 |
/help |
ヘルプを表示 |
/commands |
コマンド一覧を表示 |
/exit |
OpenCodeを終了 |
キーバインド
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。
リーダーキーを押した後に各キーを入力する。
| キー | 説明 |
|---|---|
| [Ctrl] + [X] -> [N] | 新しいセッション |
| [Ctrl] + [X] -> [L] | セッション一覧 |
| [Ctrl] + [X] -> [T] | タイムライン |
| [Ctrl] + [X] -> [M] | モデル選択ダイアログ |
| [Ctrl] + [X] -> [C] | コンパクト表示 |
| [Ctrl] + [P] | コマンドパレット |
| [Tab] | Plan/Buildエージェント切替 |
| [Page Up] / [Page Down] | スクロール |
| [Shift] + [Enter] | 改行入力 |
ファイル参照とBashコマンド
TUI内でファイル参照とBashコマンドの実行ができる。
ファイル参照
@ でファイルをファジー検索して参照を追加する。
@filename
Bashコマンドの実行
! をプレフィックスとしてBashコマンドを実行する。
!ls -la !git status
CLIバイナリのビルド (SUSE)
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。
ビルドの前提条件
| 項目 | 要件 |
|---|---|
| OS |
|
| Bun | 1.3.x (package.json 内の packageManager で bun@1.3.9 を指定)
|
| git | ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能) |
| ネットワーク | ビルド時に https://models.dev/api.json からモデルデータを取得 |
前提条件の確認コマンド
# Bunバージョン確認 (1.3.9が必要) bun --version # ネットワーク接続の確認 curl -s https://models.dev/api.json | head -c 100
ビルド方式の説明
| 項目 | 内容 |
|---|---|
| 言語 | TypeScript (Bun ランタイム) |
| ビルド方式 | Bun.build() の compile: true でスタンドアロン実行ファイルを生成
|
| ビルドスクリプト | packages/opencode/script/build.ts |
| 出力 | Bunランタイムを内蔵した単一バイナリ (opencode)
|
環境変数の設定
ソースディレクトリがGitリポジトリでない場合、git branch --show-current が失敗するため、環境変数を設定する。
export OPENCODE_VERSION=<バージョン 例 : 1.2.14>
export OPENCODE_CHANNEL=latest
依存パッケージのインストール
プロジェクトディレクトリに移動して、依存パッケージをインストールする。
cd /path/to/opencode-<バージョン> bun install
このプロジェクトはBunワークスペース構成のモノレポである。
bun install コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。
ビルドの実行
ビルドスクリプトを実行する。
./packages/opencode/script/build.ts --single
--single フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。
ビルドスクリプトの処理内容:
models.devからモデルデータを取得し、TypeScript スナップショットを生成@opentui/coreと@parcel/watcherのネイティブバインディングをインストールBun.build()で TypeScript をスタンドアロンバイナリにコンパイルpackages/opencode/dist/opencode-linux-x64/bin/opencodeに出力
動作確認
ビルドが完了したら、バイナリが生成されたか確認する。
# バイナリが生成されたか確認 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode # バージョン表示で動作確認 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help
トラブルシューティング
| 問題 | 原因 | 対策 |
|---|---|---|
git branch --show-current 失敗 |
ソースがGitリポジトリではない | 下記の環境変数を設定する。 OPENCODE_VERSION=<バージョン 例: 1.1.53> OPENCODE_CHANNEL=latest |
models.dev に接続できない |
ネットワーク制限 | 事前に api.json をダウンロードして、MODELS_DEV_API_JSON=/path/to/api.json で指定する。
|
| GLIBCバージョン不足 | SUSEのGLIBCのバージョンが古い | --single に加えて --baseline フラグを追加または、muslビルドを検討する。 |
| native module のビルド失敗 | C / C++ コンパイラ不足 | ビルドツールをインストールする。
sudo zypper install gcc gcc-c++ make |
オフライン環境でのビルド
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。
# オンライン環境で事前にダウンロード curl -o api.json https://models.dev/api.json # ビルド時にローカルファイルを指定 export MODELS_DEV_API_JSON=/path/to/api.json ./packages/opencode/script/build.ts --single
baselineビルド
CPUがAVX2命令セットをサポートしていない場合、--baseline フラグを追加する。
./packages/opencode/script/build.ts --single --baseline
デスクトップアプリケーションのビルド
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。
デスクトップアプリケーションの構成
| 項目 | 内容 |
|---|---|
| フロントエンド | SolidJS + Vite (TypeScript) |
| バックエンド | Rust (Tauri v2 シェル) |
| サイドカー | OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの) |
| ビルドスクリプト | packages/desktop/ 配下 |
| 出力形式 (Linux) | debパッケージ、rpmパッケージ |
| ソースディレクトリ | packages/desktop/ (フロントエンド) packages/desktop/src-tauri/ (Rust) |
ビルドの前提条件
OpenCode CLIバイナリのビルド
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。
そのため、まず、OpenCode CLIバイナリのビルドを完了させること。
Rustツールチェーン
Tauri v2 のビルドには、Rustが必要である。
# Rustのインストール (未インストールの場合) curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh # 環境変数の設定を反映 source "$HOME/.cargo/env" # バージョン確認 rustc --version cargo --version
依存ライブラリのインストール
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。
sudo zypper install -t pattern devel_basis sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel
ソースコードのダウンロード
OpenCodeのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf opencode-<バージョン>.tar.gz cd opencode-<バージョン>
デスクトップアプリケーションのビルド
Step 1 : 環境変数の設定
環境変数を設定する。
export OPENCODE_VERSION=<バージョン 例 : 1.2.4>
export OPENCODE_CHANNEL=latest
Step 2 : 依存パッケージのインストール
プロジェクトディレクトリに移動して、依存パッケージをインストールする。
cd /path/to/opencode-<バージョン> bun install
もし、bun installに失敗する場合は、node-gypをインストールする。
bun add node-gyp -D # または npm install -g node-gyp
Step 2.5 : OpenCode Desktopの最大化に関する不具合
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。
vi /path/to/opencode-<バージョン>/packages/desktop/src-tauri/src/windows.rs
// /path/to/opencode-<バージョン>/packages/desktop/src-tauri/src/windows.rsファイル
// 編集前
.maximized(true)
// 編集後
//.maximized(true)
Step 3 : CLIバイナリのビルド (未完了の場合)
サイドカーとなるOpenCode CLIバイナリが必要である。
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。
./packages/opencode/script/build.ts --single
下記のエラーが表示される場合がある。
| // relax version requirement
| const expectedBunVersionRange = `^${expectedBunVersion}`
|
| if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {
| throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)
error: This script requires bun@^X.X.X, but you are using bun@X.X.X
at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13
この時、bunをアップデートする。
bun upgrade
Step 4 : サイドカーの配置
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。
mkdir -p packages/desktop/src-tauri/sidecars cp packages/opencode/dist/opencode-linux-x64/bin/opencode \ packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu
tauri.conf.json ファイル内の externalBin に sidecars/opencode-cli が指定されており、Tauriがターゲットトリプル (x86_64-unknown-linux-gnu) を付与して検索する。
Step 5 : フロントエンドのビルド確認 (任意)
Viteビルドは、tauri build コマンドの beforeBuildCommand で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。
bun run --cwd packages/desktop build
Step 6 : Tauriビルドの実行
Tauriビルドを実行する。
bun run --cwd packages/desktop tauri build
上記のコマンドは、以下に示す事柄を実行する。
beforeBuildCommand(bun run build) でフロントエンドをビルドする。- Cargo (Rust) でネイティブバイナリをコンパイルする。
- サイドカー (OpenCode CLIバイナリ) をバンドルに含める。
- deb / rpmパッケージを生成する。
Cargo.toml ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。
以下に示すエラーが出力される場合がある。
$ tauri build
thread '<unnamed>' panicked at crates/tauri-cli/src/interface/rust.rs:146:8:
called `Result::unwrap()` on an `Err` value: Error { kind: Io(Os { code: 24, kind: Uncategorized, message: "Too many open files" }), paths: [] }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: script "tauri" was terminated by signal SIGABRT (Abort)
これは、Tauriのビルドプロセス (Rustコンパイル含む) が、現在のシェルセッションで許可されているオープンファイル数の上限を超えているため、表示される。
これを解決するには、オープンファイル数の上限を引き上げる。
ulimit -n 1048576
もし、ulimit -n 1048576 コマンドを実行して、Operation not permitted エラーが出力される場合は、システム側のハードリミットも引き上げる必要がある。
sudo vi /etc/security/limits.conf
# /etc/security/limits.confファイル <ユーザ名> soft nofile 1048576 <ユーザ名> hard nofile 1048576
編集した後、再ログインまたはPCを再起動する。
再ログイン後または再起動後、Tauriをビルドする。
cd /path/to/opencode-<バージョン> ulimit -n 1048576 bun run --cwd packages/desktop tauri build
生成されたファイルの確認
以下に示すディレクトリにファイルが生成される。
# RPMパッケージ ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm # debパッケージ ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb # 実行バイナリ (直接実行も可能) ls -la packages/desktop/src-tauri/target/release/OpenCode
動作確認
RPMパッケージをインストールして確認する。
# RPMパッケージをインストールして確認 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm ## または # 実行バイナリを直接起動 ./packages/desktop/src-tauri/target/release/OpenCode
トラブルシューティング
| 問題 | 原因 | 対策 |
|---|---|---|
| cargo buildコマンド実行時に、git依存の取得に失敗 | ネットワーク接続なし / プロキシ | Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須 |
| opencode-cli-x86_64-unknown-linux-gnu not found | サイドカーが配置されていない | サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。 |
| 画面が真っ白 / WebView 描画されない | Wayland環境の問題 | 環境変数 OC_ALLOW_WAYLAND=1 でWaylandを強制する。
|
| RPMパッケージが生成されない | tauri.conf.jsonファイルのtargets設定 | deb、rpmが設定されていることを確認する。 |
特定パッケージ形式のみビルド
全形式をビルドする必要がない場合、--bundles フラグで指定できる。
# RPMのみ bun run --cwd packages/desktop tauri build --bundles rpm # debのみ bun run --cwd packages/desktop tauri build --bundles deb
デバッグビルド
問題の調査が必要な場合、デバッグビルドを実行できる。
bun run --cwd packages/desktop tauri build --debug
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -> [Inspect Element]が利用できる。
Oh my OpenCode
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。
- GitHubリポジトリ
- https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode
主な機能
Oh my OpenCodeは以下に示す機能を提供する。
| 機能 | 説明 |
|---|---|
| ultrawork | 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード |
| フック統合 | ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等) |
| MCP統合 | Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論) |
| LSP/AST解析 | Language Server ProtocolとAST解析による高精度なコード理解 |
| スキルシステム | 再利用可能なプロンプトテンプレート 例: /ultra
|
専門エージェント
Oh my OpenCodeは以下の専門エージェントを提供する。
| エージェント名 | 役割 |
|---|---|
| Sisyphus | プランニングと実装を担当するメインエージェント タスク分割、実装、テスト、反復改善を行う。 |
| Oracle | コードベース全体の調査・分析を担当 プロジェクト構造の把握、依存関係の追跡を行う。 |
| Frontend Engineer | フロントエンド開発を担当 React / Next.js等のUI実装、アクセシビリティ対応を行う。 |
| Librarian | ドキュメント管理を担当 README、API仕様書、変更履歴の作成・更新を行う。 |
| Explorer | 未知のコードベースの探索を担当 新しいプロジェクトの構造理解や技術スタックの調査を行う。 |
インストール
インストールの前提条件は以下の通りである。
- OpenCode v1.0.150以上
- Node.js または Bun
Oh my OpenCodeをインストールする。
bunx oh-my-opencode@latest # または npx oh-my-opencode@latest
非対話モードでインストールする場合は以下のコマンドを実行する。
bunx oh-my-opencode@latest --non-interactive
設定
設定ファイルは以下の場所に配置する。
- プロジェクト単位
- .opencode/oh-my-opencode.json
- グローバル
- ~/.config/opencode/oh-my-opencode.json
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。
以下に設定ファイルの例を示す。
{
"mcpServers": {
"context7": true,
"thinking": true
},
"agents": {
"sisyphus": true,
"oracle": true,
"frontend": true,
"librarian": true,
"explorer": true
},
"hooks": {
"afterEdit": true,
"afterWrite": true
},
"skills": {
"ultra": true
}
}
下表に、各設定項目の説明を示す。
| カテゴリ | 設定項目 | 説明 |
|---|---|---|
| mcpServers | - | MCPサーバの有効 / 無効を設定する。 |
| context7 | ライブラリドキュメント取得サーバ | |
| thinking | 構造的推論サーバ | |
| agents | - | 専門エージェントの有効/無効を設定する。 |
| sisyphus | 個別に制御可能 | |
| oracle | 個別に制御可能 | |
| frontend | 個別に制御可能 | |
| librarian | 個別に制御可能 | |
| explorer | 個別に制御可能 | |
| hooks | - | フックの有効 / 無効を設定する。 |
| afterEdit | ファイル編集後に自動チェックを実行する。 | |
| afterWrite | ファイル作成後に自動チェックを実行する。 | |
| skills | - | スキルの有効 / 無効を設定する。 |
| ultra | ultraworkスキルを有効化する。 |
使用方法
プロンプトに ultrawork というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。
使用例を以下に示す。
- 大規模リファクタリング
ultrawork このプロジェクトの認証システムをリファクタリングして
- 新機能実装
ultrawork ユーザ管理機能を実装して
- ドキュメント調査
ultrawork このコードベースを分析してドキュメントを作成して
アンインストール
プロジェクト単位の設定ファイルを削除する。
rm -rf .opencode/agents \
.opencode/hooks \
.opencode/skills \
.opencode/mcp.json \
.opencode/oh-my-opencode.json
グローバル設定を削除する。
rm -rf ~/.config/opencode/oh-my-opencode.json
注意事項
Oh my OpenCodeを使用する際は以下の点に注意すること。
- AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。
- フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。
- MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。
注意事項
プライバシーとデータ取り扱い
OpenCodeはオープンソースであり、コードの透明性を確保している。
- ローカルでの処理を優先、コードの送信は最小限に抑制する。
- 使用するAIプロバイダのプライバシーポリシーを確認すること。
- GitHubリポジトリで実装を検証可能
生成コードの検証
AIが生成したコードは必ずレビューして検証する。
- コードの動作を確認
- セキュリティ上の問題がないか確認
- ライセンス上の問題がないか確認
- コーディング規約に準拠しているか確認
セキュリティ
APIキーやパスワード等の機密情報をコードに含めないように注意する。
- APIキー、パスワード等の機密情報をコードに含めない。
- 環境変数や設定ファイルで管理する。
- .gitignore ファイルで機密情報を含むファイルを除外する。