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。
動作原理(高レベルフロー)
- 発見 – OpenCode モデルディレクトリを読み取り、価格 = 0 で非推奨でないエントリを選択します。
- プローブ – ランダムトークンファイルを含む小さなチャットリクエストを送信し、モデルに JSON エンベロープアクションを生成するよう求めます。モデルがプレーンテキストのみを返す場合、ダイアログのみ とマークされます。正しいエンベロープを返す場合、ツール有効 とマークされます。
- キャッシュ – プローブ結果は
probe-cache.jsonに保存されます(TTL = 6 時間)。後続の起動は、期限切れでない限りキャッシュを再利用します。 - インポート – 発見されたエントリを WorkBuddy の
models.jsonにマージし、アトミック書き込み、バックアップ、ファイルロック処理を行います。 - 転送 – 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 でのコーヒー寄付を歓迎します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト