Skip to content

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.

Requires Node.js ^22.19 || ^24 - 22.19 or newer within the 22.x line, or any 24.x.

Terminal window
npm install --global @crowdin/serverless-apps-cli

Or run it ad hoc with npx @crowdin/serverless-apps-cli <command>.

Run crowdin-serverless-apps <command> --help for all options and examples.

Terminal window
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, and publish work 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).
Terminal window
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.

Terminal window
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.

Terminal window
crowdin-serverless-apps build [--no-extract] [--no-bundle]

Build the app and package it for publishing (dist/bundle.zip).

Terminal window
crowdin-serverless-apps extract

Scan the source for translatable text and update the locales/*.po catalogs. See translations.

Terminal window
crowdin-serverless-apps publish [--no-build] [--yes] [--no-manifest-sync]

Build, upload the bundle to Crowdin, and switch the app to serve it.

Terminal window
crowdin-serverless-apps lint

Check the app’s code for problems (Biome, no configuration needed).

Terminal window
crowdin-serverless-apps format

Auto-format the app’s code.

Terminal window
crowdin-serverless-apps list [--print] [--json]

List your serverless apps. Alias: ls.

Terminal window
crowdin-serverless-apps link [--app-id <id>]

Link the local project to an existing app.

Terminal window
crowdin-serverless-apps manifest status
crowdin-serverless-apps manifest pull
crowdin-serverless-apps manifest push

Diff, pull, or push manifest.json against Crowdin. manifest status exits with code 1 when the local file drifts from Crowdin.

Terminal window
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.

Terminal window
crowdin-serverless-apps logout

Log out and remove the stored token.