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.
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
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
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
The whole CLI in eight commands
nrc login
Browser OAuth. Token in your OS keyring. One per machine.
nrc langsync init
Five-step wizard that writes .langsync.json. Org, namespace, dir, source lang, seed mode.
nrc langsync sync
Push every local language file, fill gaps with AI, write the result back. The everyday command.
nrc langsync pull
Read-only refresh — write what the team translated in the web app to your local files.
nrc langsync mark add
Add one term without opening the dashboard. Optional auto-translate.
nrc langsync namespace create
New namespace from the terminal — name, default language, optional context.
nrc org create
Bring up a new Norcube organization without leaving the CLI.
nrc upgrade
Self-update to the latest release. No package manager needed.
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.
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.
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.
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.
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.