Twenty apps are TypeScript packages that extend your workspace with custom objects, logic, UI components, and AI capabilities. They run on the Twenty platform with full sandboxing and permission controls.Documentation Index
Fetch the complete documentation index at: https://docs.get-clara.tech/llms.txt
Use this file to discover all available pages before exploring further.
How apps work
An app is a collection of entities declared usingdefineEntity() functions from the twenty-sdk package. The SDK detects these declarations via AST analysis at build time and produces a manifest — a complete description of what your app adds to a workspace.
File organization is up to you. Entity detection is AST-based — the SDK finds
export default defineEntity(...) calls regardless of where the file lives. The folder structure above is a convention, not a requirement.Entity types
| 实体 | 目的 | 文档 |
|---|---|---|
| Application | App identity, permissions, variables | Data Model |
| Role | Permission sets for objects and fields | Data Model |
| 对象 | Custom data tables with fields | Data Model |
| 字段 | Extend existing objects, define relations | Data Model |
| Logic Function | Server-side TypeScript with triggers | Logic Functions |
| Front Component | Sandboxed React UI in Twenty’s page | Front Components |
| Skill | Reusable AI agent instructions | Skills & Agents |
| Agent | AI assistants with custom prompts | Skills & Agents |
| View | Pre-configured record list views | Layout |
| Navigation Menu Item | Custom sidebar entries | Layout |
| Page Layout | Custom record page tabs and widgets | Layout |
Sandboxing
- Logic functions run in isolated Node.js processes on the server. They only access data through the typed API client, scoped to the app’s role permissions.
- Front components run in Web Workers using Remote DOM — sandboxed from the main page but rendering native DOM elements (not iframes). They communicate with Twenty via a message-passing host API.
- Permissions are enforced at the API level. The runtime token (
TWENTY_APP_ACCESS_TOKEN) is derived from the role defined indefineApplication().
App lifecycle
yarn twenty dev— watches your source files and live-syncs changes to a connected Twenty server. The typed API client is regenerated automatically when the schema changes.yarn twenty build— compiles TypeScript, bundles logic functions and front components with esbuild, and produces a manifest.- Pre/post-install hooks — optional logic functions that run during installation. See Logic Functions for details.
Next steps
数据模型
Define objects, fields, roles, and relations.
逻辑函数
Server-side functions with HTTP, cron, and event triggers.
前端组件
Sandboxed React components inside Twenty’s UI.
布局
Views, navigation items, and record page layouts.
技能与智能体
AI skills and agents with custom prompts.
CLI & Testing
CLI commands, testing, assets, remotes, and CI.
发布
Deploy to a server or publish to the marketplace.