Eigene Modelle,
eine kleine Datei.

Gnista kennt die großen Modellanbieter und ihre veröffentlichten Preise. Für ein Modell, das es nicht kennt – eines, das du über Ollama oder LM Studio laufen lässt, ein Fine-Tune oder den eigenen Endpoint deiner Firma –, sagt ihm eine kleine JSON-Datei, was das Modell kostet, wie viel Kontext es hat und welches Icon es zeigt. Ohne neue Version von Gnista.

Aktualisiert am

Ausprobieren

Für ein Llama-Modell, das lokal über Ollama läuft, speicher das hier als ~/Library/Application Support/Gnista/Models/ollama.json:

{
  "version": 1,
  "match": ["llama3.1:8b"],
  "price": "free",
  "context": 131072
}

Innerhalb von zehn Sekunden zeigen Sitzungen mit llama3.1:8b, dass sie $0 kosten und wie viel ihres Kontexts von 131K Tokens sie nutzen, mit Metas Icon, das Gnista schon kennt. Einstellungen ▸ Agents ▸ Modelle listet die Datei; „Modelle-Ordner zeigen“ dort öffnet den Ordner.

Die Modelldatei

Eine Datei pro Modell oder pro Modellfamilie: bis zu 32 Kleinbuchstaben, Ziffern, - und _, mit .json am Ende. Pflicht ist nur match, und eine Datei muss mindestens ein icon, einen price oder einen context angeben.

{
  "version": 1,
  "maker": "Acme",
  "match": ["acme-coder", "acme"],
  "icon": "acme.svg",
  "motion": "breathe",
  "monochrome": false,
  "price": { "input": 0.5, "output": 1.5, "cacheRead": 0.05, "cacheWrite": 0.6 },
  "context": 200000,
  "about": "Prices from our internal rate card."
}
SchlüsselWas er bewirkt
version1.
matchPflicht. Bis zu 32 Teile der Modell-IDs, für die die Datei gilt, so wie dein Agent sie meldet: llama3.1:8b, acme-coder. Groß- und Kleinschreibung ist egal. Ein Teil mit mehr als zwei Zeichen passt überall in der ID; einer mit zwei oder weniger nur als ganzes Wort, o3 passt also auf o3-mini, aber nicht auf foo3.
makerWer es herstellt; so nennen die Einstellungen die Datei. Bis zu 40 Zeichen.
iconEine SVG- oder PNG-Datei im selben Ordner, bis 1 MB, als kleines Badge auf dem Icon des Agents. Ohne sie behält ein Modell, das Gnista kennt, das Icon seines Anbieters.
motionWie sich das Badge bewegt, während der Agent arbeitet: spin, twinkle, bob, swim, rock oder breathe, oder in deinem eigenen Tempo: {"name": "spin", "period": 10}.
monochrometrue für ein einfarbiges Zeichen, gezeichnet in der Farbe des umgebenden Texts.
price"free", oder US-Dollar pro Million Tokens: input und output, optional auch cacheRead (ohne Angabe ein Zehntel von input) und cacheWrite (ohne Angabe das 1,25-Fache von input).
contextDas Kontextfenster des Modells in Tokens, für den Ring, der zeigt, wie voll es ist.
aboutEine Notiz für den, der die Datei als Nächstes bearbeitet. Gnista zeigt sie nicht an.

Eine Datei über 1 MB, oder mit irgendeinem Fehler darin (ein unbekannter Schlüssel, ein Preis, der keiner ist, ein Icon, das Gnista nicht lesen kann), wird als Ganzes ignoriert, nie halb benutzt. Einstellungen ▸ Agents ▸ Modelle zeigt sie mit dem Grund.

Welche Datei ein Modell bekommt

  • Deine Dateien gehen vor Gnistas eigenen. Passen mehrere, gewinnt der längste passende Teil: llama-3.1-nemotron ist von NVIDIA (nemotron), nicht von Meta (llama).
  • Das Icon kommt vom besten Treffer, der eines hat, Preis und Kontext vom besten Treffer, der sie hat. Eine Datei nur mit Preis behält das Icon des Anbieters.
  • Dein Preis und Kontext gehen vor den veröffentlichten Preisen, die Gnista kennt, denn deinen Endpoint kennst du. Ein Kontextfenster, das der Agent selbst meldet, gewinnt trotzdem.
  • Kein Badge erscheint, wenn das Modell vom selben Anbieter ist wie der Agent, etwa Claude Code mit Claude.

Weitere Beispiele

Ein Modell in LM Studio, kostenlos, mit Gnistas eigenem Qwen-Icon:

{ "version": 1, "match": ["qwen2.5-coder-32b"], "price": "free", "context": 32768 }

Der Endpoint deiner Firma, mit eigenem Icon und Preis, neben acme.svg:

{
  "version": 1,
  "maker": "Acme",
  "match": ["acme-coder"],
  "icon": "acme.svg",
  "motion": "breathe",
  "price": { "input": 0.5, "output": 1.5 },
  "context": 200000
}

Wo es erscheint

Das Badge erscheint bei Agents, die ihr Modell melden, etwa Claude Code, Codex, OpenCode, Antigravity und Droid, und bei deinen eigenen Tools, die model schicken (eigene Agents). Kosten und Kontext erscheinen bei Agents, deren Sitzungen Gnista liest; Einstellungen ▸ Agents zeigt, welche das sind.