編集の要約なし
 
(同じ利用者による、間の20版が非表示)
17行目: 17行目:
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。<br>
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。<br>
<br>
<br>
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。<br>
Desktop アプリはElectronベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、SolidJS + Viteで構築されたフロントエンドを組み合わせている。<br>
<br><br>
<br><br>


42行目: 42行目:
| 組み込みエージェント || build (開発用)<br>plan (読み取り専用分析)<br>general (調査用)<br>explore (コード探索用)
| 組み込みエージェント || build (開発用)<br>plan (読み取り専用分析)<br>general (調査用)<br>explore (コード探索用)
|-
|-
| Desktop アプリ || Tauri v2ベースのネイティブアプリ
| Desktop アプリ || Electronベースのネイティブアプリ
|-
|-
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張
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>
==== 設定ファイル ====
==== 設定ファイル ====
245行目: 351行目:
*: リーダーキーの設定
*: リーダーキーの設定
*: デフォルト : <code>ctrl+x</code>
*: デフォルト : <code>ctrl+x</code>
<br><br>
== サブエージェントの自動復旧 ==
OpenCodeのサブエージェント (taskツールで起動されるエージェント) は、ストールや一時的な通信障害で <u>Task aborted</u> 等のエラーで停止することがある。<br>
<br>
これは、opencode-auto-resumeプラグインを使用することにより、自動的な復旧を行うことができる。<br>
<br>
==== opencode-auto-resumeプラグイン ====
opencode-auto-resumeプラグインは、OpenCodeのセッションがストールした際に自動的に復旧を試みるプラグインである。<br>
主に以下の状況で有効である。<br>
<br>
* サブエージェントが停止応答なくハングした場合
* ツール実行が一時的なエラーで中断した場合
* ストリームが長時間停止した場合
<br>
===== インストール =====
以下に示すいずれかの方法でインストールする。<br>
<br>
npm経由でインストールする。<br>
npm install -g opencode-auto-resume
<br>
または、OpenCodeの設定ファイル (<u>opencode.json</u> / <u>opencode.jsonc</u>) の <code>plugin</code> 配列に追加する。<br>
OpenCode起動時に自動的にインストールされる。<br>
<br>
===== 設定例 =====
<syntaxhighlight lang="json">
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    [
      "opencode-auto-resume",
      {
        "chunkTimeoutMs": 60000,
        "gracePeriodMs": 5000,
        "maxRetries": 3
      }
    ]
  ]
}
</syntaxhighlight>
<br>
下表に、opencode-auto-resumeプラグインの主な設定項目を示す。<br>
<br>
<center>
{| class="wikitable"
|+ opencode-auto-resume 設定項目
! 設定項目 !! デフォルト値 !! 説明
|-
| <code>chunkTimeoutMs</code> || 45000 || ストリームが停止とみなされるまでの無応答時間 (ミリ秒)
|-
| <code>gracePeriodMs</code> || 3000 || 動作を起こす前の猶予時間<br>ユーザのESC中止を誤検出しないように調整する。
|-
| <code>maxRetries</code> || 3 || 最大自動復旧試行回数
|-
| <code>checkIntervalMs</code> || 5000 || 状態監視のポーリング間隔
|-
| <code>subagentWaitMs</code> || 15000 || 孤立した親セッションを停止とみなすまでの待機時間
|}
</center>
<br>
===== 注意事項 =====
以下に示す事柄に注意して設定すること。<br>
<br>
* <code>chunkTimeoutMs</code> を短くしすぎると、処理の重いタスクが誤って停止判定されることがある。
* ユーザが意図的に[ESC]キーで中止した場合は、自動復旧させないよう <code>gracePeriodMs</code> を適切に設定する。
* oh-my-openagent等の他プラグインと併用する場合は、<code>plugin</code> 配列の順序に影響されることがある。
<br><br>
==== runtime_fallbackの設定 (oh-my-openagent) ====
oh-my-openagentプラグインを使用している場合は、APIエラーやレート制限、プロバイダ障害時にモデルを自動フォールバックする <code>runtime_fallback</code> 設定も併用することを推奨する。<br>
これにより、サブエージェントの停止リスクをさらに減らすことができる。<br>
<br>
<u>~/.config/opencode/oh-my-openagent.json</u> に以下に示すように設定する。<br>
<br>
<syntaxhighlight lang="json">
{
  "runtime_fallback": {
    "enabled": true,
    "retry_on_errors": [400, 429, 503, 529],
    "max_fallback_attempts": 3,
    "cooldown_seconds": 60,
    "timeout_seconds": 30,
    "notify_on_fallback": true
  }
}
</syntaxhighlight>
<br>
下表に、設定項目の説明を示す。<br>
<br>
<center>
{| class="wikitable"
|+ runtime_fallbackプラグインの設定項目
! 設定項目 !! 説明
|-
| <code>enabled</code> || ランタイムフォールバックの有効 / 無効を設定する。
|-
| <code>retry_on_errors</code> || 自動リトライを行うHTTPステータスコードのリスト
|-
| <code>max_fallback_attempts</code> || セッションあたりの最大フォールバック試行回数
|-
| <code>timeout_seconds</code> || 指定時間内にモデルが応答しない場合に次のフォールバック先へ切り替える。
|-
| <code>notify_on_fallback</code> || フォールバック発生時に通知を表示する。
|}
</center>
<br>
===== 併用時の推奨設定 =====
opencode-auto-resumeプラグイン と runtime_fallbackプラグインは目的が異なるため、併用することでカバー範囲が広がる。<br>
<br>
* opencode-auto-resume
*: サブエージェントのハングやストールに対処する。
* runtime_fallback
*: API障害やレート制限等のプロバイダ側エラーに対処する。
<br>
両方を有効にした後はOpenCodeを再起動して、プラグインが正常に読み込まれることを確認する。<br>
<br>
起動ログに <u>opencode-auto-resume ready</u> 等のメッセージが表示されれば正常に動作している。<br>
<br><br>
<br><br>


