Skip to main content
Glama

Bench Studio

Hören Sie auf, die Hülle zu mieten. Besitzen Sie die kreative Ebene.

Ein lokales erstes Kreativstudio für Bilder, Videos, Websites, gestaltete PDFs und KI-Agenten-Workflows.

MIT Lizenz Node 22.5+ 73 Modell-Routen 5 Anbieter MCP bereit

Schnellstart · Tipps · So funktioniert es im Detail · Was sich geändert hat und warum · Sicherheit

Bench Studio Modellkatalog

Bench Studio vereint 73 kuratierte Bild- und Video-Routen von 5 Anbietern, Prompt-Verfeinerung, fähigkeitsbewusste Steuerung, lokale Dateiverwahrung und ein transparentes Kostenbuch hinter einer Oberfläche. Dasselbe System steht Claude, Codex, Cursor und anderen kompatiblen Clients über MCP zur Verfügung.

Ihre Schlüssel bleiben serverseitig auf Ihrem Rechner. Ihre Prompts sind bearbeitbar, bevor Sie ausgeben. Ihre Ausgaben werden lokal gespiegelt. Ihre Kosten werden in echten Einheiten erfasst, anstatt in mysteriösen Credits zu verschwinden.

[!HINWEIS] Dies ist die bereinigte öffentliche Distribution. Sie wird ohne Generierungsverlauf, Uploads, private Datenbank, persönliche Pfade, Anmeldeinformationen oder lokale Build-Artefakte ausgeliefert. Ihr Archiv beginnt leer.

📖 Guia de uso

Vollständiger Leitfaden (Landing + Schritt-für-Schritt): https://inematds.github.io/bench-studio-en/guia/

Related MCP server: omnicinema-mcp

Warum es das gibt

Die meisten kreativen KI-Produkte kombinieren fünf nützliche Teile – Modellzugriff, Prompt-Verfeinerung, Routing, Speicherung und Abrechnung – und verstecken dann die Nähte hinter einem monatlichen Plan. Bench behält den Komfort, macht aber jede Naht überprüfbar.

Stattdessen…

Bench gibt Ihnen…

Die Modell-Roadmap eines Anbieters

Ein kuratiertes Register, das Sie erweitern oder ersetzen können

Ein generisches Upload-Feld

Steuerungen, die von den akzeptierten Eingaben jedes Endpunkts abgeleitet sind

Eine unsichtbare Prompt-Umschreibung

Einen bearbeitbaren modellspezifischen Entwurf vor dem Absenden

Abstrakte Credits

Eine Kostenvoranschlag und aufgezeichnete Ausgaben-Metadaten

In einer Konto-Galerie gefangene Ausgaben

Lokal gespiegelte Dateien und dauerhafte Metadaten

Ein reiner UI-Workflow

Dieselben Fähigkeiten über die UI und MCP

Warten auf die nächste Funktion

Quellcode, den Sie einsehen, ändern und erweitern können

Bench besitzt nicht die zugrunde liegenden Modelle. Es gibt Ihnen das Eigentum an der portablen Schicht, die Ihre Ideen, Werkzeuge, Anbieter, Dateien und Kosten verbindet.

In drei Minuten ausführen

Was Sie brauchen

Erforderlich

  • Node.js 22.5+; Node 24 empfohlen, da Bench node:sqlite verwendet.

  • npm.

Das ist die ganze Liste. Jeder Anbieter ist optional und degradiert eigenständig: Ein fehlender Schlüssel zeigt diese Modelle als nicht verfügbar an, mit dem Grund und der Behebung – das Studio startet trotzdem. Bringen Sie mindestens einen davon mit, um etwas zu generieren:

Anbieter

Modelle

Kosten

Was Sie brauchen

fal.ai

37

Dollar, Live-Preise

FAL_KEY

Kling

26

Plan-Credits

npm i -g @klingai/cli-global && kling login

Agnes AI

4

null

AGNES_API_KEY

kie.ai

4

Credits

KIE_API_KEY

inemaimg

2

null (Ihre GPU)

Ein laufender lokaler Server

Optional, aber lohnenswert

  • Ein Google AI Studio oder OpenRouter Schlüssel zur Prompt-Verfeinerung. Ohne einen Verfeinerer wird Ihr Prompt roh gesendet – was Agnes ablehnt, da es Englisch erfordert.

  • Google Chrome, für PDF-Druck und visuelle Vorschau.

  • Ein angemeldeter Codex oder Claude Code, für agentengesteuerte Website- und Dokumenterstellung.

