twenty/packages/twenty-sdk
Charles Bochet 15eb3e7edc
feat(sdk): use config file as single source of truth, remove env var fallbacks (#19409)
## Summary

- **Config as source of truth**: `~/.twenty/config.json` is now the
single source of truth for SDK authentication — env var fallbacks have
been removed from the config resolution chain.
- **Test instance support**: `twenty server start --test` spins up a
dedicated Docker instance on port 2021 with its own config
(`config.test.json`), so integration tests don't interfere with the dev
environment.
- **API key auth for marketplace**: Removed `UserAuthGuard` from
`MarketplaceResolver` so API key tokens (workspace-scoped) can call
`installMarketplaceApp`.
- **CI for example apps**: Added monorepo CI workflows for `hello-world`
and `postcard` example apps to catch regressions.
- **Simplified CI**: All `ci-create-app-e2e` and example app workflows
now use a shared `spawn-twenty-app-dev-test` action (Docker-based)
instead of building the server from source. Consolidated auth env vars
to `TWENTY_API_URL` + `TWENTY_API_KEY`.
- **Template publishing fix**: `create-twenty-app` template now
correctly preserves `.github/` and `.gitignore` through npm publish
(stored without leading dot, renamed after copy).

## Test plan

- [x] CI SDK (lint, typecheck, unit, integration, e2e) — all green
- [x] CI Example App Hello World — green
- [x] CI Example App Postcard — green
- [x] CI Create App E2E minimal — green
- [x] CI Front, CI Server, CI Shared — green
2026-04-08 06:49:10 +02:00
..
src feat(sdk): use config file as single source of truth, remove env var fallbacks (#19409) 2026-04-08 06:49:10 +02:00
.gitignore [SDK] Refactor clients (#18433) 2026-03-09 15:32:13 +00:00
.oxlintrc.json Refactor twenty client sdk provisioning for logic function and front-component (#18544) 2026-03-24 18:10:25 +00:00
.prettierignore Refactor twenty client sdk provisioning for logic function and front-component (#18544) 2026-03-24 18:10:25 +00:00
package.json Publish 0.8.0 (#19323) 2026-04-04 06:05:51 +00:00
project.json [SDK] Extract twenty-front-component-renderer outside of twenty-sdk ( 2.8MB ) (#19021) 2026-03-30 17:06:06 +00:00
README.md Improve getting started doc (#19138) 2026-04-01 20:39:44 +00:00
tsconfig.json [SDK] Extract twenty-front-component-renderer outside of twenty-sdk ( 2.8MB ) (#19021) 2026-03-30 17:06:06 +00:00
tsconfig.lib.json [FRONT COMPONENTS] Allow style librairies in remote dom (#17936) 2026-02-15 23:50:57 +01:00
vite.config.browser.ts [SDK] Extract twenty-front-component-renderer outside of twenty-sdk ( 2.8MB ) (#19021) 2026-03-30 17:06:06 +00:00
vite.config.node.ts [SDK] Extract twenty-front-component-renderer outside of twenty-sdk ( 2.8MB ) (#19021) 2026-03-30 17:06:06 +00:00
vite.config.sdk.ts [FRONT COMPONENTS] Allow style librairies in remote dom (#17936) 2026-02-15 23:50:57 +01:00
vitest.config.ts Optimize merge queue to only run E2E and integrate prettier into lint (#18459) 2026-03-06 13:20:57 +01:00
vitest.e2e.config.ts feat(sdk): use config file as single source of truth, remove env var fallbacks (#19409) 2026-04-08 06:49:10 +02:00
vitest.integration.config.ts feat(sdk): use config file as single source of truth, remove env var fallbacks (#19409) 2026-04-08 06:49:10 +02:00
vitest.unit.config.ts Enhance tests on SDK (#17312) 2026-01-21 19:27:04 +01:00

Twenty logo

Twenty SDK

NPM version License Join the community on Discord

A CLI and SDK to develop, build, and publish applications that extend Twenty CRM.

Quick start

The recommended way to start is with create-twenty-app:

npx create-twenty-app@latest my-app
cd my-app
yarn twenty dev

Documentation

Full documentation is available at docs.twenty.com/developers/extend/apps:

  • Getting Started — scaffolding, local server, authentication, dev mode
  • Building Apps — entity definitions, API clients, testing, CLI reference
  • Publishing — deploy, npm publish, marketplace

Manual installation

If you are adding twenty-sdk to an existing project instead of using create-twenty-app:

yarn add twenty-sdk twenty-client-sdk

Then add a twenty script to your package.json:

{
  "scripts": {
    "twenty": "twenty"
  }
}

Run yarn twenty help to see all available commands.

Configuration

The CLI stores credentials per remote in ~/.twenty/config.json. Run yarn twenty remote add to configure a remote, or yarn twenty remote list to see existing ones.

Troubleshooting

  • Auth errors: run yarn twenty remote add to re-authenticate.
  • Typings out of date: restart yarn twenty dev to refresh the client and types.
  • Not seeing changes in dev: make sure dev mode is running (yarn twenty dev).

Contributing

Development setup

git clone https://github.com/twentyhq/twenty.git
cd twenty
yarn install

Development mode

npx nx run twenty-sdk:dev

Production build

npx nx run twenty-sdk:build

Running the CLI locally

npx nx run twenty-sdk:start -- <command>

Resources