384行目: 606行目:
<br><br>
<br><br>


== CLIバイナリのビルド (SUSE) ==
== CLIバイナリのビルド ==
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。<br>
<br>
==== ビルドの前提条件 ====
==== ビルドの前提条件 ====
<center>
<center>
393行目: 613行目:
! 項目 !! 要件
! 項目 !! 要件
|-
|-
| OS || SUSE 15.6
| Bun || 1.3.13以上<br>(リポジトリルートの <u>package.json</u> 内の <code>packageManager</code> フィールドで <code>bun@1.3.13</code> が指定されている)
|-
|-
| Bun || 1.3.x (<u>package.json</u> 内の <code>packageManager</code> で <code>bun@1.3.9</code> を指定)
| git || 必須ではない。<br>(<u>packages/script/src/index.ts</u> 内で <code>git branch --show-current</code> が呼び出されるが、環境変数で回避可能)
|-
|-
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)
| ネットワーク || ビルド時に https://models.dev/api.json からモデル定義を取得
|-
|-
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得
| ディスク空き容量 || 約3[GB]以上 (依存パッケージ + バイナリ約150[MB])
|}
|}
</center>
</center>
<br>
<br>
===== 前提条件の確認コマンド =====
===== 前提条件の確認コマンド =====
  # Bunバージョン確認 (1.3.9が必要)
  # Bunバージョン確認 (1.3.13以上が必要)
  bun --version
  bun --version
   
   
  # ネットワーク接続の確認
  # ネットワーク接続の確認
  curl -s https://models.dev/api.json | head -c 100
  curl -s https://models.dev/api.json | head -c 100
<br><br>
<br>
==== ビルド方式の説明 ====
==== ビルド方式の説明 ====
<center>
<center>
416行目: 636行目:
! 項目 !! 内容
! 項目 !! 内容
|-
|-
| 言語 || TypeScript (Bun ランタイム)
| 言語 || TypeScript (Bunランタイム)
|-
|-
| ビルド方式 || <code>Bun.build()</code> の <code>compile: true</code> でスタンドアロン実行ファイルを生成
| ビルド方式 || <code>Bun.build()</code> の <code>compile</code> オプションでスタンドアロン実行ファイルを生成
|-
|-
| ビルドスクリプト || <u>packages/opencode/script/build.ts</u>
| ビルドスクリプト || <u>packages/opencode/script/build.ts</u>
|-
|-
| 出力 || Bunランタイムを内蔵した単一バイナリ (<code>opencode</code>)
| 出力 || Bunランタイムを内蔵した単一バイナリ (<code>opencode</code>)
|-
| 出力先 || <u>packages/opencode/dist/opencode-linux-x64/bin/opencode</u>
|-
| バイナリサイズ || 約150MB (Bunランタイム、TypeScriptコード、Web UIアセットを含む)
|}
|}
</center>
</center>
<br>
<br>
==== 環境変数の設定 ====
ネイティブモジュール (<code>@opentui/core</code>、<code>@parcel/watcher</code>) は、ビルドスクリプトが各プラットフォーム向けの <u>事前ビルド済みバイナリ</u> をダウンロードするため、<br>
ソースディレクトリがGitリポジトリでない場合、<code>git branch --show-current</code> が失敗するため、環境変数を設定する。<br>
CLIビルドではC/C++のソースコードからのコンパイルは発生しない。<br>
このため、CLIのビルドにおいては、デスクトップアプリビルドのようなGCC 10以降の要件はない。<br>
<br>
==== ソースコードのダウンロード ====
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
<br>
tar xf opencode-<バージョン>.tar.gz
cd opencode-<バージョン>
<br>
 
