- 以代码定义自定义对象和字段(受管理的数据模型)
- 使用自定义触发器(HTTP 路由、cron、数据库事件)构建逻辑函数
- 为 AI 智能体定义技能
- 构建在 Twenty 的 UI 中渲染的前端组件
- 将同一个应用部署到多个工作空间
先决条件
- Node.js 24+ 和 Yarn 4
- 一个 Twenty 工作空间和一个 API 密钥(在 https://app.twenty.com/settings/api-webhooks 创建)
开始使用
使用官方脚手架创建一个新应用,然后进行身份验证并开始开发:项目结构(脚手架生成)
当你运行npx create-twenty-app@latest my-twenty-app 时,脚手架将:
- 将一个最小的基础应用复制到
my-twenty-app/中 - 添加本地
twenty-sdk依赖和 Yarn 4 配置 - 创建与
twentyCLI 关联的配置文件和脚本 - 生成核心文件(应用配置、默认函数角色、安装前/安装后函数),并基于脚手架模式生成示例文件
--exhaustive 模式新搭建的应用如下所示:
--minimal 时,只会创建核心文件(application-config.ts、roles/default-role.ts、logic-functions/pre-install.ts 和 logic-functions/post-install.ts)。
总体来说:
- package.json:声明应用名称、版本、引擎(Node 24+、Yarn 4),并添加
twenty-sdk以及一个twenty脚本,该脚本会委托给本地的twentyCLI。 运行yarn twenty help以列出所有可用命令。 - .gitignore:忽略常见产物,如
node_modules、.yarn、generated/(类型化客户端)、dist/、build/、覆盖率文件夹、日志文件以及.env*文件。 - yarn.lock、.yarnrc.yml、.yarn/:锁定并配置项目使用的 Yarn 4 工具链。
- .nvmrc:固定项目期望的 Node.js 版本。
- .oxlintrc.json 和 tsconfig.json:为应用的 TypeScript 源码提供 Lint 与 TypeScript 配置。
- README.md:应用根目录中的简短 README,包含基本说明。
- public/: 一个用于存储公共资源(图像、字体、静态文件)的文件夹,这些资源将随你的应用程序一起提供。 放置在此处的文件会在同步期间上传,并可在运行时访问。
- src/:你以代码形式定义应用的主要位置
实体检测
该 SDK 通过在你的 TypeScript 文件中解析export default define<Entity>({...}) 调用来检测实体。 每种实体类型都有一个从 twenty-sdk 导出的对应辅助函数:
| 辅助函数 | 实体类型 |
|---|---|
defineObject | 自定义对象定义 |
defineLogicFunction | 逻辑函数定义 |
definePreInstallLogicFunction | 安装前逻辑函数(在安装之前运行) |
definePostInstallLogicFunction | 安装后逻辑函数(在安装之后运行) |
defineFrontComponent | 前端组件定义 |
defineRole | 角色定义 |
defineField | 现有对象的字段扩展 |
defineView | 已保存的视图定义 |
defineNavigationMenuItem | 导航菜单项定义 |
defineSkill | AI 代理技能定义 |
文件命名是灵活的。 实体检测基于 AST — SDK 会扫描你的源文件以查找
export default define<Entity>({...}) 模式。 你可以按照自己的喜好组织文件和文件夹。 按实体类型分组(例如 logic-functions/、roles/)只是代码组织的一种约定,并非必需。yarn twenty app:dev会在node_modules/twenty-sdk/generated中自动生成两个类型化 API 客户端:CoreApiClient(通过/graphql获取工作区数据)和MetadataApiClient(通过/metadata处理工作区配置和文件上传)。yarn twenty entity:add会在src/下为你的自定义对象、函数、前端组件、角色、技能等添加实体定义文件。
身份验证
首次运行yarn twenty auth:login 时,你将被提示输入:
- API URL(默认为 http://localhost:3000 或你当前的工作空间配置)
- API 密钥
~/.twenty/config.json 中。 你可以维护多个配置文件并在它们之间切换。
管理工作空间
yarn twenty auth:switch 切换工作空间后,后续所有命令将默认使用该工作空间。 你仍可通过 --workspace <name> 临时覆盖。
手动设置(不使用脚手架)
虽然我们建议使用create-twenty-app 以获得最佳的上手体验,但你也可以手动设置项目。 不要全局安装 CLI。 相反,请将 twenty-sdk 添加为本地依赖,并在你的 package.json 中配置一个脚本:
twenty 脚本:
yarn twenty <command> 运行所有命令,例如 yarn twenty app:dev、yarn twenty help 等。
故障排除
- 身份验证错误:运行
yarn twenty auth:login,并确保你的 API 密钥具有所需权限。 - 无法连接到服务器:请验证 API URL,并确保 Twenty 服务器可达。
- 类型或客户端缺失/过期:重启
yarn twenty app:dev— 它会自动生成类型化客户端。 - 开发模式未同步:确保
yarn twenty app:dev正在运行,并且你的环境不会忽略变更。