LangSync CLI · ships with the norcube CLI

Translations belong in your repo. Not in a browser tab

Keep your i18n JSON files in lockstep with LangSync. Push what you edit, fill the rest with AI, write the result back. One command per repo.

Two-way sync, one command Resumable across crashes Source language is yours Single binary, no deps
~/projects/checkout
$
web autotranslating ░░░░░░░░░░░░░░░░░░ 0/18
mobile pushing ░░░░░░░░░░░░░░░░░░ 0/14
marketing autotranslating ░░░░░░░░░░░░░░░░░░ 0/9
3 namespaces synced · 41 cells translated · 10 files written
01 why use it

Your i18n files stay the source of truth

Most tools force you out of your editor: copy a string, switch tab, paste, translate, copy back. The CLI inverts that. Your JSON files stay where every translator and tool already lives — git, your editor, code review.

  • Edit in your editor, sync with one command
  • Stable key ordering, atomic writes, clean diffs
  • Your branch, your changes — no team trampling
Read the docs
api export GET /api/v1/terms
en-US
100% ·
es-ES
100% ·
de-DE
98% ·
ja-JP
93% ·
fr-FR
100% ·
pt-BR
90% ·
02 init once

One init. Same setup for every dev

A short wizard writes .langsync.json at your project root: org, namespace, dir, source language. Commit it. Teammates clone the repo and run the CLI — same org, same namespaces, no coordination.

  • Project pinned to org and namespace in JSON
  • Multi-org devs never hit the wrong project
  • CI runs the same commands as your laptop
Try it free
ai translation waterfall key → ai → 6 locales
checkout.order_shipped
en-US
es-ES
fr-FR
de-DE
ja-JP
ar-SA
03 write in your language

You write Czech. The AI translates from Czech

Most tools assume English-first. The CLI does not. Set your source language to whatever you think in — and the AI translates from that file into every other language, including the team default.

  • Source-of-truth file is your choice, per project
  • Human translations in other langs stay intact
  • Each dev can pick their own source independently
Source-language design notes
glossary-aware translation → es
billing.upgrade_cta
Upgrade your Norcube plan to access the Dashboard and manage Webhooks.
Norcube keep Dashboard translate Webhooks keep
Translation will appear here…
commands

The whole CLI in eight commands

01

nrc login

Browser OAuth. Token in your OS keyring. One per machine.

02

nrc langsync init

Five-step wizard that writes .langsync.json. Org, namespace, dir, source lang, seed mode.

03

nrc langsync sync

Push every local language file, fill gaps with AI, write the result back. The everyday command.

04

nrc langsync pull

Read-only refresh — write what the team translated in the web app to your local files.

05

nrc langsync mark add

Add one term without opening the dashboard. Optional auto-translate.

06

nrc langsync namespace create

New namespace from the terminal — name, default language, optional context.

07

nrc org create

Bring up a new Norcube organization without leaving the CLI.

08

nrc upgrade

Self-update to the latest release. No package manager needed.

how it works

A few invariants make it boring in production

The CLI is a thin client. The real work happens server-side as a durable, resumable job.

principle 01

Server-side jobs, not client orchestration

Every sync is a row in Postgres advanced by a worker through plan → push → autotranslate → finalize. Backend restarts? The next worker picks up where the last one stopped.

principle 02

Cost gate on AI translation

A trigger timestamp persists before the LLM call fires. A resumed job that sees it skips the trigger — never re-translates a cell already filled.

principle 03

Honest progress UI

Multi-namespace parallel sync with a live dashboard. When something fails, the Issues block tells you which mark in which language and what to do about it.

Ready when you are

Install. Sync. Ship

One curl command. macOS and Linux. Adds itself to your PATH, creates the nrc short alias. Time to first sync: under a minute.

macOS & Linux amd64 + arm64
Single binary No runtime deps
OS keyring auth Tokens never on disk
Self-updating nrc upgrade
// tick. tick. tick.
0 ticks since founding