==== ビルド手順 ====
===== Step 1 : 環境変数の設定 =====
ソースディレクトリがGitリポジトリでない場合 (tarballから展開しただけの場合等) は、<u>packages/script/src/index.ts</u> 内で <code>git branch --show-current</code> が実行されて失敗するため、環境変数を設定する。<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  export OPENCODE_VERSION=<バージョン  例 : 1.1.53>
  export OPENCODE_VERSION=<バージョン  例 : 1.14.41>
  export OPENCODE_CHANNEL=latest
  export OPENCODE_CHANNEL=latest
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br>
==== 依存パッケージのインストール ====
環境変数 <code>OPENCODE_VERSION</code> に <code>0.0.0-</code> で始まらない値を指定すると、<code>git</code> コマンドの呼び出しが回避される。<br>
プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br>
環境変数 <code>OPENCODE_CHANNEL</code> はビルド成果物の <code>--version</code> 表示およびユーザエージェント文字列に使用される。<br>
  cd /home/suse/Downloads/opencode-<バージョン>
<br>
===== Step 2 : Bunのlinker設定 =====
デスクトップアプリビルドのセクションと同様に、リポジトリルートの <u>bunfig.toml</u> に <code>linker = "hoisted"</code> を追加する。<br>
<br>
vi /path/to/opencode-<バージョン>/bunfig.toml
<br>
<syntaxhighlight lang="toml">
[install]
exact = true
linker = "hoisted"
[test]
root = "./do-not-run-tests-from-root"
</syntaxhighlight>
<br>
CLI単体のビルドではViteは使用されないため、isolated linkerでも動作する可能性がある。<br>
<u>ただし、OpenCode Desktopのビルドと環境を共有する場合は、整合性を保つためhoistedモードを推奨する。</u><br>
<br>
===== Step 3 : 依存パッケージのインストール =====
リポジトリルートで依存パッケージをインストールする。<br>
このリポジトリはBunワークスペース構成のモノレポであるため、ルートでの <code>bun install</code> 実行で全パッケージの依存関係がインストールされる。<br>
<br>
isolated linkerからhoistedに切り替えた直後、または、過去のnode_modulesが残存している場合は、全てのnode_modulesディレクトリを削除してから再インストールする。<br>
<br>
  cd /path/to/opencode-<バージョン>
rm -rf node_modules packages/*/node_modules packages/*/*/node_modules
  bun install
  bun install
<br>
<br>
このプロジェクトはBunワークスペース構成のモノレポである。<br>
もし、bun installに失敗する場合は、node-gypをインストールする。<br>
<code>bun install</code> コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。<br>
<br>
<br><br>
bun add node-gyp -D
==== ビルドの実行 ====
# または
npm install -g node-gyp
<br>
 
===== Step 4 : ビルドの実行 =====
ビルドスクリプトを実行する。<br>
ビルドスクリプトを実行する。<br>
<br>
  ./packages/opencode/script/build.ts --single
  ./packages/opencode/script/build.ts --single
<br>
<br>
<code>--single</code> フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)<br>
<code>--single</code> フラグは、現在のプラットフォームのみをビルドする。(例: <u>linux-x64</u>)<br>
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。<br>
フラグなしで実行すると、全12プラットフォーム分のクロスコンパイルを試みる。<br>
(<u>linux-x64</u>、<u>linux-arm64</u>、<u>darwin-x64</u>、<u>darwin-arm64</u>、<u>win32-x64</u>、<u>win32-arm64</u>、各baselineおよびmuslバリアント)<br>
<br>
ビルドスクリプトの処理内容を以下に示す。<br>
<br>
<br>
ビルドスクリプトの処理内容:<br>
# <u>packages/opencode/script/generate.ts</u> が https://models.dev/api.json からモデルデータを取得して、<u>packages/opencode/src/provider/models.ts</u> 等のスナップショットを生成する。
* <code>models.dev</code> からモデルデータを取得し、TypeScript スナップショットを生成
# Web UI (<u>packages/app</u>) を <code>vite build</code> でビルドして、生成されたアセットを単一バイナリに埋め込む。
* <code>@opentui/core</code> <code>@parcel/watcher</code> のネイティブバインディングをインストール
# <code>@opentui/core</code> および <code>@parcel/watcher</code> の全プラットフォーム向けプリビルドバイナリをインストールする。(<code>bun install --os="*" --cpu="*"</code>)
* <code>Bun.build()</code> で TypeScript をスタンドアロンバイナリにコンパイル
# <code>Bun.build()</code> の <code>compile</code> オプションでTypeScriptをスタンドアロンバイナリにコンパイルして、<u>packages/opencode/dist/opencode-linux-x64/bin/opencode</u> に出力する。
* <code>packages/opencode/dist/opencode-linux-x64/bin/opencode</code> に出力
# 自動Smoke testとして、生成されたバイナリの <code>--version</code> を実行して、出力を確認する。
<br><br>
<br>
 
==== 動作確認 ====
==== 動作確認 ====
ビルドが完了したら、バイナリが生成されたか確認する。<br>
ビルドが完了した後、バイナリが生成されたかどうかを確認する。<br>
# バイナリが生成されたか確認
  ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode
  ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode
   
<br>
# バージョン表示で動作確認
バージョンを表示する。<br>
  ./packages/opencode/dist/opencode-linux-x64/bin/opencode --version
<br>
ヘルプを表示する。<br>
  ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help
  ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help
