Was sind Apps?
Apps ermöglichen es Ihnen, Twenty mit benutzerdefinierten Objekten, Feldern, Logikfunktionen, Frontend-Komponenten, KI-Fähigkeiten und mehr zu erweitern — alles als Code verwaltet. Anstatt alles über die UI zu konfigurieren, definieren Sie Ihr Datenmodell und Ihre Logik in TypeScript und stellen es in einem oder mehreren Workspaces bereit.Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Folgendes auf Ihrem Rechner installiert ist:- Node.js 24+ — Hier herunterladen
- Yarn 4 — Wird mit Node.js über Corepack mitgeliefert. Aktivieren Sie es, indem Sie
corepack enableausführen - Docker — Hier herunterladen. Erforderlich, um eine lokale Twenty-Instanz auszuführen. Nicht erforderlich, wenn bereits ein Twenty-Server läuft.
Erstellen Sie Ihre erste App
App-Gerüst erstellen
Öffnen Sie ein Terminal und führen Sie Folgendes aus:my-twenty-app mit allem erstellt, was Sie benötigen.
Lokale Twenty-Instanz einrichten
Das Scaffolding-Tool fragt:Möchten Sie eine lokale Twenty-Instanz einrichten?
- Geben Sie
yesein (empfohlen) — Dadurch wird das Docker-Imagetwenty-app-devheruntergeladen und ein lokaler Twenty-Server auf Port2020gestartet. Stellen Sie sicher, dass Docker läuft, bevor Sie fortfahren. - Geben Sie
noein — Wählen Sie dies, wenn bereits ein Twenty-Server lokal läuft.

Melden Sie sich bei Ihrem Arbeitsbereich an
Anschließend öffnet sich ein Browserfenster mit der Twenty-Anmeldeseite. Melden Sie sich mit dem vorab eingerichteten Demo-Konto an:- E-Mail:
tim@apple.dev - Passwort:
tim@apple.dev

Autorisieren Sie die App
Nach der Anmeldung sehen Sie einen Autorisierungsbildschirm. Dadurch kann Ihre App mit Ihrem Arbeitsbereich interagieren. Klicken Sie auf Authorize, um fortzufahren.

Beginnen Sie mit der Entwicklung
Wechseln Sie in Ihren neuen App-Ordner und starten Sie den Entwicklungsserver:--verbose:

Einmalige Synchronisierung mit yarn twenty dev --once
Wenn Sie keinen Watcher im Hintergrund ausführen lassen möchten (zum Beispiel in einer CI-Pipeline, einem Git-Hook oder einem skriptgesteuerten Workflow), geben Sie das Flag --once an. Es führt dieselbe Pipeline aus wie yarn twenty dev — Build-Manifest erstellen, Dateien bündeln, hochladen, synchronisieren, den typisierten API-Client neu generieren — beendet sich jedoch, sobald die Synchronisierung abgeschlossen ist:
| Befehl | Verhalten | Wann verwenden |
|---|---|---|
yarn twenty dev | Überwacht Ihre Quelldateien und synchronisiert bei jeder Änderung erneut. Läuft weiter, bis Sie es stoppen. | Interaktive lokale Entwicklung — Sie möchten das Live-Status-Panel und eine sofortige Feedback-Schleife. |
yarn twenty dev --once | Führt einen einzelnen Build + Sync aus und beendet sich anschließend mit Code 0 bei Erfolg oder 1 bei einem Fehler. | Skripte, CI, Pre-Commit-Hooks, KI-Agenten und jeder nicht-interaktive Workflow. |
Sehen Sie sich Ihre App in Twenty an
Öffnen Sie http://localhost:2020/settings/applications#developer in Ihrem Browser. Navigieren Sie zu Settings > Apps und wählen Sie die Registerkarte Developer. Unter Your Apps sollte Ihre App aufgeführt sein:



src/, und die Änderungen werden automatisch übernommen.
Was Sie erstellen können
Apps bestehen aus Entitäten — jede ist als TypeScript-Datei mit einem einzigenexport default definiert:
| Entität | Was sie macht |
|---|---|
| Objekte & Felder | Definieren Sie benutzerdefinierte Datenmodelle (wie Post Card, Invoice) mit typisierten Feldern |
| Logikfunktionen | Serverseitige TypeScript-Funktionen, die durch HTTP-Routen, Cron-Zeitpläne oder Datenbankereignisse ausgelöst werden |
| Frontend-Komponenten | React-Komponenten, die in der UI von Twenty gerendert werden (Seitenleiste, Widgets, Befehlsmenü) |
| Fähigkeiten & Agenten | KI-Funktionen — wiederverwendbare Anweisungen und autonome Assistenten |
| Ansichten & Navigation | Vorkonfigurierte Listenansichten und Seitenleisteneinträge für Ihre Objekte |
| Seitenlayouts | Benutzerdefinierte Datensatz-Detailseiten mit Tabs und Widgets |
Projektstruktur
Der Scaffolder erzeugt die folgende Verzeichnisstruktur:Mit einem Beispiel beginnen
Um mit einem umfassenderen Beispiel mit benutzerdefinierten Objekten, Feldern, Logikfunktionen, Frontend-Komponenten und mehr zu starten, verwenden Sie die Option--example:
yarn twenty add erzeugen (siehe Apps erstellen).
Wichtige Dateien
| Datei / Ordner | Zweck |
|---|---|
package.json | Deklariert den App-Namen, die Version und Abhängigkeiten. Enthält ein twenty-Skript, sodass Sie yarn twenty help ausführen können, um alle Befehle anzuzeigen. |
src/application-config.ts | Erforderlich. Die Hauptkonfigurationsdatei für Ihre App. |
src/default-role.ts | Standardrolle, die steuert, worauf Ihre Logikfunktionen zugreifen können. |
src/constants/universal-identifiers.ts | Automatisch erzeugte UUIDs und App-Metadaten (Anzeigename, Beschreibung). |
src/__tests__/ | Integrationstests (Setup + Beispieltest). |
public/ | Statische Assets (Bilder, Schriftarten), die mit Ihrer App ausgeliefert werden. |
Lokaler Entwicklungsserver
Der Scaffolder hat bereits einen lokalen Twenty-Server für Sie gestartet. Um ihn später zu verwalten, verwenden Sieyarn twenty server:
| Befehl | Beschreibung |
|---|---|
yarn twenty server start | Lokalen Server starten (lädt das Image bei Bedarf herunter) |
yarn twenty server start --port 3030 | Auf einem benutzerdefinierten Port starten |
yarn twenty server start --test | Starten Sie eine separate Testinstanz auf Port 2021 |
yarn twenty server stop | Server stoppen (Daten bleiben erhalten) |
yarn twenty server status | Serverstatus, URL und Anmeldedaten anzeigen |
yarn twenty server logs | Serverprotokolle streamen |
yarn twenty server logs --lines 100 | Die letzten 100 Protokollzeilen anzeigen |
yarn twenty server reset | Alle Daten löschen und neu starten |
twenty-app-dev-data für PostgreSQL, twenty-app-dev-storage für Dateien). Verwenden Sie reset, um alles zu löschen und neu zu beginnen.
Eine Testinstanz ausführen
Übergeben Sie--test an jeden server-Befehl, um eine zweite, vollständig isolierte Instanz zu verwalten — nützlich, um Integrationstests auszuführen oder zu experimentieren, ohne Ihre Hauptentwicklungsdaten anzutasten.
| Befehl | Beschreibung |
|---|---|
yarn twenty server start --test | Die Testinstanz starten (standardmäßig Port 2021) |
yarn twenty server stop --test | Die Testinstanz stoppen |
yarn twenty server status --test | Status, URL und Anmeldedaten der Testinstanz anzeigen |
yarn twenty server logs --test | Protokolle der Testinstanz streamen |
yarn twenty server reset --test | Alle Testdaten löschen und neu starten |
twenty-app-dev-test) mit dedizierten Volumes (twenty-app-dev-test-data, twenty-app-dev-test-storage) und eigener Konfiguration, sodass sie parallel zu Ihrer Hauptinstanz ohne Konflikte ausgeführt werden kann. Kombinieren Sie --test mit --port, um den Standardport 2021 zu überschreiben.
Der Server erfordert, dass Docker läuft. Wenn der Fehler “Docker not running” angezeigt wird, stellen Sie sicher, dass Docker Desktop (oder der Docker-Daemon) gestartet ist.
Manuelle Einrichtung (ohne Scaffolder)
Wenn Sie die Einrichtung lieber selbst vornehmen möchten, anstattcreate-twenty-app zu verwenden, können Sie dies in zwei Schritten tun.
1. Fügen Sie twenty-sdk und twenty-client-sdk als Abhängigkeiten hinzu:
package.json ein twenty-Skript hinzu:
yarn twenty dev, yarn twenty help und alle anderen Befehle ausführen.
Installieren Sie
twenty-sdk nicht global. Verwenden Sie es immer als lokale Projektabhängigkeit, damit jedes Projekt seine eigene Version festlegen kann.Fehlerbehebung
Wenn Probleme auftreten:- Stellen Sie sicher, dass Docker läuft, bevor Sie das Scaffolding-Tool mit einer lokalen Instanz starten.
- Stellen Sie sicher, dass Sie Node.js 24+ verwenden (
node -vzur Überprüfung). - Stellen Sie sicher, dass Corepack aktiviert ist (
corepack enable), damit Yarn 4 verfügbar ist. - Versuchen Sie,
node_moduleszu löschen undyarn installerneut auszuführen, wenn Abhängigkeiten fehlerhaft erscheinen.