2026-10-17 23:19:32 +02:00
2026-10-17 23:19:32 +02:00
2026-10-17 23:19:32 +02:00

Together-Sync

Serverlose Chat-Modelle von Together.ai direkt in die OpenCode-Konfiguration übernehmen.

Das Skript together-sync lädt die aktuellen Modelle von https://api.together.xyz/v1/models?serverless=true (nur Typ chat), bietet sie zur Auswahl an und schreibt die getroffene Auswahl als vollständigen Sync in ~/.config/opencode/opencode.jsonc unter providers.togetherai.models.

Hintergrund

OpenCode bezieht seinen Modelkatalog aus der Community-Datenbank models.dev. Dort sind etwa 30 Modelle für togetherai gelistet, gegenüber über 200 Serverless-Modellen bei Together.ai. Wie in den OpenCode-Dokumenten beschrieben, wird der Katalog aus Models.dev generiert – nur dort vorhandene Modelle erscheinen im /models-Picker.

Das ist bewusst so gestaltet: Nur wenige Modelle eignen sich gleichermaßen für Codegenerierung und Tool-Calling. OpenCode stellt daher gezielt getestete, für das Programmieren geeignete Modelle bereit. Neue Together-Releases benötigen erst einen PR auf models.dev und ein OpenCode-Release, bevor sie nativ verfügbar sind, während Together sein Serverless-Angebot kontinuierlich aktualisiert.

Dieses Skript überbrückt die Lücke, indem es die Live-API direkt abfragt und die ausgewählten Modelle mit passenden limit- und cost-Angaben in die opencode.jsonc einträgt – ohne manuelle Pflege.

Voraussetzungen

  • Python 3 (nur Standardbibliothek)
  • Together.ai-API-Schlüssel
  • OpenCode (optional, nur für die Vorauswahl beim Erstlauf)
  • Optional: zenity für grafischen Dialog, sonst Terminal

Authentifizierung

Reihenfolge der Schlüsselsuche:

  1. Umgebungsvariable TOGETHER_API_KEY
  2. ~/.local/share/opencode/auth.json unter togetherai.key
export TOGETHER_API_KEY="tgp_..."

Installation

git clone git@git.tim-peters.org:Tim/Opencode-TogetherAI.git
cd Opencode-TogetherAI
chmod +x together-sync

# Optional ins PATH legen
ln -s "$PWD/together-sync" ~/.local/bin/together-sync

Anwendung

./together-sync

Ablauf:

  1. Lädt alle verfügbaren Serverless-Chat-Modelle.
  2. Vorauswahl: bereits konfigurierte Modelle; beim Erstlauf (leere Config) die von OpenCode angebotenen Together-Modelle über opencode api.
  3. Auswahl-Dialog:
    • Mit zenity: Checkliste mit Modell, Kontextlänge und Preis ($/Mio. Input→Output)
    • Ohne zenity: nummerierte Terminal-Liste mit Eingabe wie 1,3,7, a für alle, leer zum Abbrechen
  4. Abbruch oder leere Auswahl ändert nichts.
  5. Die bestätigte Auswahl ersetzt providers.togetherai.models vollständig. Vorher wird automatisch ein Backup als opencode.jsonc.bak-YYYYMMDD-HHMMSS erstellt.

Konfigurationsausgabe

Für jedes Modell wird ein Eintrag erzeugt:

{
  "providers": {
    "togetherai": {
      "models": {
        "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": {
          "name": "Meta-Llama-3.1-405B-Instruct-Turbo",
          "limit": { "context": 131072 },
          "cost": { "input": 3.5, "output": 3.5, "cache_read": 0.5 }
        }
      }
    }
  }
}

Andere Top-Level-Schlüssel in opencode.jsonc bleiben unverändert. Eine unveränderte Auswahl wird erkannt und nicht erneut geschrieben.

Pfade

Pfad Zweck
~/.config/opencode/opencode.jsonc OpenCode-Konfiguration
~/.local/share/opencode/auth.json Fallback für den API-Schlüssel

Die Pfade sind im Skript als CONFIG und AUTH definiert.

S
Description
No description provided
Readme
29 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%