ollama-sync について
ollama-syncは、ローカルの `ollama list` の結果を `opencode.json` に反映するOllama同期スキルです。Ollamaプロバイダーの設定を保守する用途に向け、空の一覧やコマンドの失敗も扱います。
主な機能
- 01`ollama` コマンドの有無を確認
- 02`ollama list` でモデルを取得
- 03モデル名を抽出
- 04`opencode.json` のOllamaプロバイダーを更新
- 05空の一覧とコマンドエラーに対応
活用シーン
- 01ローカルモデルの追加・削除後に設定を更新
- 02利用可能なモデルがない場合に一覧を消去
- 03同期を妨げる環境の問題を特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mskadu/ opencode-agent-skills --skill ollama-syncインストール後、Claude Code で/ollama-syncを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
Ollama モデル同期ツール
タスク
ローカルの Ollama 設定の同期を依頼された場合、主な目的は、opencode.json ファイル内のモデル一覧がホストシステムで利用可能なモデルを正確に反映していることを確認することです。
この処理には、次の 3 つの主な手順が必要です。
- 最新の一覧を取得: bash ツールで
ollama listを実行し、マシンで現在利用可能なモデル名とタグをすべて取得します。 - 解析して抽出:
ollama listの出力を解析し、モデル名のみのリストを抽出します(例:llama2、mistral)。 - 設定を更新:
editツールを使い、opencode.jsonの既存のモデル一覧(具体的にはollamaプロバイダーのセクション)を、新たに取得した正確な一覧に置き換えます。
ワークフローの詳細
- 主なコマンドの実行:
bashツールでollama listを実行します。
- 解析ロジック(内部処理):
ollama listの出力を解析してモデル名を特定する必要があります。出力形式は、モデル名を grep で抽出できるほど安定しているものとします。
- ファイルの操作:
readツールでopencode.jsonを読み取り、現在の構造を確認します。editツールを使い、モデル一覧を含む特定のセクションを変更します。
手順ごとのロジック
- 依存関係の確認: 実行環境で
ollamaコマンドを利用できるか確認します。 - システム上のモデルを取得:
ollama listを実行し、現在のモデル一覧を取得します。 - 名前を抽出: 出力をプログラムで解析し、モデル名をカンマ区切りの文字列にします。
- 書き戻し:
editツールを使い、opencode.json内の古いモデル一覧を新しいカンマ区切りの一覧に置き換えます。
例とエッジケース
- 一覧が空の場合:
ollama listがモデルを返さない場合は、opencode.jsonのモデル一覧をクリアするか、空の配列に設定し、ユーザーに警告します。 - エラー処理:
ollamaコマンドが失敗するか、見つからない場合は、処理を停止し、環境の問題により同期に失敗したことをユーザーに伝えます。
対象ファイルの構造(概念)
対象ファイルは opencode.json です。関連するセクションは次のようになります(構造の参考):
"providers": {
"ollama": {
"models": ["model-a", "model-b", "model-c"], // <-- This list must be updated
"base_url": "http://localhost:11434"
},
// ... other providers
}
OS とのやり取り(ollama list)には常に bash ツールを優先して使用し、設定の管理には edit ツールを使用してください。
コメント
Markdown 対応