DokumentationCode
Verfügbar ab dem Builder-Tarif

Kommandozeile und Schlüssel

Holen Sie die Definition Ihres Projekts auf die Festplatte, starten Sie die App auf Ihrem Rechner und veröffentlichen Sie sie zurück, ohne das Terminal zu verlassen.

Kosten in Credits: kein Schritt dieses Leitfadens verbraucht KI-Credits.

Die Fabapp-Kommandozeile ist dasselbe Projekt, das Sie im Studio bauen, nur von woanders aus gesehen. Sie ist kein eigenes Produkt und keine andere App: pull holt die Definitionsdateien in Ihren Ordner, push schickt zurück, was Sie bearbeitet haben, und dev startet die App lokal auf derselben Vorlage, mit der die Plattform veröffentlicht.

Sie kommt zusammen mit dem MCP-Server, über den Claude Code, Cursor und andere Assistenten in Ihrem Projekt lesen und schreiben.

Was Sie brauchen

  • Node 20 oder neuer. Prüfen Sie mit node --version.
  • Den Builder-Plan oder höher. Die Kommandozeile ist ab Builder freigeschaltet. Wenn Ihr Plan sie noch nicht enthält, zeigt der Bildschirm Schlüssel und CLI, was sich ändert, und führt direkt zum Abschluss.

Mehr nicht. Das Werkzeug hat keine einzige Abhängigkeit: es hält eine Zugangsberechtigung und spricht mit Ihrem Konto, und jedes Paket im Graphen könnte beides erreichen.

Diesen Rechner autorisieren

Sie erstellen nie von Hand einen Schlüssel. Das übernimmt der Anmeldebefehl:

npx @fabappai/cli login

Er öffnet den Browser auf einer Fabapp-Seite mit einem kurzen Code. Sie prüfen, ob der Code auf dem Bildschirm derselbe ist wie im Terminal, autorisieren, und der Rechner ist verbunden. Auf einem Server oder in CI, ohne Browser, nutzen Sie --no-open und öffnen die Adresse selbst.

Das ist der Geräte-Ablauf, und es gibt ihn aus einem sehr konkreten Grund: ein Schlüssel, den man kopiert und einfügt, wandert durch Orte, durch die Schlüssel nicht wandern sollten, etwa die Shell-Historie, einen Chat-Kanal oder eine Konfigurationsdatei, die in einem Repository landet. Hier entsteht der Schlüssel in Ihrem Rechner und wird nie angezeigt.

Wo die Zugangsberechtigung liegt

Im Schlüsselbund des Betriebssystems. Hat der Rechner keinen, landet sie in einer Datei mit 0600, und der Befehl sagt das. Ein Werkzeug, das stillschweigend den schlechteren Ort wählt, bringt Ihnen bei, es sei immer sicher.

Lese- oder Schreibrecht

Standardmäßig fragt die Anmeldung nach Lesen und Schreiben. Für einen Rechner, der nur nachsehen muss, fragen Sie weniger:

npx @fabappai/cli login --scopes "read"

Eine Berechtigung nur zum Lesen sieht die Schreibbefehle gar nicht, weder im Terminal noch im MCP-Server. Eine Operation anzukündigen, die mit 403 antwortet, ist schlimmer, als sie nicht anzukündigen: der Assistent versucht es, scheitert und versucht es erneut mit anderen Argumenten, weil die Ablehnung wie ein Problem der Anfrage aussieht und nicht wie eines der Berechtigung.

Das erste Projekt auf der Festplatte

npx @fabappai/cli link <projekt-id>
npx @fabappai/cli pull

link bindet den aktuellen Ordner an ein Projekt und prüft Ihren Zugriff, bevor irgendetwas geschrieben wird. pull holt die Definitionsdateien: fab.schema.json (die Entitäten und ihre Felder), fab.automations.json, fab.settings.json, fab.connectors.json und die fab.config.json jedes Bildschirms.

Bearbeiten, und zurückschicken:

npx @fabappai/cli push