1. Klonen und installieren

git clone https://github.com/inematds/bench-studio-en.git
cd bench-studio-en
npm install

2. Serverseitige Anmeldeinformationen hinzufügen

cp .env.example .env

Füllen Sie aus, was Sie haben. .env.example dokumentiert alle 19 Variablen – was jede freischaltet, wie sie abgerechnet wird und wo der Schlüssel erstellt wird. Schlüssel bleiben serverseitig und werden niemals an den Browser gesendet; .env ist in gitignored und wird mit Berechtigungen nur für den Besitzer geschrieben.

Lesereihenfolge, zuerst die höchste:

exported in your shell  >  .env in the project  >  ~/.env

Oder überspringen Sie die Datei ganz: Starten Sie das Studio und verwenden Sie die Schaltfläche Konfig in der oberen rechten Ecke. Es zeigt jede Einstellung – vorhanden oder fehlend, woher der Wert kommt und die letzten 4 Zeichen –, lässt Sie jeden Anbieter testen und schreibt .env für Sie. Aus Sicherheitsgründen akzeptiert es nur Schreibvorgänge von dem Rechner, auf dem das Studio läuft.

3. Das Studio starten

npm run dev

Öffnen Sie http://localhost:5200.

Dienst

Adresse

Studio

http://localhost:5200

Lokale API

http://localhost:8787

Gesundheits- und Fähigkeitsübersicht

http://localhost:8787/api/health

Wenn einer der Ports belegt ist:

PORT=8790 BENCH_API_PORT=8790 BENCH_WEB_PORT=5201 npm run dev

Von einem anderen Rechner aus erreichen

Beide Ports binden an Loopback, sodass eine Neuinstallation niemandem außer Ihnen antwortet. Das zu öffnen bedeutet drei Dinge – die Schnittstelle, die auf allen Schnittstellen lauscht, eine Firewall-Regel und die Erinnerung, beides rückgängig zu machen. Ein Befehl erledigt alle drei:

./scripts/remote.sh open      # publish the interface on this machine's IP
./scripts/remote.sh status    # open or closed, and with what protection
./scripts/remote.sh close     # back to local access only

open gibt die Adresse aus, die Sie weitergeben können, und sagt Ihnen dann, dass Sie mit npm run dev neu starten sollen. close macht genau das rückgängig, was open getan hat – es liest eine Zustandsdatei, die zum Zeitpunkt des Öffnens geschrieben wurde, und rät nicht – und lässt die SSH-Regel in Ruhe, weil das Löschen der Regel der Weg ist, sich selbst von seinem eigenen Server auszusperren.

Zwei Flags, die wissenswert sind:

./scripts/remote.sh open --ip 203.0.113.7   # only that address, not the internet
./scripts/remote.sh open --firewall         # also enable ufw (SSH allowed first)

open bietet an, ein Passwort zu setzen, bevor es etwas öffnet. Sagen Sie ja und es übergibt an npm run set-password; drücken Sie die Eingabetaste – oder antworten Sie mit n – und das Studio wird ohne Passwort geöffnet, was der dokumentierte Standard ist. Das Angebot ist da wegen der folgenden Asymmetrie: Dies ist der letzte Moment, in dem das Setzen eines Passworts einen Tastendruck entfernt ist.

Das Passwort kann nicht von dem anderen Rechner aus gesetzt oder geändert werden – nicht einmal, nachdem Sie sich angemeldet haben. POST /api/config/password antwortet mit 403 auf alles, was nicht von Loopback kam, Sitzung oder keine Sitzung, und der Konfigurationsbildschirm sagt dies, anstatt Ihnen ein totes Feld zu zeigen. Diese Regel verhindert, dass jemand, der einen offenen Port findet, ein eigenes Passwort setzt und Sie aus Ihrem eigenen Studio aussperrt. Also:

npm run set-password    # on the machine running the studio, over SSH or at the keyboard

Was open bewusst nicht tut: die API veröffentlichen. Port 8787 bleibt auf Loopback (BENCH_API_HOST), sodass der Endpunkt, der Dateien schreibt und Geld ausgibt, nur über die Schnittstelle auf dem Rechner selbst erreichbar ist.

