Files
twenty/packages/create-twenty-app
martmull 8d84a0b9f3 feat(app): allow non-admin developers to claim and list marketplace apps (#22621)
## Context

Follow-up to #22609. Lets a non-admin developer claim ownership of a
public Twenty app they published to npm, then request a marketplace
listing that a server admin reviews. Marketplace state is per-instance
for now.

## Claiming

- Developer tab gets a **Claim an application** section: look up an
unclaimed npm app by package name or universal identifier.
- Ownership is proven with GitHub OAuth against the package's npm
provenance (trusted publishing): the connected account must own the
GitHub account or organization the package was published from.
- Errors from the GitHub callback come back as a code and are shown
inline with a link to the relevant documentation.
- The old one-click claim stays admin-only.
- A **Sync catalog** button triggers a catalog refresh instead of
waiting for the hourly cron.
- Gated behind the `IS_APP_CLAIMING_ENABLED` feature flag.

## Listing requests

- Catalog-synced apps are created **unlisted**; a data migration unlists
previously auto-listed unclaimed npm apps (owned or vetted rows are left
untouched).
- Owners request a listing from the Distribution tab (logo + description
required); a server admin approves or rejects it from a **Listing
requests** section in the Admin Panel.

## Screenshots

<img width="1512" height="829" alt="image"
src="https://github.com/user-attachments/assets/788d4362-97c4-4e42-810c-ef1f11517bec"/>
<img width="1512" height="829" alt="image"
src="https://github.com/user-attachments/assets/d6246190-c82a-4f64-87be-3bb668527645"/>
<img width="1512" height="828" alt="image"
src="https://github.com/user-attachments/assets/21a8dad4-610b-4d1f-8948-b9acab40d373"/>
<img width="1512" height="829" alt="image"
src="https://github.com/user-attachments/assets/58246130-41f7-451e-ae7f-57bd21d04bb6"/>

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-07-20 15:43:40 +00:00
..

Twenty logo

Create Twenty App

NPM version License Join the community on Discord

The official scaffolding CLI for building apps on top of Twenty CRM. Sets up a ready-to-run project with twenty-sdk.

Quick start

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

The scaffolder will:

  1. Create a new project with TypeScript, linting, tests, and a preconfigured twenty CLI
  2. Start a local Twenty server via Docker (pulls the latest image automatically)
  3. Authenticate with the development API key

Options

Flag Description
--name <name> Set the app name
--display-name <displayName> Set the display name
--description <description> Set the description
--url <url> Twenty workspace URL (default: http://localhost:2020)
--authentication-method <method> oauth or apiKey (default: apiKey for local, oauth for remote)

Documentation

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

  • Quick Start — scaffold, run a local server, sync your code
  • Concepts — how apps work: entity model, sandboxing, lifecycle
  • Operations — CLI, testing, CI, deploy and publish

Troubleshooting

  • Server not starting: check Docker is running (docker info), then try yarn twenty docker:logs.
  • Auth not working: run yarn twenty remote:add to re-authenticate.
  • Types not generated: ensure yarn twenty dev is running — it auto-generates the typed client.

Contributing