<br>
TUIを起動する。<br>
./packages/opencode/dist/opencode-linux-x64/bin/opencode
<br><br>
<br><br>
===== システムへのインストール =====
ビルドしたバイナリを <u>/usr/local/bin/</u> にコピーすると、システム全体で <code>opencode</code> コマンドとして使用できる。<br>
<br>
sudo cp packages/opencode/dist/opencode-linux-x64/bin/opencode /usr/local/bin/opencode
sudo chmod +x /usr/local/bin/opencode
<br>
ユーザディレクトリにのみインストールする場合は、<u>~/.local/bin/</u> 等にコピーする。<br>
mkdir -p ~/.local/bin
cp packages/opencode/dist/opencode-linux-x64/bin/opencode ~/.local/bin/opencode
chmod +x ~/.local/bin/opencode
<br>
==== トラブルシューティング ====
==== トラブルシューティング ====
<center>
<center>
468行目: 755行目:
! 問題 !! 原因 !! 対策
! 問題 !! 原因 !! 対策
|-
|-
| <code>git branch --show-current</code> 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。<br><br>OPENCODE_VERSION=<バージョン  例: 1.1.53><br>OPENCODE_CHANNEL=latest
| <code>git branch --show-current</code> 失敗 || ソースがGitリポジトリではない || 環境変数を設定する。<br><br><code>export OPENCODE_VERSION=1.14.41</code><br><code>export OPENCODE_CHANNEL=latest</code>
|-
| <code>models.dev</code> に接続できない || ネットワーク制限またはプロキシ環境 || 事前に <u>api.json</u> をダウンロードしておき、環境変数 <code>MODELS_DEV_API_JSON=/path/to/api.json</code> で指定する。<br>詳細は、後述の[[#オフライン環境でのビルド|オフライン環境でのビルド]]を参照すること。
|-
|-
| <code>models.dev</code> に接続できない || ネットワーク制限 || 事前に <u>api.json</u> をダウンロードして、<code>MODELS_DEV_API_JSON=/path/to/api.json</code> で指定する。
| <code>This script requires bun@^X.X.X, but you are using bun@X.X.X</code> || Bunのバージョンが古い || Bunをアップグレードする。<br><pre>bun upgrade</pre>
|-
|-
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || <code>--single</code> に加えて <code>--baseline</code> フラグを追加<br>または、muslビルドを検討する。
| GLIBCバージョン不足 || GLIBCバージョンが古い || <code>--single</code> に加えて <code>--baseline</code> フラグを追加してビルドする。<br>または、muslビルドを検討する。
|-
|-
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。
| <code>error: File not found ".../packages/sdk/js/node_modules/cross-spawn"</code> || isolated linker時代の壊れたシンボリックリンクが残存している || 全ての <u>node_modules</u> を削除して、再インストールする。<br>詳細は、Step 3を参照すること。
<pre>sudo zypper install gcc gcc-c++ make</pre>
|-
| Smoke testの失敗 || バイナリの実行可能パーミッションがない、またはGLIBCバージョン不足 || <code>chmod +x</code> でパーミッションを付与する。<br>GLIBCの場合は <code>--baseline</code> フラグを試行する。
|}
|}
</center>
</center>
481行目: 771行目:
===== オフライン環境でのビルド =====
===== オフライン環境でのビルド =====
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。<br>
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。<br>
# オンライン環境で事前にダウンロード
オンライン環境で事前にダウンロードする。<br>
<br>
  curl -o api.json https://models.dev/api.json
  curl -o api.json https://models.dev/api.json
<br>
# ビルド時にローカルファイルを指定
ビルド時にローカルファイルを指定する。<br>
<br>
  export MODELS_DEV_API_JSON=/path/to/api.json
  export MODELS_DEV_API_JSON=/path/to/api.json
  ./packages/opencode/script/build.ts --single
  ./packages/opencode/script/build.ts --single
<br>
<br
===== baselineビルド =====
===== baselineビルド =====
CPUがAVX2命令セットをサポートしていない場合、<code>--baseline</code> フラグを追加する。<br>
CPUがAVX2命令セットをサポートしていない場合、<code>--baseline</code> フラグを追加する。<br>
  ./packages/opencode/script/build.ts --single --baseline
  ./packages/opencode/script/build.ts --single --baseline
<br>
baselineビルドの出力先は <u>packages/opencode/dist/opencode-linux-x64-baseline/bin/opencode</u> となる。<br>
<br>
===== 全プラットフォーム向けクロスコンパイル =====
<code>--single</code> フラグを外して実行すると、全12プラットフォーム向けのバイナリを生成する。<br>
<br>
./packages/opencode/script/build.ts
<br>
ただし、Smoke testは現在のプラットフォーム向けのバイナリのみで実行される。<br>
他プラットフォーム向けのバイナリは、対象プラットフォーム上で別途動作確認する必要がある。<br>
<br><br>
<br><br>


