HRuiCcc/RuiC-oc-ferry

把 OpenCode 的免费模型摆渡给 WorkBuddy —— 隔离运行时、并发检测、判定缓存、一键导入、本机 OpenAI 兼容转发口

OC Ferry – OpenCode 無料モデルを WorkBuddy にブリッジ

概要

  • Electron で構築されたクロスプラットフォーム(macOS / Windows)トレイアプリで、OpenCode モデルプールから無料モデルを自動的に発見し、WorkBuddy ツール呼び出しプロトコルを話せるかテストし、使用可能なものを WorkBuddy の models.json に書き込みます。また、ローカルの OpenAI 互換 HTTP エンドポイント(127.0.0.1:41980)を実行し、WorkBuddy のリクエストを選択したモデルに転送します。

重要性

  • WorkBuddy は特定の JSON エンベロープツール呼び出しスキーマに従うモデルのみを消費できます。OpenCode の無料モデルは直接互換性がなく、可用性が頻繁に変わります。OC Ferry は発見、検証、キャッシュ、インポートのステップを自動化し、ユーザーが手動で API キーを扱うことなく無料モデルアクセスを取得できるようにします。

主な機能

  • ゼロログイン、ゼロ API キー – アプリは独自の分離された OpenCode ランタイムをバンドルしています。
  • 無料モデルフィルター – 価格フィールドがすべてゼロで、非推奨でないモデルのみが考慮されます。
  • 同時プロービング – 最大 3 つのモデルが並行してテストされます(約 60 秒/ラウンド)。
  • 結果キャッシュ – 成功したプローブは 6 時間キャッシュされるため、再起動はほぼ即時です。
  • 選択的インポート – OC Ferry によって追加されたエントリのみが WorkBuddy の models.json に書き込まれます。ユーザー追加エントリは変更されません。
  • ローカル転送ポート – ローカルマシンからのリクエストのみを受け入れる OpenAI 互換エンドポイント(ブラウザアクセス不可)。
  • トレイ UI – ライト/ダークテーマ、リアルタイムステータス、モデルごとの詳細ビュー、「すべて検出 / 単一再プローブ」ボタン。
  • ポータブルビルド – macOS DMG、Windows インストーラー、ポータブル Windows zip。

動作原理(高レベルフロー)

  1. 発見 – OpenCode モデルディレクトリを読み取り、価格 = 0 で非推奨でないエントリを選択します。
  2. プローブ – ランダムトークンファイルを含む小さなチャットリクエストを送信し、モデルに JSON エンベロープアクションを生成するよう求めます。モデルがプレーンテキストのみを返す場合、ダイアログのみ とマークされます。正しいエンベロープを返す場合、ツール有効 とマークされます。
  3. キャッシュ – プローブ結果は probe-cache.json に保存されます(TTL = 6 時間)。後続の起動は、期限切れでない限りキャッシュを再利用します。
  4. インポート – 発見されたエントリを WorkBuddy の models.json にマージし、アトミック書き込み、バックアップ、ファイルロック処理を行います。
  5. 転送 – WorkBuddy は OpenAI スタイルのリクエストを 127.0.0.1:41980 に送信します。OC Ferry はリクエストを検証し、選択した OpenCode モデルに転送し、JSON エンベロープアクションを WorkBuddy に変換します。

インストールとクイックスタート

  • macOS(Apple シリコン) – .dmg をダウンロードし、「OC Ferry」を アプリケーション にドラッグし、必要に応じて検疫を削除します(xattr -dr com.apple.quarantine …)。
  • Windows – .exe インストーラーを実行します。トレイで非表示に実行するスタートアップエントリが追加されます。ポータブル zip も提供されます。
  • 初回起動時に、分離された OpenCode ランタイムが自動的に準備され、無料モデルがスキャンされ、プローブされ、成功したものが WorkBuddy にインポートされます。
  • アプリを実行し続けます(トレイアイコン)– ウィンドウを閉じると非表示になり、トレイから終了すると追加されたエントリがクリーンアップされます。

開発者向けノート

  • Node ≥ 22、UI 用 Electron、純粋な JavaScript/TypeScript コードベース。
  • 主要モジュール:main.js(状態機械)、backend.js(OpenCode セッションとアクション変換)、probe.js(モデルテスト)、server.js(ローカル HTTP API)、および desktop/ の UI コード。
  • テスト:オフラインで実行できる 85 の自動化ユニットテスト(npm test)。
  • ビルドコマンド:npm run build:mac、npm run build:win、npm run build:win:portable。
  • デバッグ用の環境変数(データディレクトリ、ポート、並行性など)。

制限と注意事項

  • プロービングは少量の無料 OpenCode クォータを消費します。結果は この リクエストが成功したことのみを保証します。
  • 無料モデルの可用性は OpenCode によって制御され、予告なく変更される場合があります。
  • ローカル転送ポートは Origin ヘッダーを持つリクエストを拒否します(ブラウザ使用不可)。
  • システムプロキシサポートは手動 HTTP/HTTPS エントリに限定されます。PAC または SOCKS はサポートされていません。
  • Linux サポートは実験的です。

ライセンス

  • MIT ライセンス(LICENSE を参照)。

OC Ferry が役立つ場合、作者は WeChat でのコーヒー寄付を歓迎します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト