Zum Hauptinhalt springen
Apps befinden sich derzeit in der Alpha-Phase. Die Funktion ist funktionsfähig, entwickelt sich jedoch noch weiter.

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 enable ausführen
  • DockerHier 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:
npx create-twenty-app@latest my-twenty-app
Sie werden aufgefordert, einen Namen und eine Beschreibung für Ihre App einzugeben. Drücken Sie Enter, um die Standardwerte zu übernehmen. Dadurch wird ein neuer Ordner namens 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 yes ein (empfohlen) — Dadurch wird das Docker-Image twenty-app-dev heruntergeladen und ein lokaler Twenty-Server auf Port 2020 gestartet. Stellen Sie sicher, dass Docker läuft, bevor Sie fortfahren.
  • Geben Sie no ein — Wählen Sie dies, wenn bereits ein Twenty-Server lokal läuft.
Soll die lokale Instanz gestartet werden?

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
Twenty-Anmeldebildschirm

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.
Twenty-CLI-Autorisierungsbildschirm
Nach der Autorisierung bestätigt Ihr Terminal, dass alles eingerichtet ist.
App-Gerüst erfolgreich erstellt

Beginnen Sie mit der Entwicklung

Wechseln Sie in Ihren neuen App-Ordner und starten Sie den Entwicklungsserver:
cd my-twenty-app
yarn twenty dev
Dadurch werden Ihre Quelldateien überwacht, bei jeder Änderung neu gebaut und Ihre App automatisch mit dem lokalen Twenty-Server synchronisiert. In Ihrem Terminal sollte eine Live-Statusanzeige angezeigt werden. Für ausführlichere Ausgaben (Build-Protokolle, Sync-Anfragen, Fehlerspuren) verwenden Sie das Flag --verbose:
yarn twenty dev --verbose
Der Dev-Modus ist nur auf Twenty-Instanzen verfügbar, die im Entwicklungsmodus laufen (NODE_ENV=development). Produktionsinstanzen lehnen Dev-Synchronisierungsanfragen ab. Verwenden Sie yarn twenty deploy, um auf Produktionsservern bereitzustellen — Details finden Sie unter Apps veröffentlichen.
Terminalausgabe im Dev-Modus

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:
Liste "Your Apps", die "My twenty app" anzeigt
Klicken Sie auf My twenty app, um die Anwendungsregistrierung zu öffnen. Eine Registrierung ist ein Servereintrag, der Ihre App beschreibt — ihren Namen, den eindeutigen Bezeichner, OAuth-Zugangsdaten und die Quelle (lokal, npm oder Tarball). Sie befindet sich auf dem Server, nicht in einem bestimmten Arbeitsbereich. Wenn Sie eine App in einen Arbeitsbereich installieren, erstellt Twenty eine arbeitsbereichsbezogene Anwendung, die auf diese Registrierung verweist. Eine Registrierung kann in mehreren Arbeitsbereichen auf demselben Server installiert werden.
Details der Anwendungsregistrierung
Klicken Sie auf View installed app, um die installierte App anzuzeigen. Die Registerkarte About zeigt die aktuelle Version und Verwaltungsoptionen:
Installierte App — Registerkarte About
Wechseln Sie zur Registerkarte Content, um alles zu sehen, was Ihre App bereitstellt — Objekte, Felder, Logikfunktionen und Agenten:
Installierte App — Registerkarte Content
Alles erledigt! Bearbeiten Sie eine beliebige Datei in src/, und die Änderungen werden automatisch übernommen.

Was Sie erstellen können

Apps bestehen aus Entitäten — jede ist als TypeScript-Datei mit einem einzigen export default definiert:
EntitätWas sie macht
Objekte & FelderDefinieren Sie benutzerdefinierte Datenmodelle (wie Post Card, Invoice) mit typisierten Feldern
LogikfunktionenServerseitige TypeScript-Funktionen, die durch HTTP-Routen, Cron-Zeitpläne oder Datenbankereignisse ausgelöst werden
Frontend-KomponentenReact-Komponenten, die in der UI von Twenty gerendert werden (Seitenleiste, Widgets, Befehlsmenü)
Fähigkeiten & AgentenKI-Funktionen — wiederverwendbare Anweisungen und autonome Assistenten
Ansichten & NavigationVorkonfigurierte Listenansichten und Seitenleisteneinträge für Ihre Objekte
SeitenlayoutsBenutzerdefinierte Datensatz-Detailseiten mit Tabs und Widgets
Wechseln Sie zu Apps erstellen für eine ausführliche Anleitung zu jedem Entitätstyp.

Projektstruktur

Der Scaffolder erzeugt die folgende Verzeichnisstruktur:
my-twenty-app/
  package.json
  yarn.lock
  .gitignore
  .nvmrc
  .yarnrc.yml
  .oxlintrc.json
  tsconfig.json
  tsconfig.spec.json                          # TypeScript config for tests
  vitest.config.ts                            # Vitest test runner configuration
  LLMS.md
  README.md
  .github/
    └── workflows/
        └── ci.yml                            # GitHub Actions CI workflow
  public/                                     # Public assets (images, fonts, etc.)
  src/
  ├── application-config.ts                   # Required — main application configuration
  ├── default-role.ts                         # Default role for logic functions
  ├── constants/
  │   └── universal-identifiers.ts            # Auto-generated UUIDs and app metadata
  └── __tests__/
      ├── setup-test.ts                       # Test setup (server health check, config)
      └── app-install.integration-test.ts     # Integration test

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:
npx create-twenty-app@latest my-twenty-app --example postcard
Die Beispiele stammen aus dem Verzeichnis twenty-apps/examples auf GitHub. Sie können auch einzelne Entitäten in einem bestehenden Projekt mit yarn twenty add erzeugen (siehe Apps erstellen).

Wichtige Dateien

Datei / OrdnerZweck
package.jsonDeklariert 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.tsErforderlich. Die Hauptkonfigurationsdatei für Ihre App.
src/default-role.tsStandardrolle, die steuert, worauf Ihre Logikfunktionen zugreifen können.
src/constants/universal-identifiers.tsAutomatisch 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 Sie yarn twenty server:
BefehlBeschreibung
yarn twenty server startLokalen Server starten (lädt das Image bei Bedarf herunter)
yarn twenty server start --port 3030Auf einem benutzerdefinierten Port starten
yarn twenty server stopServer stoppen (Daten bleiben erhalten)
yarn twenty server statusServerstatus, URL und Anmeldedaten anzeigen
yarn twenty server logsServerprotokolle streamen
yarn twenty server logs --lines 100Die letzten 100 Protokollzeilen anzeigen
yarn twenty server resetAlle Daten löschen und neu starten
Daten bleiben über Neustarts hinweg in zwei Docker-Volumes bestehen (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.
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, anstatt create-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:
yarn add twenty-sdk twenty-client-sdk
2. Fügen Sie Ihrer package.json ein twenty-Skript hinzu:
{
  "scripts": {
    "twenty": "twenty"
  }
}
Sie können jetzt 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 -v zur Überprüfung).
  • Stellen Sie sicher, dass Corepack aktiviert ist (corepack enable), damit Yarn 4 verfügbar ist.
  • Versuchen Sie, node_modules zu löschen und yarn install erneut auszuführen, wenn Abhängigkeiten fehlerhaft erscheinen.
Hängen Sie immer noch fest? Bitten Sie im Twenty-Discord um Hilfe.