mcpField
O
ollama-sync

ollama-sync

github.com/mskaduエージェントワークフロー141 回インストール21 週間前に更新
リポジトリ

ollama-sync について

ollama-syncは、ローカルの `ollama list` の結果を `opencode.json` に反映するOllama同期スキルです。Ollamaプロバイダーの設定を保守する用途に向け、空の一覧やコマンドの失敗も扱います。

主な機能

  1. 01`ollama` コマンドの有無を確認
  2. 02`ollama list` でモデルを取得
  3. 03モデル名を抽出
  4. 04`opencode.json` のOllamaプロバイダーを更新
  5. 05空の一覧とコマンドエラーに対応

活用シーン

  1. 01ローカルモデルの追加・削除後に設定を更新
  2. 02利用可能なモデルがない場合に一覧を消去
  3. 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 つの主な手順が必要です。

  1. 最新の一覧を取得: bash ツールで ollama list を実行し、マシンで現在利用可能なモデル名とタグをすべて取得します。
  2. 解析して抽出: ollama list の出力を解析し、モデル名のみのリストを抽出します(例:llama2、mistral)。
  3. 設定を更新: edit ツールを使い、opencode.json の既存のモデル一覧(具体的には ollama プロバイダーのセクション)を、新たに取得した正確な一覧に置き換えます。

ワークフローの詳細

  1. 主なコマンドの実行:
    • bash ツールで ollama list を実行します。
  2. 解析ロジック(内部処理):
    • ollama list の出力を解析してモデル名を特定する必要があります。出力形式は、モデル名を grep で抽出できるほど安定しているものとします。
  3. ファイルの操作:
    • read ツールで opencode.json を読み取り、現在の構造を確認します。
    • edit ツールを使い、モデル一覧を含む特定のセクションを変更します。
手順ごとのロジック
  1. 依存関係の確認: 実行環境で ollama コマンドを利用できるか確認します。
  2. システム上のモデルを取得: ollama list を実行し、現在のモデル一覧を取得します。
  3. 名前を抽出: 出力をプログラムで解析し、モデル名をカンマ区切りの文字列にします。
  4. 書き戻し: 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 ツールを使用してください。

コメント