Dies ist eine Testhaltung, keine Bereitstellung. Der Datenverkehr ist einfaches HTTP und im Transport lesbar. Für alles, was bestehen bleibt, lesen Sie den nächsten Abschnitt.

Es sicher laufen lassen

In grober Reihenfolge dessen, was Sie tatsächlich schützt:

  1. Setzen Sie ein Passwort, bei der Installation. Auf einem Rechner, der erreichbar sein wird, machen Sie es zum Teil der Einrichtung – npm install, dann npm run set-password, dann ./scripts/remote.sh open. Wenn Sie es in dieser Reihenfolge tun, ist das Studio nie ohne Passwort geöffnet, und Sie brauchen nie den Passwortbildschirm, den Sie sowieso nicht über das Netzwerk verwenden können.

  2. Halten Sie die API auf Loopback. Der Standard. BENCH_API_HOST=0.0.0.0 ist ein Opt-out, für das Sie einen Grund haben sollten.

  3. Schränken Sie ein, wer es erreichen kann. ./scripts/remote.sh open --ip <ihre-ip> schlägt einen offenen Port. Eine Tailscale-Adresse schlägt beide und benötigt überhaupt keinen Port.

  4. Schalten Sie die Firewall ein. ./scripts/remote.sh open --firewall erlaubt SSH zuerst, dann aktiviert es ufw. Überprüfen Sie auch das eigene Firewall-Panel Ihres VPS-Anbieters – es sitzt vor ufw und antwortet niemandem auf dem Rechner.

  5. Beenden Sie HTTPS davor. Richten Sie eine Domain auf den Rechner aus und setzen Sie nginx oder Caddy davor mit einem Let's Encrypt-Zertifikat, das /api, /media, /previews, /inputs und /projects an 127.0.0.1:8787 weiterleitet und npm run build's dist/ als die Website bereitstellt. Schließen Sie dann 5200 vollständig. Wenn Sie dies tun, lassen Sie den Proxy X-Forwarded-For senden: Die reine Rechnerregel unten hängt davon ab.

  6. Führen Sie es als eigenen Benutzer aus, nicht als root, unter einer systemd-Einheit, mit .env bei 600 – so schreibt es das Studio.

  7. Schließen Sie es, wenn der Test endet. ./scripts/remote.sh close. Eine Offenlegung, die Sie vergessen haben, ist die, die Sie Anbieter-Credits kostet.

Tipps, die Ihnen Zeit und Geld sparen

Beginnen Sie mit den kostenlosen Routen. Agnes (4 Modelle) und inemaimg (2, auf Ihrer eigenen GPU) kosten nichts. Im Modellkatalog schaltet der Schalter Keine Kosten genau diese Gruppe ein. Verwenden Sie sie, um den passenden Prompt zu finden, und geben Sie dann für das Modell aus, das ihn am besten rendert.

Kuratieren Sie den Katalog einmal. 73 Modelle sind viel zu scrollen. Filtern Sie nach Anbieter, und verwenden Sie dann "Diese N deaktivieren", um auszublenden, was Sie nicht verwenden werden. Kuratierung ist eine Präferenz, keine Sperre: Sie blendet Modelle aus den Auswahlen aus, aber ein Wiederholen eines alten Ergebnisses funktioniert trotzdem. Das Löschen von data/catalog-prefs.json stellt den Werkszustand wieder her.

Verfeinern Sie, bevor Sie ausgeben. Der verfeinerte Prompt ist vor dem Absenden bearbeitbar. Lesen Sie ihn. Es ist der billigste Ort, um ein Missverständnis zu erkennen – nachdem Sie abgesendet haben, kostet die Behebung einen weiteren Durchlauf.

Halten Sie zwei Verfeinerer konfiguriert. Die Kette ist Gemini → OpenRouter → lokaler Codex. Mit einem einzigen bringt ein erschöpftes Kontingent das gesamte Studio zum Stillstand: Der Prompt geht roh durch, und Agnes lehnt Nicht-Englisch mit einem Fehler ab, der wie ein Agnes-Problem aussieht, es aber nicht ist.

Wiederholen statt neu tippen. Jedes Ergebnis trägt das Modell, die Steuerungen, den verfeinerten Prompt, die ursprüngliche Idee und Anhänge. Wiederholen stellt alles wieder her, sodass Sie eine Sache anpassen können, ohne für eine Neuschreibung zu bezahlen.

