Die Cord-CLI: Ihre Integration startklar aus dem Terminal

Was die Cord-CLI 2.1 tut: im Browser anmelden, Ihr Projekt integrieren, Ihre Apps verbinden, den MCP in Ihre Agenten bringen und Webhooks auf localhost testen.

Die Integration einer Zahlungsplattform beginnt meist gleich: im Dashboard den Bereich mit den Schlüsseln suchen, eine lange Zeichenkette in eine .env kopieren, die Route schreiben, die die Webhooks empfängt, deren Signatur prüfen, einen Tunnel öffnen, um sie auf Ihrem Rechner zu testen, und alles wiederholen, sobald Sie den Computer wechseln. Bei Cord sollte das ein einziger Befehl sein:

npx @flouviahq/cli

Gestern Abend haben wir Version 2.1 von @flouviahq/cli veröffentlicht. Dieser Artikel zeigt Bildschirm für Bildschirm, was die CLI tut. Die Bilder sind originalgetreue Nachbildungen des echten Assistenten: dieselben Texte, Farben und Schritte, die Sie in Ihrem Terminal sehen werden.

Beim Start weiß der Assistent bereits, wo er ist: der Ordner, das Framework und die Apps, die Ihr Projekt nutzt.

Ein Assistent im Vollbild

Ohne Befehl öffnet die CLI einen Assistenten, der das ganze Terminal belegt. Bevor er etwas anfasst, liest er Ihr Projekt: Er erkennt Next.js (App Router und Pages Router), Astro, Express, Laravel, Django, Flask und FastAPI und sagt Ihnen, was er integrieren wird. Im Menü können Sie das Framework ändern, die genaue Liste der geplanten Schritte ansehen oder Daten und Datenschutz öffnen, bevor Sie fortfahren.

Er braucht ein Terminal von mindestens 80 mal 28 Zeichen; mit --simple öffnet sich die Version ohne Vollbild. Er spricht Spanisch, Englisch, Portugiesisch, Französisch und Deutsch, je nach Ihrem System oder der Sprache, die Sie mit CORD_LANG festlegen. Und alles, was der Assistent tut, steht weiterhin als eigenständige Befehle für Skripte und CI zur Verfügung, jeder mit --json.

Anmeldung im Browser, ohne Schlüssel zu kopieren

Um Ihr Konto zu verbinden, öffnet das Terminal Ihren Browser auf der Seite zum Autorisieren. Dort wählen Sie die Organisation, sehen, dass der Assistent nur im Testmodus arbeitet, und legen fest, was der Schlüssel Ihres Projekts darf: fünf Ressourcen (Produkte, Kunden, Angebote, Webhooks und Elements), jeweils ohne Zugriff, mit Lese- oder mit Schreibzugriff. Empfohlen ist das Minimum, das die Dateien brauchen, die er anlegen wird: Ihren Katalog lesen sowie Angebote und die Konfiguration von Elements schreiben.

Sie klicken auf Assistenten autorisieren, Cord bestätigt Ihre Identität, und das Terminal verbindet sich selbstständig. Kein Code zum Vergleichen, kein Schlüssel zum Einfügen.

Das Terminal wartet; im Browser wählen Sie die Organisation und die Berechtigungen des Projektschlüssels.

Wie es intern funktioniert

Die Rückkehr zum Terminal folgt dem Muster für native Apps mit OAuth (RFC 8252) plus PKCE (RFC 7636). Das Terminal öffnet einen zufälligen Port auf 127.0.0.1, erzeugt einen code_verifier, der Ihren Rechner nie verlässt, und schickt Cord nur dessen S256-Hash, zusammen mit einem state. Wenn Sie autorisieren, leitet Cord den Browser mit einem Einmalcode zurück zu 127.0.0.1/callback, und das Terminal löst ihn mit dem Verifier ein.

Ohne den Verifier ist der Code aus dem Browser wertlos: Wer ihn abfängt, kommt damit nicht an die Schlüssel.

