llama.cpp/lmstudio/llamafile/litellmのLocalAIのスキャンと自動登録 #1

Open
opened 2026-08-03 21:20:30 +00:00 by joe · 3 comments
Owner

ポート3000,4000,8080-8090,48080-48090をスキャンしてAPIを試してAIモデルを登録する。処理速度最優先で。

ポート3000,4000,8080-8090,48080-48090をスキャンしてAPIを試してAIモデルを登録する。処理速度最優先で。
Author
Owner

SPEC: LocalAI サーバーのスキャンと自動登録

Issue #1 について、要件を SPEC 化しました。

Goal

opencode 起動時にネットワークスキャンで未発見の LLM サーバー(llama.cpp / LM Studio / llamafile / LiteLLM / Ollama)を自動検出し、opencode.json の models セクションに追加登録する。

Requirements (5件)

  1. ネットワークスキャン: 設定されたポート範囲をバッチ並列(5並列×3秒タイムアウト)でスキャンし、HTTP 200応答するサーバーを探索する。
  2. /props エンドポイントからの登録: /props に応答したサーバーのモデル情報を、既存プロバイダーの models セクションに追記する。
  3. /v1/models エンドポイントからの登録: /v1/models に応答したサーバーは新規プロバイダーエントリとして作成する。
  4. 既登録サーバーのスキップ: opencode.json に既に baseURL が設定されているサーバーはスキャン対象から除外する(重複防止)。
  5. エラー耐性: タイムアウト・接続拒否は無視して続行。JSON パースエラー時は操作前のファイルにロールバック。

Acceptance Criteria

  • 動作中の Ollama (port 11434) が検出され、新規 provider エントリとして追加される
  • 動作中の llama.cpp (port 48080等) が検出され、既存 provider models に追記される
  • 既に登録済みのサーバーはスキャン結果に現れない(重複なし)
  • 応答しないポートが多い環境でも正常起動し、設定が保持される
  • JSON パースエラー時に操作前のファイルが復元される

Constraints

  • 並列数: 5ポート同時並列
  • タイムアウト: 3秒/ポート
  • スキャン範囲: プラグインオプション scan.ports で動的設定可能
  • 検出判定: HTTP 200応答があれば登録対象
  • 書き込み安全性: JSON操作前にファイルコピー、パースエラー時はバックアップから復元

Spec created: 2026-08-04 | Ambiguity: 0.14 (gate passed)

## SPEC: LocalAI サーバーのスキャンと自動登録 Issue #1 について、要件を SPEC 化しました。 ### Goal opencode 起動時にネットワークスキャンで未発見の LLM サーバー(llama.cpp / LM Studio / llamafile / LiteLLM / Ollama)を自動検出し、`opencode.json` の `models` セクションに追加登録する。 ### Requirements (5件) 1. **ネットワークスキャン**: 設定されたポート範囲をバッチ並列(5並列×3秒タイムアウト)でスキャンし、HTTP 200応答するサーバーを探索する。 2. **/props エンドポイントからの登録**: `/props` に応答したサーバーのモデル情報を、既存プロバイダーの `models` セクションに追記する。 3. **/v1/models エンドポイントからの登録**: `/v1/models` に応答したサーバーは新規プロバイダーエントリとして作成する。 4. **既登録サーバーのスキップ**: `opencode.json` に既に baseURL が設定されているサーバーはスキャン対象から除外する(重複防止)。 5. **エラー耐性**: タイムアウト・接続拒否は無視して続行。JSON パースエラー時は操作前のファイルにロールバック。 ### Acceptance Criteria - [ ] 動作中の Ollama (port 11434) が検出され、新規 provider エントリとして追加される - [ ] 動作中の llama.cpp (port 48080等) が検出され、既存 provider models に追記される - [ ] 既に登録済みのサーバーはスキャン結果に現れない(重複なし) - [ ] 応答しないポートが多い環境でも正常起動し、設定が保持される - [ ] JSON パースエラー時に操作前のファイルが復元される ### Constraints - 並列数: 5ポート同時並列 - タイムアウト: 3秒/ポート - スキャン範囲: プラグインオプション `scan.ports` で動的設定可能 - 検出判定: HTTP 200応答があれば登録対象 - 書き込み安全性: JSON操作前にファイルコピー、パースエラー時はバックアップから復元 --- *Spec created: 2026-08-04 | Ambiguity: 0.14 (gate passed)*
Author
Owner

Phase 1 Implementation Complete

Network Scanner + Auto-Register functionality has been implemented:

  • NetworkScanner class with batch parallelism (5 ports × 3s timeout)
  • Default ports: 3000, 4000, 8080-8090, 48080-48090, 11434
  • Existing server detection and filtering
  • Auto-registration via /props (append to existing provider) or /v1/models (new provider)
  • Silent error handling (timeouts/connections skipped)
  • All code in single file: plugins/universal-llm-ctx-auto-update.mjs

Syntax check passed. Ready for testing.

**Phase 1 Implementation Complete** Network Scanner + Auto-Register functionality has been implemented: - `NetworkScanner` class with batch parallelism (5 ports × 3s timeout) - Default ports: 3000, 4000, 8080-8090, 48080-48090, 11434 - Existing server detection and filtering - Auto-registration via /props (append to existing provider) or /v1/models (new provider) - Silent error handling (timeouts/connections skipped) - All code in single file: `plugins/universal-llm-ctx-auto-update.mjs` Syntax check passed. Ready for testing.
Author
Owner

更新しないBUG

更新しないBUG
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joe/ctx#1
No description provided.