== デスクトップアプリケーションのビルド ==
== デスクトップアプリケーションのビルド ==
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。<br>
OpenCode Desktopは、Electronベースのデスクトップアプリケーションである。<br>
<br>
<u>バージョン 1.14.40以降、Tauri v2からElectronへ移行されており、Rustツールチェーンは不要となっている。</u><br>
<br>
<br>
==== デスクトップアプリケーションの構成 ====
==== デスクトップアプリケーションの構成 ====
501行目: 805行目:
|+ Desktop アプリの構成
|+ Desktop アプリの構成
! 項目 !! 内容
! 項目 !! 内容
|-
| フレームワーク || Electron 41.x + electron-vite + electron-builder
|-
|-
| フロントエンド || SolidJS + Vite (TypeScript)
| フロントエンド || SolidJS + Vite (TypeScript)
|-
|-
| バックエンド || Rust (Tauri v2 シェル)
| メインプロセス || Node.js (TypeScript、<u>packages/desktop/src/main/</u>)
|-
| サイドカー || OpenCode サーバの Node.js バンドル<br><u>packages/opencode/dist/node/</u> として生成され、<code>utilityProcess.fork</code> でメインプロセスから子プロセスとして起動される。
|-
|-
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)
| パッケージング || electron-builder
|-
|-
| ビルドスクリプト || <u>packages/desktop/</u> 配下
| 出力形式 (Linux) || AppImage、debパッケージ、rpmパッケージ
|-
|-
| 出力形式 (Linux) || debパッケージ、rpmパッケージ
| ソースディレクトリ || <u>packages/desktop/src/main/</u> (Electronメインプロセス)<br><u>packages/desktop/src/preload/</u> (preloadスクリプト)<br><u>packages/desktop/src/renderer/</u> (SolidJSフロントエンド)
|-
|-
| ソースディレクトリ || <u>packages/desktop/</u> (フロントエンド)<br><u>packages/desktop/src-tauri/</u> (Rust)
| 設定ファイル || <u>packages/desktop/electron.vite.config.ts</u> (electron-vite)<br><u>packages/desktop/electron-builder.config.ts</u> (electron-builder)
|}
|}
</center>
</center>
<br>
旧Tauri版とは異なり、<u>独立したCLIバイナリをサイドカーとしてバンドルしない</u>。<br>
代わりに、<u>packages/opencode/src/node.ts</u> から生成されるNode.jsバンドル (<u>packages/opencode/dist/node/</u>) がメインプロセスのutilityProcessとして起動される。<br>
そのため、CLIバイナリのビルドセクションでビルドした <u>opencode</u> バイナリは、デスクトップアプリのビルドには使用されない。<br>
<br>
<br>
==== ビルドの前提条件 ====
==== ビルドの前提条件 ====
===== OpenCode CLIバイナリのビルド =====
===== Bun ランタイム =====
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。<br>
ビルドにはBun 1.3.13以上が必要である。<br>
<u>そのため、まず、OpenCode CLIバイナリのビルドを完了させること。</u><br>
ルートの <u>package.json</u> <code>packageManager</code> フィールドで <u>bun@1.3.13</u> が指定されている。<br>
<br>
  bun --version
===== 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>
<br><br>
===== 依存ライブラリのインストール =====
===== 依存ライブラリのインストール =====
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。<br>
Electron-builderがLinuxパッケージ (rpm / deb / AppImage) を生成するために、以下に示すツールが必要である。<br>
<br>
  sudo zypper install -t pattern devel_basis
  sudo zypper install -t pattern devel_basis
  sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel
  sudo zypper install rpm-build dpkg fakeroot
<br>
* <u>rpm-build</u>
*: rpmパッケージの生成に必要
* <u>dpkg</u>、<u>fakeroot</u>
*: debパッケージの生成に必要
<br>
electron-builderはAppImageを生成するために必要なツールを内部で自動取得するため、追加のインストールは不要である。<br>
<br>
<br>
==== デスクトップアプリケーションのビルド ====
Tauri版とは異なり、<u>Rustツールチェーン (rustc、cargo) およびwebkit2gtk3-develは不要</u> である。<br>
<br>
===== ソースコードのダウンロード =====
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
<br>
tar xf opencode-<バージョン>.tar.gz
cd opencode-<バージョン>
<br>
==== ビルド ====
===== Step 1 : 環境変数の設定 =====
===== Step 1 : 環境変数の設定 =====
環境変数を設定する。<br>
ソースディレクトリがGitリポジトリでない場合、ビルド過程で <code>git branch --show-current</code> が実行されて失敗するため、環境変数を設定する。<br>
<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  export OPENCODE_VERSION=<バージョン  例 : 1.2.4>
  export OPENCODE_VERSION=<バージョン  例 : 1.14.41>
  export OPENCODE_CHANNEL=latest
  export OPENCODE_CHANNEL=<prod / dev / beta のいずれかを指定>
</syntaxhighlight>
<br>
環境変数 <code>OPENCODE_VERSION</code> に <code>0.0.0-</code> で始まらない値を指定すると、Git呼び出しが回避される。<br>
<br>
環境変数 <code>OPENCODE_CHANNEL</code> は <code>dev</code>、<code>beta</code>、<code>prod</code> のいずれかを指定する。<br>
それ以外の値を指定した場合、<u>packages/desktop/electron-builder.config.ts</u> および <u>packages/desktop/electron.vite.config.ts</u> 内で <code>dev</code> として扱われる。<br>
<br>
<center>
{| class="wikitable"
|+ OPENCODE_CHANNELの値
! 値 !! appId !! productName !! RPMパッケージ名
|-
| dev || ai.opencode.desktop.dev || OpenCode Dev || opencode-dev
|-
| beta || ai.opencode.desktop.beta || OpenCode Beta || opencode-beta
|-
| prod || ai.opencode.desktop || OpenCode || opencode
|}
</center>
<br>
===== Step 2 : Bunのlinker設定 =====
Bun 1.3のデフォルトのisolated linkerでは、各パッケージの依存関係が <u>node_modules/.bun/</u> 配下に隔離されたシンボリックリンク構造で配置される。<br>
この構造では、Vite (electron-viteのレンダラビルド) のCommonJSリゾルバが、ワークスペース外の <code>shiki</code> 等のtransitive依存を解決できず、以下に示すエラーが発生する。<br>
<br>
[commonjs--resolver] Failed to resolve entry for package "shiki".
The package may have incorrect main/module/exports specified in its package.json.
<br>
このエラーを回避するため、リポジトリルートの <u>bunfig.toml</u> を編集して、linkerをhoistedモード (npm互換のフラットなnode_modules構造) に切り替える。<br>
<br>
vi /path/to/opencode-<バージョン>/bunfig.toml
<br>
<u>bunfig.toml</u> ファイルの <code>[install]</code> セクションに <u>linker = "hoisted"</u> を追加する。<br>
<br>
<syntaxhighlight lang="toml">
[install]
exact = true
linker = "hoisted"
[test]
root = "./do-not-run-tests-from-root"
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
 
===== Step 3 : 依存パッケージのインストール =====
===== Step 2 : 依存パッケージのインストール =====
プロジェクトルートで依存パッケージをインストールする。<br>
プロジェクトディレクトリに移動して、依存パッケージをインストールする。<br>
このリポジトリはBunワークスペース構成のモノレポであり、ルートで <code>bun install</code> を実行することで全パッケージの依存関係がインストールされる。<br>
<br>
すでに過去にisolated linkerで <code>bun install</code> を実行している場合、各パッケージの <u>node_modules</u> 配下に古いシンボリックリンクが残っている。<br>
hoistedモードで再構築する前に、すべての <u>node_modules</u> ディレクトリを削除する。<br>
<br>
  cd /path/to/opencode-<バージョン>
  cd /path/to/opencode-<バージョン>
rm -rf node_modules packages/*/node_modules packages/*/*/node_modules
<br>
削除しないまま <code>bun install</code> を実行した場合、isolated時代の壊れたシンボリックリンクが残存し、ビルド時に以下に示すエラーが発生する。<br>
<br>
error: File not found "/path/to/opencode-<バージョン>/packages/sdk/js/node_modules/cross-spawn"
<br>
クリーンアップ後、依存パッケージをインストールする。<br>
<br>
  bun install
  bun install
<br>
<br>
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====
<code>postinstall</code> フックで <code>fix-node-pty</code> が自動実行される。<br>
サイドカーとなるOpenCode CLIバイナリが必要である。<br>
<br>
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。<br>
もし、bun installに失敗する場合は、node-gypをインストールする。<br>
  ./packages/opencode/script/build.ts --single
<br>
  bun add node-gyp -D
# または
npm install -g node-gyp
<br>
<br>
===== Step 4 : サイドカーの配置 =====
===== Step 4 : Electronビルドの実行 =====
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。<br>
Electronメインプロセス、preload、レンダラのビルドを実行する。<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>
<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
  bun run --cwd packages/desktop build
<br><br>
===== Step 6 : Tauriビルドの実行 =====
Tauriビルドを実行する。<br>
bun run --cwd packages/desktop tauri build
<br>
<br>
上記のコマンドは、以下に示す事柄を実行する。<br>
<u>build</u> スクリプト実行時、以下の処理が <code>prebuild</code> フックで自動実行される。<br>
* <code>beforeBuildCommand</code> (<code>bun run build</code>) でフロントエンドをビルドする。
* <u>packages/desktop/scripts/copy-icons.ts</u> でチャンネル別のアイコンを <u>resources/icons/</u> にコピーする。
* Cargo (Rust) でネイティブバイナリをコンパイルする。
* <u>packages/opencode/script/build-node.ts</u> でNode.jsサイドカーバンドルを <u>packages/opencode/dist/node/</u> に出力する。
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。
<br>
* deb / rpmパッケージを生成する。
その後、<code>electron-vite build</code> がメインプロセス (<u>out/main/</u>)、preload (<u>out/preload/</u>)、レンダラ (<u>out/renderer/</u>) の3つのバンドルを生成する。<br>
<br>
ネットワーク接続が必要である。<br>
* <u>packages/opencode/script/generate.ts</u> が https://models.dev/api.json からモデル定義を取得する。
* SentryのPlugin等が外部リソースにアクセスする場合がある。
<br>
===== Step 5 : Linuxパッケージの生成 =====
electron-builderでAppImage、debパッケージ、rpmパッケージを生成する。<br>
<br>
electron-builderは、<code>@electron/rebuild</code> を内部で実行して、ネイティブモジュール (<u>msgpackr-extract</u> 等) を Electron向けに再コンパイルする。<br>
<u>msgpackr-extract</u> のビルドには <code>-std=gnu++20</code> オプションが指定されるため、<u>C++20をサポートするGCC 10以降が必要</u>である。<br>
<br>
<u>※注意</u><br>
<u>GCC 9以前では、以下に示すエラーが発生してビルドが失敗する。</u><br>
<br>
g++: error: unrecognized command line option '-std=gnu++20'; did you mean '-std=gnu++03'?
make: *** [extract.target.mk:142: Release/obj.target/extract/src/extract.o] エラー 1
⨯ node-gyp failed to rebuild '/path/to/opencode-<バージョン>/node_modules/msgpackr-extract'
<br>
この時、環境変数 <code>CC</code> および <code>CXX</code> にGCC 9以降を指定する。<br>
<br>
<syntaxhighlight lang="sh">
export CC=gcc-9
export CXX=g++-9
</syntaxhighlight>
<br>
electron-builderを実行する。<br>
<br>
bun run --cwd packages/desktop package:linux
<br>
このコマンドは、<code>electron-builder --linux --config electron-builder.config.ts</code> を実行する。<br>
<u>packages/desktop/electron-builder.config.ts</u> 内の <code>linux.target</code> に AppImage、deb、rpmが指定されている。<br>
<br>
特定の形式のみ生成する場合は、<code>--linux</code> の後に形式を指定する。<br>
<br>
# rpmのみ
bun run --cwd packages/desktop package:linux -- rpm
# debのみ
bun run --cwd packages/desktop package:linux -- deb
# AppImageのみ
bun run --cwd packages/desktop package:linux -- AppImage
<br>
<br>
<u>Cargo.toml</u> ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。<br>
 
<br><br>
===== 生成されたファイルの確認 =====
===== 生成されたファイルの確認 =====
以下に示すディレクトリにファイルが生成される。<br>
出力先は <u>packages/desktop/dist/</u> である。<br>
  # RPMパッケージ
ファイル名のフォーマットは <u>packages/desktop/electron-builder.config.ts</u> 内の <code>artifactName</code> で指定される。<br>
  ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm
(デフォルト: <code>opencode-desktop-${os}-${arch}.${ext}</code>)<br>
<br>
  # rpmパッケージ
  ls -la packages/desktop/dist/*.rpm
   
   
  # debパッケージ
  # debパッケージ
  ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb
  ls -la packages/desktop/dist/*.deb
   
   
  # 実行バイナリ (直接実行も可能)
  # AppImage
  ls -la packages/desktop/src-tauri/target/release/OpenCode
  ls -la packages/desktop/dist/*.AppImage
<br><br>
<br>
==== 動作確認 ====
==== 動作確認 ====
RPMパッケージをインストールして確認する。<br>
rpmパッケージをインストールして起動を確認する。<br>
  # RPMパッケージをインストールして確認
  # rpmパッケージをインストール
  sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm
  sudo zypper install ./packages/desktop/dist/opencode-desktop-linux-x64.rpm
   
   
  ## または
  # OpenCodeデスクトップアプリを起動
   
# OPENCODE_CHANNEL=devでビルドした場合
  # 実行バイナリを直接起動
  opencode-dev
  ./packages/desktop/src-tauri/target/release/OpenCode
<br>
<br><br>
debパッケージで動作確認する場合は、以下に示すコマンドを実行する。<br>
  sudo dpkg -i ./packages/desktop/dist/opencode-desktop-linux-x64.deb
<br>
AppImageの場合、ダウンロードしたファイルに実行権限を付与してそのまま起動する。<br>
  chmod +x ./packages/desktop/dist/opencode-desktop-linux-x64.AppImage
./packages/desktop/dist/opencode-desktop-linux-x64.AppImage
<br>
==== トラブルシューティング ====
==== トラブルシューティング ====
<center>
<center>
609行目: 1,022行目:
! 問題 !! 原因 !! 対策
! 問題 !! 原因 !! 対策
|-
|-
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須
| <code>git branch --show-current</code> 失敗 || ソースがGitリポジトリではない || 環境変数を設定する。<br><br><code>export OPENCODE_VERSION=1.14.41</code><br><code>export OPENCODE_CHANNEL=dev</code>
|-
| <code>[commonjs--resolver] Failed to resolve entry for package "shiki"</code> || Bunのisolated linkerが原因で、ワークスペース外の transitive 依存をViteが解決できない || <u>bunfig.toml</u> ファイルの <code>[install]</code> セクションに <code>linker = "hoisted"</code> を設定して、<code>bun install</code> を再実行する。<br>詳細は、Step 2を参照すること。
|-
| <code>error: File not found ".../packages/sdk/js/node_modules/cross-spawn"</code> || isolated linkerで作成された壊れたシンボリックリンクが残存している || 全ての <u>node_modules</u> を削除して、再インストールする。<br><br><pre>rm -rf node_modules \
  packages/*/node_modules \
  packages/*/*/node_modules
