📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == OpenCodeは、オープンソースのAIコーディングエージェントである。<br> ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。<br> <br> 主要な特徴として、以下が挙げられる。<br> * Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート * 2026…」 |
|||
| (同じ利用者による、間の11版が非表示) | |||
| 69行目: | 69行目: | ||
|- | |- | ||
| GitHub Copilot || GitHub認証 (OAuth) || <code>/connect</code> コマンドで認証 | | GitHub Copilot || GitHub認証 (OAuth) || <code>/connect</code> コマンドで認証 | ||
|- | |||
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート<br>GLM Coding Plan対応 | |||
|- | |- | ||
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング | | AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング | ||
| 99行目: | 101行目: | ||
|- | |- | ||
| ローカル実行 || Qwen 2.5 Coder (Ollama) | | ローカル実行 || Qwen 2.5 Coder (Ollama) | ||
|- | |||
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan) | |||
|} | |} | ||
</center> | </center> | ||
| 212行目: | 216行目: | ||
export ANTHROPIC_API_KEY="sk-..." | export ANTHROPIC_API_KEY="sk-..." | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | |||
===== Z.AI (GLM) との連携 ===== | |||
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。<br> | |||
<br> | |||
====== GLM / GLM Coding Planの概要 ====== | |||
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ GLM Coding Plan | |||
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安 | |||
|- | |||
| Lite || $10 || 対応 || 約80プロンプト | |||
|- | |||
| Pro || $30 || 対応 || 約400プロンプト | |||
|- | |||
| Max || $120 || 対応 || 約1,600プロンプト | |||
|} | |||
</center> | |||
<br> | |||
使用可能なモデルは以下の通りである。<br> | |||
* GLM-5 (ProプランおよびMaxプランのみ) | |||
* GLM-4.7 | |||
* GLM-4.6 | |||
* GLM-4.5 | |||
* GLM-4.5-Air | |||
<br> | |||
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。<br> | |||
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。<br> | |||
<br> | |||
====== 認証の設定手順 ====== | |||
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。<br> | |||
<br> | |||
<code>opencode auth login</code> コマンドを実行して、プロバイダ選択で <u>Z.AI Coding Plan</u> を選択する。<br> | |||
<br> | |||
<syntaxhighlight lang="sh"> | |||
opencode auth login | |||
</syntaxhighlight> | |||
<br> | |||
┌ Add credential | |||
│ | |||
◆ Select provider | |||
│ ● Z.AI Coding Plan | |||
│ ... | |||
└ | |||
<br> | |||
Z.AIのAPIキーを入力する。<br> | |||
┌ Add credential | |||
│ | |||
◇ Select provider | |||
│ Z.AI Coding Plan | |||
│ | |||
◇ Enter your API key | |||
│ <Z.AIのAPIキーを入力> | |||
└ | |||
<br> | |||
OpenCodeを起動して、<code>/models</code> コマンドでGLM-5 / GLM-4.7等のモデルを選択する。<br> | |||
opencode | |||
<br> | |||
/models | |||
<br><br> | |||
====== トラブルシューティング : Insufficient balance ====== | |||
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。<br> | |||
Insufficient balance or no resource package. Please recharge. | |||
<br> | |||
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。<br> | |||
<br> | |||
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。<br> | |||
プロバイダ選択で <u>Z.AI</u> (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ Z.AI APIエンドポイントの違い | |||
! エンドポイント !! URL !! 用途 | |||
|- | |||
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用 | |||
|- | |||
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用 | |||
|} | |||
</center> | |||
<br> | |||
対処方法として、一旦Z.AIの認証情報をログアウトしてから、<u>Z.AI Coding Plan</u> で再度ログインする。<br> | |||
<br> | |||
Z.AIの認証情報をログアウトする。<br> | |||
<syntaxhighlight lang="sh"> | |||
opencode auth logout | |||
</syntaxhighlight> | |||
<br> | |||
再度ログインして、プロバイダ選択で <u>Z.AI Coding Plan</u> を選択する。<br> | |||
<syntaxhighlight lang="sh"> | |||
opencode auth login | |||
</syntaxhighlight> | |||
<br> | |||
┌ Add credential | |||
│ | |||
◆ Select provider | |||
│ ● Z.AI Coding Plan ← Z.AI ではなく、Z.AI Coding Planを選択すること | |||
│ ... | |||
└ | |||
<br> | |||
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。<br> | |||
<br><br> | <br><br> | ||
==== 設定ファイル ==== | ==== 設定ファイル ==== | ||
| 393行目: | 499行目: | ||
! 項目 !! 要件 | ! 項目 !! 要件 | ||
|- | |- | ||
| OS || SUSE 15 | | OS || | ||
* RHEL 9 / 10 | |||
* SUSE 15 / 16 | |||
|- | |- | ||
| Bun || 1.3.x (<u>package.json</u> 内の <code>packageManager</code> で <code>bun@1.3.9</code> を指定) | | Bun || 1.3.x (<u>package.json</u> 内の <code>packageManager</code> で <code>bun@1.3.9</code> を指定) | ||
| 410行目: | 518行目: | ||
curl -s https://models.dev/api.json | head -c 100 | curl -s https://models.dev/api.json | head -c 100 | ||
<br><br> | <br><br> | ||
==== ビルド方式の説明 ==== | ==== ビルド方式の説明 ==== | ||
<center> | <center> | ||
| 429行目: | 538行目: | ||
ソースディレクトリがGitリポジトリでない場合、<code>git branch --show-current</code> が失敗するため、環境変数を設定する。<br> | ソースディレクトリがGitリポジトリでない場合、<code>git branch --show-current</code> が失敗するため、環境変数を設定する。<br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
export OPENCODE_VERSION=<バージョン 例 : 1. | export OPENCODE_VERSION=<バージョン 例 : 1.2.14> | ||
export OPENCODE_CHANNEL=latest | export OPENCODE_CHANNEL=latest | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
==== 依存パッケージのインストール ==== | ==== 依存パッケージのインストール ==== | ||
プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br> | プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br> | ||
cd / | cd /path/to/opencode-<バージョン> | ||
bun install | bun install | ||
<br> | <br> | ||
| 441行目: | 551行目: | ||
<code>bun install</code> コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。<br> | <code>bun install</code> コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。<br> | ||
<br><br> | <br><br> | ||
==== ビルドの実行 ==== | ==== ビルドの実行 ==== | ||
ビルドスクリプトを実行する。<br> | ビルドスクリプトを実行する。<br> | ||
| 539行目: | 650行目: | ||
sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel | sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel | ||
<br> | <br> | ||
===== ソースコードのダウンロード ===== | |||
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf opencode-<バージョン>.tar.gz | |||
cd opencode-<バージョン> | |||
<br> | |||
==== デスクトップアプリケーションのビルド ==== | ==== デスクトップアプリケーションのビルド ==== | ||
===== Step 1 : 環境変数の設定 ===== | ===== Step 1 : 環境変数の設定 ===== | ||
環境変数を設定する。<br> | 環境変数を設定する。<br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
export OPENCODE_VERSION=<バージョン 例 : 1. | export OPENCODE_VERSION=<バージョン 例 : 1.2.4> | ||
export OPENCODE_CHANNEL=latest | export OPENCODE_CHANNEL=latest | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| 551行目: | 669行目: | ||
cd /path/to/opencode-<バージョン> | cd /path/to/opencode-<バージョン> | ||
bun install | bun install | ||
<br> | |||
もし、bun installに失敗する場合は、node-gypをインストールする。<br> | |||
bun add node-gyp -D | |||
# または | |||
npm install -g node-gyp | |||
<br> | |||
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 ===== | |||
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。<br> | |||
<br> | |||
vi /path/to/opencode-<バージョン>/packages/desktop/src-tauri/src/windows.rs | |||
<br> | |||
<syntaxhighlight lang="rust"> | |||
// /path/to/opencode-<バージョン>/packages/desktop/src-tauri/src/windows.rsファイル | |||
// 編集前 | |||
.maximized(true) | |||
// 編集後 | |||
//.maximized(true) | |||
</syntaxhighlight> | |||
<br> | <br> | ||
===== Step 3 : CLIバイナリのビルド (未完了の場合) ===== | ===== Step 3 : CLIバイナリのビルド (未完了の場合) ===== | ||
| 557行目: | 695行目: | ||
./packages/opencode/script/build.ts --single | ./packages/opencode/script/build.ts --single | ||
<br> | <br> | ||
下記のエラーが表示される場合がある。 | |||
| // 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 | |||
<br> | |||
この時、bunをアップデートする。<br> | |||
bun upgrade | |||
<br> | |||
===== Step 4 : サイドカーの配置 ===== | ===== Step 4 : サイドカーの配置 ===== | ||
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。<br> | OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。<br> | ||
| 592行目: | 744行目: | ||
ls -la packages/desktop/src-tauri/target/release/OpenCode | ls -la packages/desktop/src-tauri/target/release/OpenCode | ||
<br><br> | <br><br> | ||
==== 動作確認 ==== | ==== 動作確認 ==== | ||
RPMパッケージをインストールして確認する。<br> | RPMパッケージをインストールして確認する。<br> | ||
| 631行目: | 784行目: | ||
<br> | <br> | ||
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -> [Inspect Element]が利用できる。<br> | デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -> [Inspect Element]が利用できる。<br> | ||
<br><br> | |||
== Oh my OpenCode == | |||
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。<br> | |||
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。<br> | |||
<br> | |||
* GitHubリポジトリ | |||
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode | |||
<br> | |||
==== 主な機能 ==== | |||
Oh my OpenCodeは以下に示す機能を提供する。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ Oh my OpenCode 機能一覧 | |||
! 機能 !! 説明 | |||
|- | |||
| <u>ultrawork</u> || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード | |||
|- | |||
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等) | |||
|- | |||
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論) | |||
|- | |||
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解 | |||
|- | |||
| スキルシステム || 再利用可能なプロンプトテンプレート<br>例: <code>/ultra</code> | |||
|} | |||
</center> | |||
<br> | |||
==== 専門エージェント ==== | |||
Oh my OpenCodeは以下の専門エージェントを提供する。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ 専門エージェント一覧 | |||
! エージェント名 !! 役割 | |||
|- | |||
| Sisyphus || プランニングと実装を担当するメインエージェント<br>タスク分割、実装、テスト、反復改善を行う。 | |||
|- | |||
| Oracle || コードベース全体の調査・分析を担当<br>プロジェクト構造の把握、依存関係の追跡を行う。 | |||
|- | |||
| Frontend Engineer || フロントエンド開発を担当<br>React / Next.js等のUI実装、アクセシビリティ対応を行う。 | |||
|- | |||
| Librarian || ドキュメント管理を担当<br>README、API仕様書、変更履歴の作成・更新を行う。 | |||
|- | |||
| Explorer || 未知のコードベースの探索を担当<br>新しいプロジェクトの構造理解や技術スタックの調査を行う。 | |||
|} | |||
</center> | |||
<br> | |||
==== インストール ==== | |||
インストールの前提条件は以下の通りである。<br> | |||
<br> | |||
* OpenCode v1.0.150以上 | |||
* Node.js または Bun | |||
<br> | |||
Oh my OpenCodeをインストールする。<br> | |||
bunx oh-my-opencode@latest | |||
# または | |||
npx oh-my-opencode@latest | |||
<br> | |||
非対話モードでインストールする場合は以下のコマンドを実行する。<br> | |||
bunx oh-my-opencode@latest --non-interactive | |||
<br> | |||
==== 設定 ==== | |||
設定ファイルは以下の場所に配置する。<br> | |||
<br> | |||
* プロジェクト単位 | |||
*: <u>.opencode/oh-my-opencode.json</u> | |||
* グローバル | |||
*: <u>~/.config/opencode/oh-my-opencode.json</u> | |||
<br> | |||
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。<br> | |||
以下に設定ファイルの例を示す。<br> | |||
<br> | |||
<syntaxhighlight lang="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 | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
下表に、各設定項目の説明を示す。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ 設定項目一覧 | |||
! カテゴリ !! 設定項目 !! 説明 | |||
|- | |||
| rowspan="3" | mcpServers || - || MCPサーバの有効 / 無効を設定する。 | |||
|- | |||
| context7 || ライブラリドキュメント取得サーバ | |||
|- | |||
| thinking || 構造的推論サーバ | |||
|- | |||
| rowspan="6" | agents || - || 専門エージェントの有効/無効を設定する。 | |||
|- | |||
| sisyphus || 個別に制御可能 | |||
|- | |||
| oracle || 個別に制御可能 | |||
|- | |||
| frontend || 個別に制御可能 | |||
|- | |||
| librarian || 個別に制御可能 | |||
|- | |||
| explorer || 個別に制御可能 | |||
|- | |||
| rowspan="3" | hooks || - || フックの有効 / 無効を設定する。 | |||
|- | |||
| afterEdit || ファイル編集後に自動チェックを実行する。 | |||
|- | |||
| afterWrite || ファイル作成後に自動チェックを実行する。 | |||
|- | |||
| rowspan="2" | skills || - || スキルの有効 / 無効を設定する。 | |||
|- | |||
| ultra || ultraworkスキルを有効化する。 | |||
|} | |||
</center> | |||
<br> | |||
==== 使用方法 ==== | |||
プロンプトに <u>ultrawork</u> というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。<br> | |||
<br> | |||
使用例を以下に示す。<br> | |||
<br> | |||
* 大規模リファクタリング | |||
*: <pre>ultrawork このプロジェクトの認証システムをリファクタリングして</pre> | |||
* 新機能実装 | |||
*: <pre>ultrawork ユーザ管理機能を実装して</pre> | |||
* ドキュメント調査 | |||
*: <pre>ultrawork このコードベースを分析してドキュメントを作成して</pre> | |||
<br> | |||
==== アンインストール ==== | |||
プロジェクト単位の設定ファイルを削除する。<br> | |||
rm -rf .opencode/agents \ | |||
.opencode/hooks \ | |||
.opencode/skills \ | |||
.opencode/mcp.json \ | |||
.opencode/oh-my-opencode.json | |||
<br> | |||
グローバル設定を削除する。<br> | |||
rm -rf ~/.config/opencode/oh-my-opencode.json | |||
<br> | |||
==== 注意事項 ==== | |||
Oh my OpenCodeを使用する際は以下の点に注意すること。<br> | |||
<br> | |||
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。 | |||
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。 | |||
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。 | |||
<br><br> | <br><br> | ||