CLI Commands
@crowdin/serverless-apps-cli is the command-line tool for serverless Crowdin apps: one binary scaffolds an app, runs it live inside Crowdin with hot reload, extracts and compiles translations, lints and formats your code, and publishes the result. It is a zero-config toolchain - React, Tailwind CSS, and Lingui i18n work out of the box, with Vite powering the dev server and the production build.
Installation
Section titled “Installation”Requires Node.js ^22.19 || ^24 - 22.19 or newer within the 22.x line, or any 24.x.
npm install --global @crowdin/serverless-apps-cliOr run it ad hoc with npx @crowdin/serverless-apps-cli <command>.
Run crowdin-serverless-apps <command> --help for all options and examples.
Develop
Section titled “Develop”create
Section titled “create”crowdin-serverless-apps create [name] [--template <t>] [--yes]Create a new serverless app from a starter template, register it in Crowdin, and link the folder to it (CROWDIN_APP_ID in .env). Both templates scaffold the same sample app (manifest.json, src/, public/, locales/) and differ in who owns the build:
projects-dashboard-cli- the CLI handles building for you:dev,build, andpublishwork out of the box with the zero-config toolchain. The default (used with--yes).projects-dashboard-standalone- you control the build setup: the template ships its own Vite/Lingui configuration and build scripts; use the CLI for app management (login,link,manifest,publish).
crowdin-serverless-apps dev [--port <n>] [--yes] [--no-manifest-sync]Start a local dev server with hot reload; while it runs, your app inside Crowdin loads straight from your machine. See how dev and publish work.
preview
Section titled “preview”crowdin-serverless-apps preview [--module <key>] [--project <id>]Open the app’s page in Crowdin in the browser (does not start a server). Module types that have no page of their own (for example modal or chat) can’t be opened - the CLI explains why instead of opening the browser.
Build & publish
Section titled “Build & publish”crowdin-serverless-apps build [--no-extract] [--no-bundle]Build the app and package it for publishing (dist/bundle.zip).
extract
Section titled “extract”crowdin-serverless-apps extractScan the source for translatable text and update the locales/*.po catalogs. See translations.
publish
Section titled “publish”crowdin-serverless-apps publish [--no-build] [--yes] [--no-manifest-sync]Build, upload the bundle to Crowdin, and switch the app to serve it.
Quality
Section titled “Quality”crowdin-serverless-apps lintCheck the app’s code for problems (Biome, no configuration needed).
format
Section titled “format”crowdin-serverless-apps formatAuto-format the app’s code.
Manage apps
Section titled “Manage apps”crowdin-serverless-apps list [--print] [--json]List your serverless apps. Alias: ls.
crowdin-serverless-apps link [--app-id <id>]Link the local project to an existing app.
manifest
Section titled “manifest”crowdin-serverless-apps manifest statuscrowdin-serverless-apps manifest pullcrowdin-serverless-apps manifest pushDiff, pull, or push manifest.json against Crowdin. manifest status exits with code 1 when the local file drifts from Crowdin.
Account
Section titled “Account”crowdin-serverless-apps login [--file-storage] [--port <n>]Sign in via the browser; tokens are stored in the OS keychain, or in an encrypted file with --file-storage. Your Crowdin Enterprise organization is detected automatically.
--port pins the browser-callback port to one of 26140-26144 (useful for SSH port forwarding); by default the first free one of those is used.
logout
Section titled “logout”crowdin-serverless-apps logoutLog out and remove the stored token.