bun install</pre>
|-
| <code>models.dev</code> に接続できない || ネットワーク制限 || 事前に <u>api.json</u> をダウンロードしておき、<code>MODELS_DEV_API_JSON=/path/to/api.json</code> を環境変数で指定する。
|-
| rpmパッケージが生成されない || rpm-buildツール不足 || <code>sudo zypper install rpm-build</code> でrpmビルドツールをインストールする。
|-
| debパッケージが生成されない || dpkg / fakeroot不足 || <code>sudo zypper install dpkg fakeroot</code> でdebビルドツールをインストールする。
|-
|-
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。
| Wayland環境で画面が真っ白になる || ElectronのデフォルトがX11プロトコル || 起動時に <code>--ozone-platform=wayland</code> または <code>--ozone-platform-hint=auto</code> フラグを付与する。<br>例 : <code>opencode-dev --ozone-platform-hint=auto</code>
|-
|-
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 <code>OC_ALLOW_WAYLAND=1</code> でWaylandを強制する。
| node-ptyのビルド失敗 || ネイティブモジュールのコンパイル環境不足 || ビルドツールをインストールする。<br><pre>sudo zypper install gcc gcc-c++ make python3</pre>
|-
|-
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。
| Electronのダウンロード失敗 || ネットワーク制限またはプロキシ環境 || プロキシ環境では <code>HTTPS_PROXY</code> 環境変数を設定する。<br>または <code>ELECTRON_MIRROR</code> 環境変数でミラーURLを指定する。
|}
|}
</center>
</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>
===== デバッグビルド =====
===== デバッグビルド =====
問題の調査が必要な場合、デバッグビルドを実行できる。<br>
問題の調査が必要な場合、開発モードで起動できる。<br>
  bun run --cwd packages/desktop tauri build --debug
  bun run --cwd packages/desktop dev
<br>
<br>
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -> [Inspect Element]が利用できる。<br>
このコマンドは <code>electron-vite dev</code> を実行し、HMR (Hot Module Replacement) 対応の開発サーバを起動する。<br>
DevToolsが自動的に有効になり、レンダラプロセスを <u>[Ctrl] + [Shift] + [I]</u> で検証できる。<br>
<br><br>
<br><br>


== Oh my OpenCode ==
== Oh my OpenAgents (Oh my OpenCode) ==
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。<br>
Oh my OpenAgentsは、OpenCode用のマルチエージェントオーケストレーションプラグインである。<br>
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。<br>
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。<br>
<br>
<br>
642行目: 1,061行目:
<br>
<br>
==== 主な機能 ====
==== 主な機能 ====
Oh my OpenCodeは以下に示す機能を提供する。<br>
Oh my OpenAgentsは以下に示す機能を提供する。<br>
<br>
<br>
<center>
<center>
{| class="wikitable"
{| class="wikitable"
|+ Oh my OpenCode 機能一覧
|+ Oh my OpenAgents 機能一覧
! 機能 !! 説明
! 機能 !! 説明
|-
|-
662行目: 1,081行目:
<br>
<br>
==== 専門エージェント ====
==== 専門エージェント ====
Oh my OpenCodeは以下の専門エージェントを提供する。<br>
Oh my OpenAgentsは以下の専門エージェントを提供する。<br>
<br>
<br>
<center>
<center>
687行目: 1,106行目:
* Node.js または Bun
* Node.js または Bun
<br>
<br>
Oh my OpenCodeをインストールする。<br>
Oh my OpenAgentsをインストールする。<br>
  bunx oh-my-opencode@latest
  bunx oh-my-opencode@latest
  # または
  # または
766行目: 1,185行目:
</center>
</center>
<br>
<br>
==== 使用方法 ====
==== 使用方法 ====
プロンプトに <u>ultrawork</u> というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。<br>
プロンプトに <u>ultrawork</u> というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。<br>
779行目: 1,197行目:
*: <pre>ultrawork このコードベースを分析してドキュメントを作成して</pre>
*: <pre>ultrawork このコードベースを分析してドキュメントを作成して</pre>
<br>
<br>
==== アンインストール ====
==== アンインストール ====
プロジェクト単位の設定ファイルを削除する。<br>
プロジェクト単位の設定ファイルを削除する。<br>
792行目: 1,209行目:
<br>
<br>
==== 注意事項 ====
==== 注意事項 ====
Oh my OpenCodeを使用する際は以下の点に注意すること。<br>
Oh my OpenAgentsを使用する際は以下の点に注意すること。<br>
<br>
<br>
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。
824行目: 1,241行目:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|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,電気回路,電子回路,基板,プリント基板
|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
|description={{PAGENAME}} - OpenCodeのインストール、設定、使用方法、ビルド手順、サブエージェントの自動復旧に関する情報 | This page is {{PAGENAME}} in our wiki about OpenCode installation, configuration, usage, build instructions and subagent recovery
|image=/resources/assets/MochiuLogo_Single_Blue.png
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}
}}