Dasselbe Modell kann auf zwei Routen existieren. Veo, Nano Banana, gpt-image und gemini-image erscheinen über mehr als einen Anbieter – mit unterschiedlichen Rechnungen (Dollar auf fal, Plan-Credits auf Kling). Der Anbieter wird neben dem Namen in der Auswahl angezeigt; es ist eine echte Wahl, kein Duplikat.

Kling wiederholt nie automatisch, absichtlich. Jeder Kling-Job wird berechnet, einschließlich Fehlschlägen. Nichts wird hinter Ihrem Rücken erneut eingereicht.

Beobachten Sie die Festplatte, nicht die CPU. Jede Datei wird lokal gespiegelt, weil Anbieter-URLs ablaufen – 24h bei Kling, temporär bei Agnes. Ungefähr 1,3 MB pro Bild und 0,7–5 MB pro Video. Das Studio läuft im Leerlauf mit 274 MB RAM.

Bauen Sie eine Website? Bevorzugen Sie einen Agenten. Codex und Claude Code schreiben die Dateien selbst und beheben ihre eigenen Fehler. Die Modell-Engines (lokales Qwen, OpenRouter) geben nur Text zurück, benötigen also keine Sandbox und kosten nichts – aber sie benötigen mehr Aufsicht.

Richten Sie den Builder auf eine Referenz aus, die Sie besitzen. Legen Sie eine eigene Website oder PDF in Config fest, und der Builder kalibriert seine Verarbeitung daran – Tokens, Schriftarten, Palette, Radien. Er kopiert niemals Marke, Kopie, Struktur oder Dateien.

Was Sie erstellen können

Arbeitsbereich

Was er liefert

Erstellen

Bilder und Videos mit modellbewussten Referenzen, Steuerelementen, bearbeitbaren Prompt-Entwürfen, Zitaten, Fortschritt und Inline-Ergebnissen.

Modellkatalog

Kuratierte Routen für Text-zu-Bild, Bildbearbeitung, Text-zu-Video, Bild-zu-Video und Referenzvideo.

Ergebnisse

Ein lokales Archiv mit dem übermittelten Prompt, Modell, der Anbieter-URL, der lokalen Datei und den aufgezeichneten Kosten.

Websites

Originale statische Seiten mit bearbeitbarer Quelle, einer lokalen Vorschau und einem herunterladbaren Paket.

Dokumente

Gestaltete PDFs, unterstützt durch bearbeitbares HTML, Chromium-Druck und Überlauf-Prüfung.

Verbinden

Maschinell korrigierte MCP-Konfiguration und eine portable Fähigkeit für kompatible Agenten.

Bench Studio Arbeitsbereich

Das System in 30 Sekunden

flowchart LR
    Idea["Your idea"] --> Client{"How do you want to work?"}
    Client -->|Create manually| UI["React studio"]
    Client -->|Delegate to an agent| MCP["MCP server"]

    UI --> API["Local API"]
    MCP --> API

    API --> Prompt["Editable prompt refinement"]
    API --> Router["Capability-aware router"]
    API --> Quote["Quote and pricing engine"]

    Prompt --> Router
    Router --> Prov["fal · Kling · Agnes · kie · inemaimg"]
    Prov --> Mirror["Local media mirror"]

    API --> Projects["Website and PDF runner"]
    Projects --> Archive["Inspectable project source"]

    Quote --> Ledger[("Local SQLite ledger")]
    Mirror --> Ledger
    Archive --> Ledger

Der Browser erhält niemals Anbietergeheimnisse. Er kommuniziert mit einem lokalen Dienst, der modellspezifische Nutzlasten validiert, Anmeldeinformationen besitzt, Fortschritte streamt, Artefakte spiegelt und dauerhafte Metadaten aufzeichnet.

Wählen Sie die richtige Verbindungsstrategie

Bench verwendet einen Aggregator, weil ein Authentifizierungs- und Warteschlangenmodell der praktische Weg ist, einen großen, austauschbaren Katalog zu unterstützen. Das ist nicht die einzig gültige Architektur.

