Quickstart

Push your first file, get it translated and pull every locale back in five minutes.

1. Sign in and create a project

Sign in with your email. A workspace is created for you, with a source locale (usually en). Create a project for your app in the dashboard with the target locales you ship. Or do it from the CLI once you are logged in:

npx @meterapp/glossa loginnpx @meterapp/glossa create_project --json '{"name":"Web","slug":"web","target_locales":["es","de","ja"]}'

login asks for a workspace API key (create one in the dashboard under Settings → API keys) and saves it. In CI, set GLOSSA_API_KEY instead.

2. Push your source file

npx @meterapp/glossa push locales/en.json --project web

The format is detected from the file name and content. Every string is matched against the rest of your workspace: text you have already translated in another app is reused, and only new strings are queued for translation. The response tells you how many keys were added and how many strings were new or merged into existing ones.

Already have translations? Push them too. Their locale is inferred from the path (locales/es.json, es.lproj, values-es); imported translations are never overwritten by AI.

3. Let it translate

Translation runs in the background with Claude Opus, using each string's context, your glossary and your rules. Strings the model is unsure about, or whose placeholders did not survive, are marked needs_review and filed in the review queue. Check progress with get_stats or list_jobs.

4. Pull every locale

npx @meterapp/glossa pull --project web --locale es,fr,de

Each locale is written in the file's own format at its own path. Untranslated keys fall back to the source text by default; pass missing and approved_only to pull_file to change that.

The same over HTTP

curl -X POST https://glossa-meterapp.vercel.app/api/v1/push_file \  -H "Authorization: Bearer gls_…" \  -H "Content-Type: application/json" \  -d "$(jq -n --rawfile c locales/en.json '{project:"web",path:"locales/en.json",content:$c}')"
curl -X POST https://glossa-meterapp.vercel.app/api/v1/pull_file \  -H "Authorization: Bearer gls_…" \  -H "Content-Type: application/json" \  -d '{"project":"web","path":"locales/{locale}.json","locale":"es"}' | jq -r .content > locales/es.json

Next

Stuck? Write to jonathan@welcome.meterapp.co.