Use when the user wants to prepare or verify a Twenty app for npm or marketplace publication, including README/About copy, package metadata, defineApplication marketplace metadata, logos, screenshots, and public assets.
Installs into .claude/skills of the current project.
Are you the author of Twenty Publish App?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aicodedecode-twenty-publish-app)
---
name: publish-app
description: Use when the user wants to prepare or verify a Twenty app for npm or marketplace publication, including README/About copy, package metadata, defineApplication marketplace metadata, logos, screenshots, and public assets.
---
# When To Use
Pick this skill when the user wants to make an existing Twenty app *presentable* — listing copy, branding, public assets, and publication. Representative triggers:
- "prepare my Twenty app for the marketplace"
- "write the README for my Twenty app"
- "publish my app to npm"
- "add a logo / screenshots / marketplace metadata"
- "set up `defineApplication` marketplace fields"
- "review my app listing before going live"
- "ship a new version of my published app"
Do not use this skill to scaffold (use `create-app`), to change app entities (use `develop-app`), to deploy a private build to a specific Twenty server (use `manage-app`), or to query workspace records (use `use-twenty-mcp`).
# Publishing Checklist
For background on how Twenty apps work — the SDK packages, remotes, sync lifecycle, and rendering model — read `references/concepts/how-apps-work.md`. Cross-skill operating rules that apply to every Twenty app task are in `references/concepts/operating-rules.md`; they are authoritative and not restated per skill.
Use `references/publish-app/prepare-for-app-store.md` for detailed README, marketplace copy, logo, screenshot, and public asset guidance.
Keep the skill workflow concise:
- Inspect `package.json`, `README.md`, `src/application-config.ts`, and `public/`.
- For npm marketplace publication, ensure `package.json` has a valid bumped `version` and the `twenty-app` keyword.
- In `defineApplication()`, verify marketplace-facing fields such as `displayName`, `description`, `author`, `category`, `logoUrl`, `screenshots`, `aboutDescription`, `websiteUrl`, `termsUrl`, `emailSupport`, and `issueReportUrl`.
- Keep `logoUrl` and `screenshots` pointed at files in `public/`. Public assets must not contain secrets, private data, customer records, real tokens, or unreleased confidential material.
- Remember that if `aboutDescription` is omitted, the marketplace uses the package `README.md` from npm for the About content. The About tab renders markdown text only: images and raw HTML are not rendered.
- Validate with `yarn twenty dev:build`; publish with `yarn twenty app:publish` or `yarn twenty app:publish --tag <tag>`.
# Boundaries
Use `$manage-app` for remotes, deploys to a specific server, logs, troubleshooting, and CI/CD operations.
Use `$develop-app` when the app entities themselves need to change before the listing can be accurate.
# Docs
If the needed publishing detail is unclear, search the official Twenty docs at `https://docs.twenty.com` before guessing. When a Twenty docs MCP server is configured (`https://docs.twenty.com/mcp`), prefer searching through it. That server is an optional enhancement, not a requirement for this skill.
---
## Provenance (system note, 2026-09-30)
- Origin: official Twenty agent skills, `agent-skills` branch of
https://github.com/twentyhq/twenty (twentyhq), published 2026-09-29.
- Imported read-only; safety-scanned 2026-09-30 (markdown + yaml only, no
scripts; no exfiltration or prompt-injection patterns found).
- License: Twenty is AGPLv3 with the "Twenty Application Exception" — apps
built ON Twenty via its Application Interfaces (APIs, SDKs, manifests) may
be licensed under any terms, including proprietary. The app SDKs
(twenty-sdk, create-twenty-app, etc.) are MIT.
- Needs a Twenty workspace to act against: Twenty Cloud (twenty.com, fastest)
or self-hosted (Docker Compose; needs PostgreSQL + Redis).