flowchart TB
    Need{"What do you actually need?"}
    Need -->|One stable model| Direct["Use its first-party API"]
    Need -->|Many interchangeable models| Bench["Use Bench + an aggregator"]

    Direct --> D1["Potentially lowest route price"]
    Direct --> D2["One integration per provider"]
    Direct --> D3["Best for a narrow workflow"]

    Bench --> B1["One authentication and queue model"]
    Bench --> B2["Consistent controls and records"]
    Bench --> B3["Best for a flexible studio"]

Ein Aggregator ist nicht immer der günstigste Weg. Bench macht diesen Kompromiss explizit, anstatt ihn als „Nullaufschlag“ zu bezeichnen.

Eine Anfrage, von der Idee bis zur Quittung

sequenceDiagram
    participant U as User or agent
    participant B as Bench
    participant R as Capability router
    participant F as fal.ai
    participant L as Local archive

    U->>B: Describe the result
    B->>R: Select a model and inspect accepted inputs
    R-->>B: Controls, limits, and pricing unit
    B-->>U: Editable prompt and preflight estimate
    U->>B: Approve generation
    B->>F: Validated model-specific payload
    F-->>B: Queue progress and output URL
    B->>L: Mirror media and write metadata
    B-->>U: Local result, provider result, and recorded cost

Bench zeichnet auf, was übermittelt wurde. Es behauptet nie, dass eine angehängte Referenz ein Ergebnis allein deshalb beeinflusst hat, weil eine API das Feld akzeptiert hat; kreative Treue erfordert weiterhin eine menschliche Überprüfung.

Modellintelligenz, kein Dropdown voller URLs

Jeder Endpunkt hat andere Annahmen. Manche akzeptieren ein Bild, manche eine Liste, manche benötigen ein Startbild, und andere akzeptieren keine Referenzen. Bench hält die Entdeckung von der Produktionszulassung getrennt:

flowchart LR
    Catalog["Live provider catalog"] --> Discover["Discovery snapshot"]
    Discover --> Evidence["Schema and pricing evidence"]
    Evidence --> Review{"Safe for production?"}
    Review -->|Not yet| Observe["Keep observable"]
    Review -->|Yes| Registry["Curated registry"]
    Registry --> UI["Relevant UI controls"]
    Registry --> MCP["Validated MCP inputs"]

Dies verhindert, dass ein neu veröffentlichtes, umbenanntes oder unzureichend spezifiziertes Modell einen bezahlten Workflow stillschweigend zerstört.

Prompt-Verfeinerung bleibt sichtbar

  1. Schreiben Sie eine normale kreative Anfrage.

  2. Bench fügt die Struktur hinzu, die das ausgewählte Modell wahrscheinlich versteht.

  3. Überprüfen Sie den umgeschriebenen Prompt als bearbeitbaren Entwurf.

  4. Ändern oder ablehnen Sie ihn, bevor Sie etwas ausgeben.

  5. Speichern Sie den endgültig übermittelten Prompt zusammen mit dem Ergebnis.

Wenn kein Google-Schlüssel konfiguriert ist, wird der ursprüngliche Prompt unverändert durchgereicht und die Oberfläche meldet, dass die Verfeinerung deaktiviert ist.

Kostentransparenz ohne Marketing-Mathematik

Vor der Übermittlung schätzt Bench die Kosten anhand der Preiseinheit des Modells und der angeforderten Parameter. Nach Abschluss zeichnet es den berechneten Betrag auf, wenn der Anbieter ausreichende Belegdaten bereitstellt.

flowchart LR
    Params["Model + duration + resolution + quantity"] --> Estimate["Preflight estimate"]
    Estimate --> Approval["Explicit approval"]
    Approval --> Run["Provider execution"]
    Run --> Record["Recorded cost + confidence"]

Preise ändern sich. Schätzungen sind keine Garantien. Bench unterscheidet zwischen geschätzten, gemessenen und aufgezeichneten Werten, anstatt alle drei als dieselbe Tatsache darzustellen.

Ihre lokale Datengrenze

Das Repository beginnt ohne data/-Verzeichnis. Bench erstellt es beim ersten Start:

data/
├── bench.db              # generations, assets, spend, and projects
├── inputs/               # mirrored uploads
├── outputs/              # mirrored generations
├── previews/             # local video posters
└── projects/             # website and document source files

Das gesamte Verzeichnis wird von Git ignoriert. Das Löschen eines Ergebnisses entfernt dessen lokalen Datenbankeintrag und die gespiegelten Dateien. Es behauptet nicht, Kopien zu löschen, die von einem externen Modellanbieter aufbewahrt werden.

