MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - OpenCodeのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - OpenCode
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == OpenCodeは、オープンソースのAIコーディングエージェントである。<br> ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。<br> <br> 主要な特徴として、以下が挙げられる。<br> * 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 (読み取り専用分析) <br> OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。<br> セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。<br> <br> Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。<br> <br><br> == 主な機能 == OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。<br> <br> <center> {| class="wikitable" |+ 主要機能一覧 ! 機能 !! 説明 |- | TUI (Bubble Tea) || ターミナルベースの対話型インターフェース |- | マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート |- | セッション管理 || 会話履歴の保存、復元、エクスポート |- | ツール統合 || ファイル操作、Bash実行、テスト実行等 |- | MCP (Model Context Protocol) || 外部ツールとの統合プロトコル |- | LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携 |- | 組み込みエージェント || build (開発用)<br>plan (読み取り専用分析)<br>general (調査用)<br>explore (コード探索用) |- | Desktop アプリ || Tauri v2ベースのネイティブアプリ |- | IDE拡張機能 || VS Code、JetBrains等のIDE拡張 |- | カスタムコマンド || <u>.opencode/commands/</u> ディレクトリ内でユーザ定義コマンド作成 |- | Git統合 || <code>/undo</code>、<code>/redo</code> コマンドでGitバック付きの変更管理 |} </center> <br><br> == 対応AIプロバイダとモデル == OpenCodeは、75以上のLLMプロバイダに対応している。<br> <br> ==== 主要プロバイダ一覧 ==== <center> {| class="wikitable" |+ 主要プロバイダ一覧 ! プロバイダ !! 認証方法 !! 備考 |- | Anthropic || APIキー (<code>ANTHROPIC_API_KEY</code>) || Claude 4.x系をサポート |- | OpenAI || APIキー (<code>OPENAI_API_KEY</code>) || GPT-4o、o3等をサポート |- | Google || APIキー (<code>GOOGLE_API_KEY</code>) || Gemini 3等をサポート |- | GitHub Copilot || GitHub認証 (OAuth) || <code>/connect</code> コマンドで認証 |- | Z.AI || APIキー || GLM-5、GLM-4.7等をサポート<br>GLM Coding Plan対応 |- | AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング |- | Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング |- | Ollama || ローカル実行 (認証不要) || ローカルモデルの実行 |- | OpenRouter || APIキー || 複数プロバイダのルーティング |- | Groq || APIキー || 高速推論 |- | Together AI || APIキー || オープンソースモデル |- | Fireworks AI || APIキー || 高速推論 |} </center> <br> ==== 推奨モデル ==== <center> {| class="wikitable" |+ 用途別推奨モデル ! 用途 !! 推奨モデル |- | 高精度コーディング || 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) |} </center> <br> ==== ローカルモデル (Ollama) ==== Ollamaを使用することで、ローカル環境でモデルを実行できる。<br> <br> ===== Ollamaのインストール ===== Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。<br> curl -fsSL https://ollama.com/install.sh | bash <br> ===== モデルのダウンロード ===== Ollamaでモデルをダウンロードする。<br> ollama pull qwen2.5-coder <br> ===== OpenCodeでの設定 ===== <code>opencode.json</code> でOllamaプロバイダを設定する。<br> <syntaxhighlight lang="json"> { "$schema": "https://opencode.ai/config.json", "model": "ollama/qwen2.5-coder" } </syntaxhighlight> <br><br> == 前提条件 == OpenCodeをインストールするには、以下の前提条件を満たす必要がある。<br> <br> ==== 標準インストール時の前提条件 ==== <center> {| class="wikitable" |+ 標準インストール時の前提条件 ! 要件 !! 詳細 |- | OS || Linux、MacOS、Windows |- | Node.js || npm経由のインストールに必要 (Node.js 18以上) |- | ネットワーク || AIプロバイダへの接続に必要 |- | AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報 |} </center> <br><br> == インストール == OpenCodeのインストール方法を以下に示す。<br> <br> ==== クイックインストール (Linux) ==== 公式のインストールスクリプトを使用してインストールする。<br> curl -fsSL https://opencode.ai/install | bash <br><br> ==== Homebrew (MacOS) ==== Homebrewを使用してインストールできる。<br> brew install opencode <br><br> ==== npm (全プラットフォーム) ==== npmを使用してグローバルインストールする。<br> npm install -g opencode <br><br> ==== Windows (Scoop / Chocolatey) ==== Windowsでは、ScoopまたはChocolateyを使用してインストールできる。<br> <br> ===== Scoopでのインストール ===== scoop install opencode <br> ===== Chocolateyでのインストール ===== choco install opencode <br><br> ==== デスクトップアプリケーション ==== [https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。<br> <br> 対応プラットフォーム:<br> * Linux (deb、rpm) * MacOS (dmg) * Windows (exe) <br><br> ==== バージョン確認 ==== インストール後、バージョンを確認する。<br> opencode --version <br><br> == 初期設定 == OpenCodeの初期設定を以下に示す。<br> <br> ==== プロバイダの認証 ==== OpenCodeの初回起動時に、<code>/connect</code> コマンド または <code>opencode auth login</code> コマンドでAIプロバイダとの認証を設定する。<br> <br> ===== GitHub Copilotとの連携 ===== OpenCodeはGitHub Copilotの公式パートナーであり、<code>/connect</code> コマンドで認証を設定できる。<br> <br> OpenCodeを起動する。<br> opencode <br> 認証を設定する。<br> /connect <br> 例えば、GitHub Copilotを選択する。<br> Webブラウザが開き、GitHub認証ページが表示される。<br> <br> 認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。<br> <br><br> ===== APIキーによる認証 ===== 環境変数でAPIキーを設定する方法もある。<br> <syntaxhighlight lang="sh"> export ANTHROPIC_API_KEY="sk-..." export OPENAI_API_KEY="sk-..." export GOOGLE_API_KEY="..." </syntaxhighlight> <br> 環境変数を永続化する場合は、~/.profileファイル等に環境変数 <code>ANTHROPIC_API_KEY</code> を設定する。<br> <syntaxhighlight lang="sh"> export ANTHROPIC_API_KEY="sk-..." </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 || $6 || 非対応 || 約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> ==== 設定ファイル ==== OpenCodeの設定ファイルは、<u>プロジェクトルート</u> または <u>ホームディレクトリ</u> に配置する。<br> <br> ===== 設定ファイルの場所 ===== 設定ファイルは以下の順序で検索される。<br> * プロジェクトルート *: <u>opencode.json</u> * ホームディレクトリ *: <u>~/.opencode/config.json</u> <br><br> ===== 設定ファイルの例 ===== <syntaxhighlight lang="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" } } </syntaxhighlight> <br> 設定可能な項目を以下に示す。<br> * <code>model</code> *: 使用するモデル名 (プロバイダ/モデル名 形式) *: 例: <code>anthropic/claude-sonnet-4-5-20250929</code>、<code>openai/gpt-4o</code> * <code>small_model</code> *: 軽量タスク用のモデル (コスト削減に有効) *: 例: <code>anthropic/claude-haiku-4-5-20251001</code> * <code>keybinds.leader</code> *: リーダーキーの設定 *: デフォルト : <code>ctrl+x</code> <br><br> == CLIコマンド == OpenCodeは、CLIモードと対話モードの両方で使用できる。<br> <br> ==== 主要コマンド ==== <center> {| class="wikitable" |+ 主要コマンド一覧 ! コマンド !! 説明 |- | <code>opencode</code> || TUIを起動 |- | <code>opencode run "プロンプト"</code> || 非対話モードでプロンプトを実行 |- | <code>opencode --model プロバイダ/モデル名</code> || モデルを指定して起動 |- | <code>opencode --continue</code> || 前回のセッションを継続して起動 |- | <code>opencode auth login</code> || プロバイダの認証を設定 |- | <code>opencode auth logout</code> || 認証情報を削除 |- | <code>opencode models</code> || 使用可能なモデル一覧を表示 |- | <code>opencode mcp list</code> || MCPサーバ一覧を表示 |- | <code>opencode mcp add サーバー名</code> || MCPサーバを追加 |- | <code>opencode serve</code> || ヘッドレスバックエンドサーバを起動 |- | <code>opencode --version</code> || バージョンを表示 |- | <code>opencode --help</code> || ヘルプを表示 |} </center> <br> ==== 非対話モード ==== 非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。<br> <br> ===== 使用例 ===== プロジェクトの概要を説明する。<br> opencode run "このプロジェクトの概要を説明して" <br> モデルを指定してテストを実行する。<br> opencode run "テストを実行して" --model anthropic/claude-sonnet-4-5-20250929 <br><br> == TUI (ターミナルユーザーインターフェース) == OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。<br> <br> ==== スラッシュコマンド ==== TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。<br> <br> <center> {| class="wikitable" |+ スラッシュコマンド一覧 ! コマンド !! 説明 |- | <code>/new</code> || 新しいセッションを開始 |- | <code>/init</code> || プロジェクト構造を分析 |- | <code>/undo</code> || 直前の変更を元に戻す (Git連携) |- | <code>/redo</code> || 元に戻した変更をやり直す |- | <code>/compact</code> || 会話を要約して圧縮 |- | <code>/share</code> || 会話の共有リンクを生成 |- | <code>/export</code> || 会話をMarkdownでエクスポート |- | <code>/sessions</code> || 過去のセッション一覧を表示 |- | <code>/models</code> || 使用可能なモデル一覧を表示 |- | <code>/agents</code> || エージェント一覧を表示 |- | <code>/connect</code> || プロバイダ認証を設定 |- | <code>/status</code> || 現在のステータスを表示 |- | <code>/mcp</code> || MCPサーバ一覧を表示 |- | <code>/theme</code> || テーマを変更 |- | <code>/editor</code> || 外部エディタで入力 |- | <code>/help</code> || ヘルプを表示 |- | <code>/commands</code> || コマンド一覧を表示 |- | <code>/exit</code> || OpenCodeを終了 |} </center> <br> ==== キーバインド ==== OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。<br> リーダーキーを押した後に各キーを入力する。<br> <br> <center> {| class="wikitable" |+ キーバインド一覧 ! キー !! 説明 |- | [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] || 改行入力 |} </center> <br> ==== ファイル参照とBashコマンド ==== TUI内でファイル参照とBashコマンドの実行ができる。<br> <br> ===== ファイル参照 ===== <code>@</code> でファイルをファジー検索して参照を追加する。<br> @filename <br> ===== Bashコマンドの実行 ===== <code>!</code> をプレフィックスとしてBashコマンドを実行する。<br> !ls -la !git status <br><br> == CLIバイナリのビルド (SUSE) == OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。<br> <br> ==== ビルドの前提条件 ==== <center> {| class="wikitable" |+ ビルドの前提条件 ! 項目 !! 要件 |- | OS || * RHEL 9 / 10 * SUSE 15 / 16 |- | Bun || 1.3.x (<u>package.json</u> 内の <code>packageManager</code> で <code>bun@1.3.9</code> を指定) |- | git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能) |- | ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得 |} </center> <br> ===== 前提条件の確認コマンド ===== # Bunバージョン確認 (1.3.9が必要) bun --version # ネットワーク接続の確認 curl -s https://models.dev/api.json | head -c 100 <br><br> ==== ビルド方式の説明 ==== <center> {| class="wikitable" |+ ビルド方式の説明 ! 項目 !! 内容 |- | 言語 || TypeScript (Bun ランタイム) |- | ビルド方式 || <code>Bun.build()</code> の <code>compile: true</code> でスタンドアロン実行ファイルを生成 |- | ビルドスクリプト || <u>packages/opencode/script/build.ts</u> |- | 出力 || Bunランタイムを内蔵した単一バイナリ (<code>opencode</code>) |} </center> <br> ==== 環境変数の設定 ==== ソースディレクトリがGitリポジトリでない場合、<code>git branch --show-current</code> が失敗するため、環境変数を設定する。<br> <syntaxhighlight lang="sh"> export OPENCODE_VERSION=<バージョン 例 : 1.2.14> export OPENCODE_CHANNEL=latest </syntaxhighlight> <br><br> ==== 依存パッケージのインストール ==== プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br> cd /path/to/opencode-<バージョン> bun install <br> このプロジェクトはBunワークスペース構成のモノレポである。<br> <code>bun install</code> コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。<br> <br><br> ==== ビルドの実行 ==== ビルドスクリプトを実行する。<br> ./packages/opencode/script/build.ts --single <br> <code>--single</code> フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)<br> フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。<br> <br> ビルドスクリプトの処理内容:<br> * <code>models.dev</code> からモデルデータを取得し、TypeScript スナップショットを生成 * <code>@opentui/core</code> と <code>@parcel/watcher</code> のネイティブバインディングをインストール * <code>Bun.build()</code> で TypeScript をスタンドアロンバイナリにコンパイル * <code>packages/opencode/dist/opencode-linux-x64/bin/opencode</code> に出力 <br><br> ==== 動作確認 ==== ビルドが完了したら、バイナリが生成されたか確認する。<br> # バイナリが生成されたか確認 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode # バージョン表示で動作確認 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help <br><br> ==== トラブルシューティング ==== <center> {| class="wikitable" |+ トラブルシューティング ! 問題 !! 原因 !! 対策 |- | <code>git branch --show-current</code> 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。<br><br>OPENCODE_VERSION=<バージョン 例: 1.1.53><br>OPENCODE_CHANNEL=latest |- | <code>models.dev</code> に接続できない || ネットワーク制限 || 事前に <u>api.json</u> をダウンロードして、<code>MODELS_DEV_API_JSON=/path/to/api.json</code> で指定する。 |- | GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || <code>--single</code> に加えて <code>--baseline</code> フラグを追加<br>または、muslビルドを検討する。 |- | native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。 <pre>sudo zypper install gcc gcc-c++ make</pre> |} </center> <br> ===== オフライン環境でのビルド ===== ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。<br> # オンライン環境で事前にダウンロード curl -o api.json https://models.dev/api.json # ビルド時にローカルファイルを指定 export MODELS_DEV_API_JSON=/path/to/api.json ./packages/opencode/script/build.ts --single <br> ===== baselineビルド ===== CPUがAVX2命令セットをサポートしていない場合、<code>--baseline</code> フラグを追加する。<br> ./packages/opencode/script/build.ts --single --baseline <br><br> == デスクトップアプリケーションのビルド == OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。<br> <br> ==== デスクトップアプリケーションの構成 ==== <center> {| class="wikitable" |+ Desktop アプリの構成 ! 項目 !! 内容 |- | フロントエンド || SolidJS + Vite (TypeScript) |- | バックエンド || Rust (Tauri v2 シェル) |- | サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの) |- | ビルドスクリプト || <u>packages/desktop/</u> 配下 |- | 出力形式 (Linux) || debパッケージ、rpmパッケージ |- | ソースディレクトリ || <u>packages/desktop/</u> (フロントエンド)<br><u>packages/desktop/src-tauri/</u> (Rust) |} </center> <br> ==== ビルドの前提条件 ==== ===== OpenCode CLIバイナリのビルド ===== デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。<br> <u>そのため、まず、OpenCode CLIバイナリのビルドを完了させること。</u><br> <br> ===== Rustツールチェーン ===== Tauri v2 のビルドには、Rustが必要である。<br> <br> # Rustのインストール (未インストールの場合) curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh # 環境変数の設定を反映 source "$HOME/.cargo/env" # バージョン確認 rustc --version cargo --version <br><br> ===== 依存ライブラリのインストール ===== Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。<br> sudo zypper install -t pattern devel_basis sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel <br> ===== ソースコードのダウンロード ===== [https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf opencode-<バージョン>.tar.gz cd opencode-<バージョン> <br> ==== デスクトップアプリケーションのビルド ==== ===== Step 1 : 環境変数の設定 ===== 環境変数を設定する。<br> <syntaxhighlight lang="sh"> export OPENCODE_VERSION=<バージョン 例 : 1.2.4> export OPENCODE_CHANNEL=latest </syntaxhighlight> <br> ===== Step 2 : 依存パッケージのインストール ===== プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br> cd /path/to/opencode-<バージョン> bun install <br> ===== Step 3 : CLIバイナリのビルド (未完了の場合) ===== サイドカーとなるOpenCode CLIバイナリが必要である。<br> CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。<br> ./packages/opencode/script/build.ts --single <br> ===== Step 4 : サイドカーの配置 ===== OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。<br> 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 <br> <u>tauri.conf.json</u> ファイル内の <code>externalBin</code> に <u>sidecars/opencode-cli</u> が指定されており、Tauriがターゲットトリプル (<code>x86_64-unknown-linux-gnu</code>) を付与して検索する。<br> <br><br> ===== Step 5 : フロントエンドのビルド確認 (任意) ===== Viteビルドは、<code>tauri build</code> コマンドの <code>beforeBuildCommand</code> で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。<br> bun run --cwd packages/desktop build <br><br> ===== Step 6 : Tauriビルドの実行 ===== Tauriビルドを実行する。<br> bun run --cwd packages/desktop tauri build <br> 上記のコマンドは、以下に示す事柄を実行する。<br> * <code>beforeBuildCommand</code> (<code>bun run build</code>) でフロントエンドをビルドする。 * Cargo (Rust) でネイティブバイナリをコンパイルする。 * サイドカー (OpenCode CLIバイナリ) をバンドルに含める。 * deb / rpmパッケージを生成する。 <br> <u>Cargo.toml</u> ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。<br> <br><br> ===== 生成されたファイルの確認 ===== 以下に示すディレクトリにファイルが生成される。<br> # 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 <br><br> ==== 動作確認 ==== RPMパッケージをインストールして確認する。<br> # RPMパッケージをインストールして確認 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm ## または # 実行バイナリを直接起動 ./packages/desktop/src-tauri/target/release/OpenCode <br><br> ==== トラブルシューティング ==== <center> {| class="wikitable" |+ トラブルシューティング ! 問題 !! 原因 !! 対策 |- | cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須 |- | opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。 |- | 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 <code>OC_ALLOW_WAYLAND=1</code> でWaylandを強制する。 |- | RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。 |} </center> <br> ===== 特定パッケージ形式のみビルド ===== 全形式をビルドする必要がない場合、<code>--bundles</code> フラグで指定できる。<br> # RPMのみ bun run --cwd packages/desktop tauri build --bundles rpm # debのみ bun run --cwd packages/desktop tauri build --bundles deb <br> ===== デバッグビルド ===== 問題の調査が必要な場合、デバッグビルドを実行できる。<br> bun run --cwd packages/desktop tauri build --debug <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> == 注意事項 == ==== プライバシーとデータ取り扱い ==== OpenCodeはオープンソースであり、コードの透明性を確保している。<br> * ローカルでの処理を優先、コードの送信は最小限に抑制する。 * 使用するAIプロバイダのプライバシーポリシーを確認すること。 * GitHubリポジトリで実装を検証可能 <br><br> ==== 生成コードの検証 ==== AIが生成したコードは必ずレビューして検証する。<br> * コードの動作を確認 * セキュリティ上の問題がないか確認 * ライセンス上の問題がないか確認 * コーディング規約に準拠しているか確認 <br><br> ==== セキュリティ ==== APIキーやパスワード等の機密情報をコードに含めないように注意する。<br> * APIキー、パスワード等の機密情報をコードに含めない。 * 環境変数や設定ファイルで管理する。 * <u>.gitignore</u> ファイルで機密情報を含むファイルを除外する。 <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]]
インストール - OpenCode
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse