How twentyhq/twenty works
Twenty is an open-source, extensible CRM. A typical user works with workspace records and views in the CRM, while the server provides application and data services; developers can define app objects, views, agents, and logic functions as code and publish them to a workspace. The repository also includes a desktop call-recording companion and example apps. The README documents the product capabilities, but the sampled source does not establish most frontend-to-server or server-to-storage call paths, so those links are omitted rather than inferred.
Main entry points: RecordingController.ts Desktop companion · twenty-apps Workspace apps · src CRM interface · common-base-query-runner.service.ts Server API
Components 18
CRM experience
- CRM interface
packages/twenty-front/src - CRM records
packages/twenty-server/src/engine/api/common/common-query-runners/common-base-query-runner.service.ts - Views
packages/twenty-apps/internal/real-estate/src/views/buyer-pipeline.view.ts - Workflows
packages/twenty-server/src/modules/workflow - AI agents
packages/twenty-apps/public/call-recorder/src/agents
CRM services
- Server API
packages/twenty-server/src/engine/api/common/common-query-runners/common-base-query-runner.service.ts - Application service
packages/twenty-server/src/engine/core-modules/application/application.service.ts - App marketplace
packages/twenty-server/src/engine/core-modules/application/application-marketplace/marketplace-query.service.ts
App platform
- App SDK
packages/twenty-sdk/src/sdk/define/objects/is-engine-derived-label-identifier.ts - App scaffolding
packages/create-twenty-app/src/create-app.command.ts - Workspace apps
packages/twenty-apps - Real estate CRM
packages/twenty-apps/internal/real-estate/src/objects/property.object.ts
Desktop companion
- Desktop companion
packages/twenty-companion/src/main/services/RecordingController.ts - Meeting state
packages/twenty-companion/src/shared/types/CompanionState.ts - Workspace client
packages/twenty-companion/src/main/services/TwentyClient.ts - Recording capture
packages/twenty-companion/src/main/services/RecordingController.ts
Other components
- CRM user
- Recall desktop SDK
Connections 14
- CRM user → CRM interface: uses
README.md - CRM interface → Server API: accesses CRM
- Server API → CRM records: queries records
packages/twenty-server/src/engine/api/common/common-query-runners/common-base-query-runner.service.ts - CRM user → Views: works in views
README.md - CRM user → Workflows: uses workflows
README.md - CRM user → AI agents: uses agents
README.md - App scaffolding → Workspace apps: creates app
README.md - App SDK → Workspace apps: defines primitives
README.md - Workspace apps → Application service: publishes to workspace
README.md - Application service → App marketplace: offers apps
- Real estate CRM → Views: defines pipeline
packages/twenty-apps/internal/real-estate/src/views/buyer-pipeline.view.ts - Desktop companion → Meeting state: updates state
packages/twenty-companion/src/main/services/RecordingController.ts - Desktop companion → Workspace client: uses client
packages/twenty-companion/src/main/services/RecordingController.ts - Desktop companion → Recall desktop SDK: controls capture
packages/twenty-companion/src/main/services/RecordingController.ts