flowchart LR
    Browser["Browser UI\nno provider keys"] --> Local["Loopback API\nkeys + validation"]
    Agent["Local MCP client"] --> Local
    Local --> Provider["External model provider"]
    Local --> Disk["Local SQLite + files"]

Verwenden Sie es mit Claude, Codex oder Cursor

Starten Sie Bench, öffnen Sie Verbinden, wählen Sie Ihren Client aus und kopieren Sie die generierte Konfiguration. Bench fügt den korrekten absoluten Pfad für die aktuelle Maschine ein; das Repository selbst wird ohne das Home-Verzeichnis eines Benutzers ausgeliefert.

Der MCP-Server stellt elf fokussierte Werkzeuge bereit für:

  • das Entdecken von Modellen und das Inspizieren von Fähigkeitsverträgen;

  • das Hochladen lokaler Referenzmedien;

  • das Generieren von Bildern und Videos;

  • das Lesen von Ergebnissen, Vorschauen und Ausgaben;

  • das Erstellen und Abfragen von Website- oder Dokumentprojekten;

  • das Abrufen lokaler Projektartefakte.

Die gebündelte Fähigkeit in integrations/skills/bench-studio/ bietet Urteilsvermögen und Workflow-Anleitung. MCP stellt die Live-Ausführungsschicht bereit.

Projektübersicht

bench-studio-public/
├── src/                     # React interface
├── server/
│   ├── server.mjs           # loopback API and orchestration
│   ├── mcp.mjs              # stdio MCP server
│   ├── registry.json        # curated production roster
│   ├── capabilities.json    # accepted-input contracts
│   ├── profiles/            # prompt and pricing intelligence
│   └── mcp-app/             # embedded MCP interface
├── integrations/
│   ├── skills/bench-studio/ # portable agent workflow skill
│   └── macos/               # optional launch-agent templates
├── tests/                   # contracts, persistence, API, a11y, and E2E
├── docs/                    # public README media
├── .env.example             # placeholders only
└── package.json

Dokumentation

Dokument

Was es abdeckt

docs/COMO-FUNCIONA.md

Wie das System intern funktioniert: der Anbietervertrag, die pro Anbieter gemessenen Fallstricke, Kostenklassen, Verfügbarkeit vs. Kuratierung, die Verfeinerungskette, der Builder und das Sicherheitsmodell

docs/ACESSO-REMOTO.md

Fernzugriff und VPS-Einrichtung: warum das Passwort vor dem Port kommt, was remote.sh berührt, Härtungsreihenfolge und was noch offen ist

docs/HISTORICO.md

Alles, was auf dem ursprünglichen Kit aufgebaut wurde, und jeder gefundene Fehler – getrennt nach denjenigen, die bereits vorhanden waren, und denen, die im Laufe der Zeit eingeführt wurden

CHANGELOG.md

Version für Version

.env.example

Alle 19 Einstellungen, was jede freischaltet und wo der Schlüssel zu finden ist

SECURITY.md

Bedrohungsmodell und Meldung

Nützliche Befehle

Befehl

Zweck

npm run dev

Startet die lokale API und die Weboberfläche.

npm run build

Erstellt die Produktions-Webanwendung.

npm run registry

Erstellt das kuratierte Modellregister neu.

npm run capabilities

Erstellt das Fähigkeitsmanifest neu.

npm run catalog:sync

Aktualisiert die Anbietererkennung und Preisnachweise.

npm run mcp

Startet den stdio MCP-Server.

npm run set-password

Setzt oder ändert das Studio-Passwort (-- --remove löscht es).

./scripts/remote.sh open

Veröffentlicht die Oberfläche auf der IP dieser Maschine, inklusive Firewall-Regel.

./scripts/remote.sh close

Macht es rückgängig – zurück zum rein lokalen Zugriff.

./scripts/remote.sh status

Offen oder geschlossen, auf welchem Port, mit oder ohne Passwort.

npm run test:contracts

Führt API-, Persistenz- und Modellvertragstests durch.

npm run test:mcp

Führt einen Smoke-Test für MCP-Erkennung und Medienverhalten durch.

npm run test:e2e

Führt Browser-Durchläufe und Barrierefreiheitsprüfungen durch (benötigt einmalig npx playwright install chromium).

npm run test:release