Einige Entscheidungen, die nicht offensichtlich sind:

  • In der Datenbank liegen nur Hashes. Vom Device Code und vom Code aus dem Browser speichert Cord den sha256-Hash, nie den Wert.
  • Die Rückkehr akzeptiert nur Ihren eigenen Rechner. Die Adresse muss 127.0.0.1 oder localhost mit einem Port und dem Pfad /callback sein; jede andere wird schon beim Anfordern der Anmeldung abgelehnt.
  • Die Schlüssel werden genau einmal übergeben. Sie liegen verschlüsselt, bis das Terminal sie abholt, und werden in diesem Moment gelöscht.
  • Zwei Schlüssel mit unterschiedlichen Aufgaben. Der Schlüssel der CLI ist ein eingeschränkter Testschlüssel, läuft nach 90 Tagen ab und nutzt nur Simulatoren, Ereignisse, Konfigurationsvorschläge und den KI-Assistenten; er zählt nicht zum Schlüssellimit Ihres Tarifs. Der Projektschlüssel trägt die Berechtigungen, die Sie gewählt haben, zählt als ein Schlüssel Ihres Tarifs und wird in Ihrer .env.local gespeichert.

Über SSH, in der CI, mit --no-browser oder mit --json gibt es keinen Browser, zu dem es zurückgehen könnte: Dort nutzt die CLI den Code zum Vergleichen, den Device Flow, den wir in cord login ohne kopierte Schlüssel beschrieben haben.

Der Assistent arbeitet vor Ihren Augen

Während er integriert, zeigt der Bildschirm jede Aufgabe mit ihrem Fortschritt, die laufende Aktion und vier Tabs: Status, Protokoll (jede Datei, die er liest oder schreibt, und jeder Befehl, den er ausführt), Neuigkeiten (das Neueste von Cord) und Visualisierung.

Die Aufgaben werden abgehakt, sobald sie fertig sind; was für Ihr Projekt nicht gilt, wird übersprungen, und der Assistent sagt es.

In einem Next.js-Projekt mit App Router geht der Assistent so vor:

  1. Er installiert @flouviahq/node und @flouviahq/elements mit Ihrem Paketmanager (npm, pnpm, yarn oder bun, je nach Ihrem Lockfile).
  2. Er legt app/api/webhooks/cord/route.ts an, das die Signatur jedes Webhooks anhand des Rohinhalts prüft.
  3. Er legt app/api/cord/[...path]/route.ts an, den Proxy, über den Cord Elements mit Cord spricht, ohne Ihren Schlüssel preiszugeben.
  4. Er speichert den Projektschlüssel in .env.local.
  5. Wenn Sie ihm Ihre Website und Ihre Tätigkeit genannt haben, fordert er bei Cord einen Konfigurationsvorschlag an (Produkte, Steuern und Vorlagen), den Sie im Browser freigeben.
  6. Er schreibt CORD-INTEGRACION.md mit den Änderungen.

Drei Regeln, die er nie bricht: Er überschreibt keine vorhandene Datei, er schreibt Schlüssel nur in eine Umgebungsdatei, die git ignoriert, und er ändert die übrigen Zeilen Ihrer .env nicht.

Die KI, die integriert – und ihre Grenzen

Version 2.1 bringt einen Agenten, der Ihr Projekt liest und die Integration daran anpasst: Er platziert die Routen in Ihrer Struktur, bindet den Angebotsrechner in Ihre Seite ein und führt danach Ihren Build und Ihre Tests aus. Das Denken findet bei Cord statt, aber seine Werkzeuge laufen auf Ihrem Rechner und sind auf den Projektordner beschränkt:

  • Er öffnet nie eine .env*, Ihren Ordner .git oder node_modules. Ein Pfad, der das Projekt verlässt, auch über einen symbolischen Link, schlägt fehl.
  • Er führt nur Befehle aus einer Liste aus: @flouviahq/*-Pakete mit npm, pnpm, yarn oder bun installieren, Ihre Skripte für Build, Lint, Typecheck und Tests sowie npx tsc --noEmit. Jeder andere Befehl oder einer mit Shell-Zeichen wird abgelehnt und im Protokoll festgehalten.

Noch schaltet Cord ihn nicht ein: Der Server antwortet, dass der Assistent nicht verfügbar ist, und die CLI macht mit Vorlagen weiter, ohne dass Sie etwas tun müssen. Wir schalten ihn ein, sobald unsere Erklärung zur künstlichen Intelligenz abdeckt, dass die KI den Code der integrierenden Person liest. Dann fragt Sie der Assistent, ob er mit KI oder mit Vorlagen integrieren soll, und alles, was er ändert, wird in CORD-INTEGRACION.md festgehalten.

Bevor es losgeht, zeigt Daten und Datenschutz, was Ihren Rechner verlässt und was ihn nie verlässt.

Verbinden Sie die Apps, die Sie bereits nutzen

Der Assistent sucht in Ihren Abhängigkeiten (package.json, composer.json oder denen von Python) nach den SDKs der Apps, die Cord anbindet: @hubspot/api-client steht für HubSpot, @shopify/shopify-api oder Hydrogen für Shopify, @slack/bolt oder @slack/web-api für Slack. Außerdem erkennt er QuickBooks Online, Xero, Google Sheets und Microsoft Teams.

Findet er eine davon, bietet er an, sie mit Cord zu verbinden. Sie drücken o, die Seite dieser Integration öffnet sich in Ihrem Browser, und sobald Sie fertig sind, hakt der Bildschirm sie selbst ab. Dafür meldet Cord nur den Status jeder Verbindung, nie deren Daten.

HubSpot wurde im Browser verbunden; Shopify und Slack warten, bis sie an der Reihe sind.

Der MCP von Cord in Ihren Agenten

Zum Schluss bietet der Assistent an, den MCP-Server von Cord in Claude Code (.mcp.json), Cursor (.cursor/mcp.json) und VS Code (.vscode/mcp.json) einzurichten. Er schreibt nur die Adresse des Servers und lässt andere Server, die Sie bereits haben, unangetastet: Beim ersten Mal bittet Sie Ihr Agent, in Cord mit OAuth zu autorisieren, deshalb enthält keine Datei einen Schlüssel.

Sie markieren die Agenten mit der Leertaste, und der Assistent schreibt ihre Datei.

Mit dem MCP ruft Ihr Agent Angebote, Kunden und Zahlungen ab und bereitet Entwürfe vor. Was etwas versendet, eine Zahlung einzieht oder einen Kunden ändert, geben Sie in Cord frei. Dasselbe gibt es als Befehle: cord mcp add, cord mcp remove und cord mcp tutorial, das erklärt, wie Sie ihn in Claude und ChatGPT als benutzerdefinierten Connector hinzufügen. Details stehen im Leitfaden zum MCP.

Signierte Webhooks auf Ihrem localhost

cord listen öffnet eine Testsitzung und leitet jedes Ereignis mit derselben Signatur an Ihren Server weiter, die auch die Produktion verwenden würde. Mit --env-file speichert der Befehl das Signatur-Secret in Ihrer .env.local, und es ist in jeder Sitzung Ihres Schlüssels dasselbe: Ein Neustart zwingt Sie nicht, es zu ändern.

npx @flouviahq/cli listen --forward-to http://localhost:3000/api/webhooks/cord --env-file .env.local

Jede Weiterleitung wird bestätigt: Antwortet Ihr Server nicht, kehrt das Ereignis in die Warteschlange zurück und wird nach 5, 15, 30 und 60 Sekunden erneut zugestellt. In einem anderen Terminal löst cord trigger jedes Ereignis aus dem Katalog aus; mit --objeto und der ID eines Testangebots oder einer Testrechnung enthält das Ereignis deren echte Daten.

Lösen Sie in einem Terminal ein Ereignis aus und sehen Sie im anderen zu, wie es signiert an Ihrer Route ankommt.

Für den Alltag gibt es weitere Befehle: cord events tail und cord logs tail zeigen Ereignisse und Anfragen, sobald sie eintreffen, cord api ruft jede Route mit Ihrem Schlüssel auf, und cord simulate erzwingt das Ergebnis der nächsten steuerlichen Ausstellung oder lässt ein Angebot ablaufen. Der Leitfaden zur CLI enthält die vollständige Liste.

Am Ende eine Zusammenfassung

Der Assistent endet mit dem, was er getan hat, was noch fehlt, und den Webhooks, die bereits auf Ihrem lokalen Server empfangen werden. Was sich geändert hat, steht in CORD-INTEGRACION.md, ohne einen einzigen Wert aus Ihrer .env.

Die Zusammenfassung zeigt, was fertig ist und was noch fehlt, mit dem Link, um es abzuschließen.

Probieren Sie es aus

Sie brauchen Node 22 oder neuer und ein Cord-Konto.

npx create-next-app@latest mein-shop --ts --app
cd mein-shop
npx @flouviahq/cli

Wenn er fertig ist, lassen Sie npm run dev in einem Terminal laufen und führen Sie in einem anderen npx @flouviahq/cli trigger quote.approved aus: Das Ereignis erreicht Ihre Route, signiert, und der Assistent zeigt Ihnen den Status 200.

ENDE DES ARTIKELS

Vom Angebot bis zur Zahlung. Alles in einem Link.

Senden Sie ein Angebot, das Ihr Kunde über einen einzigen Link bestätigt und bezahlt, ohne Konto, und stellen Sie die Rechnung mit einem Klick. In 12 Ländern, mit kostenlosem Plan und ohne Kreditkarte.