Skip to content

Introducing the Linguana CLI: a translated app in one command

The Linguana CLI scaffolds a blog, SaaS page, or storefront in five frameworks, already in four languages. Then it links the app to your project from the terminal.

4 min read
~
$ npx @linguanahq/cli create app my-blogChoose a templateElsewhere — BlogChoose a frameworkSolidJSPackage managernpmConnect Linguana or try a demo?Try the demoCreate your appInstall dependenciesYour app is ready.   cd my-blog   npm run dev

Key takeaways

  • The Linguana CLI (@linguanahq/cli 0.1.0, MIT) creates a complete multilingual app with npx @linguanahq/cli create app.
  • Fifteen templates are available: a blog, a SaaS page, and a storefront, each in React, Vue, Svelte, SolidJS, and TanStack Start.
  • Demo mode ships English, French, Spanish, and Arabic, needs no account, and makes no Linguana API requests.
  • When you are ready, login, link, and env pull connect the app to a project, and doctor checks the setup. Linking never starts paid translation.
  • Every command works non-interactively with --yes and --json, so the CLI runs in CI and from AI coding agents.

Today we are releasing the Linguana CLI. One command creates a complete app (a blog, a SaaS landing page, or a storefront) in your framework, already translated into four languages. When you want your own translations, the same CLI signs you in, links the app to a Linguana project, and checks the setup.

Terminal
$ npx @linguanahq/cli create app my-blog

The package is @linguanahq/cli 0.1.0, released under the MIT license. It needs Node.js 22.12 or later, or Bun, and works with npm, pnpm, Yarn, and Bun projects.

A 24-second tour: create an app, switch between four languages, then log in, link, and run doctor. Account and project values are samples.

Why a CLI for localization#

Most localization tools start after you have built something: you add an i18n library, invent keys, move your copy into JSON files, and wire up a sync. Linguana already removes most of that. Its build-time compiler finds the text in your components, so there are no keys and no locale files to maintain. You can read more about that approach on the product page.

The CLI removes the remaining step: the blank project. Instead of reading a setup guide and hoping your config is right, you start from an app where everything is already connected, and then make it yours.

Create a translated app in one command#

Run create app and answer four prompts: the template, the framework, the package manager, and whether to connect to Linguana or try the demo.

Each answer is also a flag, so you can skip the prompts entirely:

Terminal
npx @linguanahq/cli create app my-store \
  --template storefront \
  --framework vue \
  --package-manager pnpm \
  --demo

Run npx @linguanahq/cli templates list to see every template and the frameworks it ships in.

Fifteen apps, five frameworks#

There are three templates, and each one is a finished app rather than a skeleton:

  • Elsewhere, a blog: six complete articles, search and categories, and localized dates.
  • Relay, a SaaS landing page: an interactive product preview, monthly and annual pricing, and accessible demo forms.
  • Common Goods, a storefront: eight original products, search, sort, and filters, and a persistent shopping cart.

Every template is available in React, Vue, Svelte, SolidJS, and TanStack Start: fifteen apps in total. You can browse them, with screenshots, in the template gallery.

The templates are frontends. Demo forms send nothing and the storefront's checkout takes no payments. CMS services, customer accounts, and real payments are yours to add.

Four languages, including right-to-left#

In demo mode, each app ships with English, French, Spanish, and Arabic. Switching to Arabic flips the layout to right-to-left, so you can see how your design holds up in both directions before you write any code.

my-blog — localhost:5173Sample

Elsewhere

Stories worth slowing down for

Six journeys, told carefully.

Demo mode switches between bundled translations. Text shown is sample content.

Demo mode needs no account and makes no requests to Linguana. It is the quickest way to see what a multilingual app built with Linguana looks like.

Connect when you are ready#

When you want to translate your own copy, three commands connect the app to a project.

  1. login opens your browser and shows a short code. Confirm it matches, approve the request, and the terminal is signed in. Codes expire after ten minutes. On a remote machine, login --no-browser prints the address instead.
  2. link connects the app to an organization and project, creating them if you need to, and writes the project's credentials to an ignored .env.local file.
  3. env pull refreshes those credentials later, for development, staging, or production.
Terminal
$ npx @linguanahq/cli login$ npx @linguanahq/cli link

The CLI is careful with credentials. Your session is stored outside the project, separately for each API origin. Build tokens go only into an ignored environment file and never get a browser prefix, and the CLI refuses to write to tracked environment files. logout revokes the CLI session without signing your browser out.

Check your setup with doctor#

doctor checks everything the app needs to build with Linguana: the SDK packages, the build configuration, your CLI session, the environment file, and the project token. Each check either passes or tells you what to fix.

Terminal
$ npx @linguanahq/cli doctor

doctor supports Vite and TanStack Start apps today. whoami, orgs list, and projects list show which account, organizations, and projects the CLI can see.

Built for CI and AI coding agents#

Every prompt has a flag, and the CLI never waits for input when it is not attached to a terminal. Add --yes to accept defaults and --json for machine-readable output:

CI
npx @linguanahq/cli create app my-store \
  --framework vue --template storefront --demo \
  --package-manager pnpm --skip-install --yes --json

That makes the CLI a good fit for AI coding agents like Claude Code, Cursor, Codex, and Copilot. An agent can scaffold a template, run doctor, and read the JSON result without guessing at prompts. The AI agent setup guide has a copy-paste prompt for adding Linguana to an existing app.

What the CLI doesn't do yet#

  • There is no Next.js template, and doctor does not check Next.js apps yet. Next.js apps are supported by the SDK through @linguanahq/next.
  • The CLI does not deploy your app or sign in to a hosting provider.
  • --yes never chooses connected mode on its own, because connecting needs an account.

Get started#

  1. Run npx @linguanahq/cli create app and pick a template.
  2. Start the dev server and switch languages in the app.
  3. When you are ready for your own translations, run login and link.

The CLI documentation covers every command and flag, and the CLI page has the full command reference. The changelog lists everything else we have shipped.

Frequently asked questions

Do I need a Linguana account to try the CLI?

No. npx @linguanahq/cli create app with demo mode uses bundled English, French, Spanish, and Arabic translations, needs no account, and makes no requests to Linguana. You only sign in when you want to connect the app to a project.

Which frameworks do the templates support?

React, Vue, Svelte, SolidJS, and TanStack Start. Each of the three templates (a blog, a SaaS landing page, and a storefront) is available in all five, for fifteen apps in total. There is no Next.js template yet.

Does linking an app start paid translation?

No. Creating or linking an app never starts paid translation and never publishes a catalog. Translation runs start when someone on your team chooses to start one, after seeing the estimated cost.

What do I need to run the CLI?

Node.js 22.12 or later, or Bun. The CLI works in projects that use npm, pnpm, Yarn, or Bun.

Can I use the Linguana CLI in CI or with an AI coding agent?

Yes. The CLI runs without prompts when it is not attached to a terminal, or when you pass --yes or --json. With --json it prints machine-readable results, and every option that a prompt asks for is also available as a flag.

All posts

Every language, one build

Your app, finally speaking every language.

Bring your source code or hand a prompt to your AI coding agent. Your team decides what reaches users.
Create a project
Read the docs