Führt das vollständige Release-Gate durch.

Sicherheit und Privatsphäre

Standardkonfiguration. Beide Ports binden an Loopback und es gibt kein Passwort – die Kommunikation mit dem eigenen Rechner sollte keines erfordern. Nichts verlässt Ihren Rechner außer den Aufrufen, die Sie an die von Ihnen konfigurierten Anbieter tätigen.

Schlüssel. Werden serverseitig gelesen, niemals an die UI zurückgegeben. Der Konfigurationsbildschirm zeigt Vorhandensein, Herkunft und die letzten 4 Zeichen – niemals den Wert. .env wird mit Berechtigungen nur für den Eigentümer (600) geschrieben und ist in der Git-Ignorierliste.

Optionales Passwort. Setzen Sie BENCH_PASSWORD und die API erfordert eine Sitzung:

npm run set-password              # asks for it, without echoing
npm run set-password -- --remove

Gespeichert als scrypt-Hash, sodass niemand Ihr Passwort aus der Datei lesen kann. Das Setzen oder Ändern meldet alle anderen sofort ab. Vergessen? Löschen Sie die Zeile aus .env und starten Sie neu – das ist der Wiederherstellungspfad, absichtlich, denn wer diese Datei hat, hat bereits die darin enthaltenen Schlüssel.

Das Passwort schützt die API und Ihre generierten Dateien. Die Oberflächenhülle wird weiterhin an jeden ausgeliefert, der den Port erreicht, aber ohne Sitzung zeigt sie nichts. Auch die Hülle zu verstecken, ist Aufgabe eines Reverse-Proxys, nicht dieses Prozesses.

Das Schreiben von Einstellungen ist maschinengebunden. Selbst mit einer gültigen Sitzung wird POST an die Konfigurationsendpunkte vom Netzwerk aus verweigert – das Ändern von Schlüsseln erfordert den Aufenthalt an der Maschine. Dies überlebt den Dev-Proxy: Die API vertraut einem weitergeleiteten Ursprung nur, wenn der Socket bereits Loopback ist, sodass eine Anfrage aus dem Netzwerk keinen vortäuschen kann.

Freigabe. ./scripts/remote.sh open veröffentlicht die Oberfläche und öffnet den Port; close macht beides rückgängig. Siehe Erreichen von einem anderen Rechner und Sicher online lassen. Bevorzugen Sie Tailscale oder einen passwortgeschützten Reverse-Proxy gegenüber einem offenen Port.

  • Generierte Medien können von einem externen Anbieter gemäß dessen Bedingungen weiterhin aufbewahrt werden.

  • Die Erstellung von Websites und Dokumenten kann einen lokal authentifizierten Codierungsagenten aufrufen. Überprüfen Sie generierten Quellcode, bevor Sie ihn bereitstellen.

Lesen Sie SECURITY.md, bevor Sie den Dienst freigeben, modifizieren oder weiterverteilen.

Ehrliche Grenzen

  • Bench ist ein lokales Einzelbenutzer-Tool – kein gehostetes Multi-Tenant-SaaS-Produkt.

  • Das Register ist bewusst kuratiert; die Katalogpräsenz garantiert keine Produktionszulassung.

  • Akzeptierte Eingaben garantieren keine kreative Treue.

  • Die Website-Ausgabe ist von Natur aus statisch.

  • Die PDF-Erstellung hängt von einer lokalen Chrome-Installation ab.

  • Modellverfügbarkeit und Preise können sich nach einer Katalogsynchronisation ändern.

  • Das Besitzen der Schicht bedeutet, ein kleines Stück Software zu warten.

Release-Vertrauen

Das Release-Gate umfasst Produktions-Builds, API- und Datenbankverträge, MCP-Erkennung, Browser-Durchläufe, Barrierefreiheit, responsives Verhalten, Fehlerzustände, Modellübergänge und visuelle Schnappschüsse.

npm run test:release

Lizenz

Bench Studio Public ist unter der MIT-Lizenz verfügbar.


Die Modelle erledigen die Schwerstarbeit. Bench macht die Schicht um sie herum sichtbar – und zu Ihrer.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for Luma Dream Machine AI video generation

  • MCP server for Google Veo AI video generation

  • MCP server for Wan AI video generation

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/inematds/bench-studio-en'

If you have feedback or need assistance with the MCP directory API, please join our Discord server