Um die App vor dem Veröffentlichen auf Ihrem Rechner zu starten:

npx @fabappai/cli dev

Und um zu veröffentlichen, was Sie bearbeitet haben:

npx @fabappai/cli deploy

Was sie absichtlich nicht tut

Sie löscht nicht. Weder bei pull noch bei deploy. Eine Datei, die aus Ihrem Ordner verschwunden ist, wird gemeldet, nie aus der App entfernt. Ihre Kopie kann gegenüber dem Server veraltet sein (die KI könnte die App inzwischen im Studio bearbeitet haben), und dort wegen einer Abwesenheit hier zu löschen zerstört Arbeit, um deren Verwaltung uns niemand gebeten hat.

Sie überschreibt nicht, was Sie bearbeitet haben. dev baut den Arbeitsbereich einmal auf; bei späteren Läufen vergleicht es und warnt, wenn die Vorlage sich geändert hat, statt darüberzugehen. Das Neuaufbauen ist Ihre Entscheidung (--reset), und es sagt Ihnen, dass dabei Ihre Änderungen verloren gehen.

Sie sendet nicht, was nicht Ihnen gehört. deploy schickt nur, was Sie geändert haben. Die Komponenten der Plattform, das SDK und das Gerüst der App bleiben, wo sie sind.

Sie hält keine Integrations-Zugangsdaten. fab.connectors.json und fab.integrations.json sind nur lesbar: sie sagen, was das Projekt verbunden hat, damit ein Assistent weiß, dass es existiert und welche Operationen er rufen kann, und nie die Zugangsdaten selbst. Verbinden und Erneuern passiert auf der Plattform.

Mit Claude Code und anderen Assistenten

Der MCP-Server nutzt die Zugangsberechtigung, die login bereits abgelegt hat. Er fragt nie nach einem Geheimnis und zeigt nie eines.

{ "mcpServers": { "fabapp": { "command": "npx", "args": ["-y", "@fabappai/cli", "mcp"] } } }

Das wichtigste Werkzeug ist fabapp_read_definition: ohne das Schema zur Hand antwortet eine falsche Modell-ID mit 404 und ein erfundenes Feld mit 422. Es ist das Erste, was ein Agent aufrufen sollte.

Verbundene Rechner sehen und widerrufen

Öffnen Sie im Panel Profil und gehen Sie zu Schlüssel und CLI. Der Bildschirm listet jeden autorisierten Rechner mit dem Namen, den er gemeldet hat, der erhaltenen Berechtigung und der letzten Nutzung.

Der Widerruf wirkt sofort und serverweit: der widerrufene Rechner hört beim nächsten Aufruf auf zu funktionieren, auch wenn die Zugangsberechtigung noch auf seiner Festplatte liegt. Umgekehrt gilt das nicht: logout auf einem Rechner vergisst die Berechtigung dort, und sie bleibt auf dem Server gültig, bis sie hier widerrufen wird. Wenn ein Notebook verschwindet, klärt das dieser Bildschirm, nicht logout.

Wenn etwas nicht funktioniert

„Ihr Plan enthält die Kommandozeile nicht.“ Die Anmeldung stellt erst ab Builder eine Berechtigung aus. Der Bildschirm Schlüssel und CLI nennt den nötigen Plan.

Der Code im Browser stimmt nicht mit dem im Terminal überein. Autorisieren Sie nicht. Schließen Sie die Seite und führen Sie login erneut aus: beide Codes stammen aus derselben Anfrage und weichen nur ab, wenn Sie auf eine Autorisierung schauen, die nicht Ihre ist.

push beschwert sich über eine Datei, die die App nicht überschreiben kann. Es sagt, welche. Das ist besser, als mit einer 200 zu speichern und nichts zu ändern.

Eine andere API. FABAPP_API_URL ändert die Basisadresse, standardmäßig https://api.fabapp.ai.

Fabapp öffnen
Verwandt
Das Studio kennenlernenCredits: was sie verbraucht und was nicht