Switch from Lokalise

Bring your Lokalise strings and translations. Host them free, leave whenever you want.

Import every string and existing translation from Lokalise into Glossa. Hosting is free and unlimited, your own agents can audit, fix and fill them for free, and you can export everything again at any time. You pay only if you ask Claude to translate for you.

Free to come and go
On every plan, including Free, with no card.
  • Hosting unlimited strings, apps and languages, for as long as you keep them
  • Importing your existing translations from any tool, in any format
  • Exporting every language in its original format, any time
  • Audits, by your own agent over MCP or the CLI, or by run_audit
  • Translations your agent or your team writes, for your whole library
  • Strings shared across apps, translated once and reused

Let your agent do the move

Run this in your repository. Claude Code or Codex sets up Glossa, exports from Lokalise, imports every file in agent mode so nothing is billed, checks the import, then audits and fills your translations itself.

Claude Code
claude "$(curl -fsSL https://getglossa.dev/switch/lokalise/prompt.txt)"
Codex
codex "$(curl -fsSL https://getglossa.dev/switch/lokalise/prompt.txt)"
Or paste this prompt into any agent
Move our app's strings and existing translations from Lokalise to Glossa (https://getglossa.dev), then audit them. Hosting, imports, exports and audits are free on Glossa; keep this move free by using agent mode, so nothing is machine-translated or billed.
1. Set up Glossa. In Claude Code run `/plugin marketplace add MeterApp/glossa-plugins` then `/plugin install glossa@glossa`; in Codex run `codex plugin marketplace add MeterApp/glossa-plugins && codex plugin add glossa@glossa`. That adds the Glossa MCP server and skills; sign in through the browser when asked. Without a plugin, use the CLI: `npx @meterapp/glossa login` opens my browser to sign in, and `npx @meterapp/glossa ops` lists every operation.2. Get the newest translations. If Lokalise holds translations that are not committed here yet, export them first:   lokalise2 --token "$LOKALISE_API_TOKEN" --project-id <project-id> file download --format json --unzip-to ./lokalise-export   (In the web app: Download, pick the format and languages, then Build and download.) If Lokalise's CLI is not configured, ask me for access; never commit or print API tokens.3. Find every translation file in this repository: the source language and every target language. List them with their locales and ask me only if the source language is unclear.4. Create one Glossa project per app with agent mode and its target languages, e.g. `npx @meterapp/glossa create_project --json '{"name":"Web","slug":"web","target_locales":["es","fr"],"translation_mode":"agent"}'`. Agent mode leaves missing strings for you instead of translating them with AI.5. Push each source-language file first, then every target-language file: `npx @meterapp/glossa push locales/en.json --project web`, then `npx @meterapp/glossa push locales/es.json --project web` (add `--locale` when the path does not name it). Existing translations are stored as imported, and AI never overwrites them.6. Check the import: `npx @meterapp/glossa pull --project web --out glossa-preview`, then diff glossa-preview against our files. Report every key, placeholder or plural that differs.7. Audit every target language for free with the codebase in view: page through `list_translations_for_audit` (MCP tool, or `npx @meterapp/glossa list_translations_for_audit --locale es --project web`), read the call sites in this repo, and correct wrong translations with `submit_translations`. Start with the flagged ones (placeholder_mismatch, glossary_miss, same_as_source).8. Fill the gaps yourself: `npx @meterapp/glossa missing --project web --locale es --out missing.json` lists untranslated strings with their file paths, glossary and rules; translate them and write them back with `npx @meterapp/glossa fill translations.json`.9. Save a .glossa.json with the project and source files so `npx @meterapp/glossa pull` and `npx @meterapp/glossa check` work from now on. Then summarize: files imported, translations per language, issues fixed and strings still missing. Leave Lokalise's configuration and CI in place until I confirm the switch.

Or do it by hand

1. Export from Lokalise

lokalise2 --token "$LOKALISE_API_TOKEN" --project-id <project-id> file download --format json --unzip-to ./lokalise-export

In the web app: Download, pick the format and languages, then Build and download. Export in a format Glossa reads: JSON, YAML, XLIFF, gettext PO, Android XML, .strings, .xcstrings, ARB, .properties, RESX or CSV (formats). Leave untranslated strings out, so source text does not import as a translation.

2. Import into Glossa

npx @meterapp/glossa loginnpx @meterapp/glossa create_project --json '{"name":"Web","slug":"web","target_locales":["es","fr","de"],"translation_mode":"agent"}'npx @meterapp/glossa push locales/en.json --project web   # the source language firstnpx @meterapp/glossa push locales/es.json --project web   # then every translation you have

Agent mode means nothing is machine-translated on push. Existing translations are stored as imported and AI never overwrites them. Identical strings across your apps share one translation.

3. Audit and translate with your own agent, free

npx @meterapp/glossa list_translations_for_audit --locale es --project web   # your agent reads and fixes thesenpx @meterapp/glossa missing --project web --locale es --out missing.json         # what is not translated yetnpx @meterapp/glossa fill translations.json                                        # write your agent's translations back

list_translations_for_audit gives your agent every translation with the keys, file paths, glossary and rules behind it, flagged where placeholders or glossary terms do not match. With the codebase in view it fixes what is wrong and fills what is missing, for your whole library, without counting a single AI word. Prefer to let Claude do it? Switch the project to ai mode and pay only for the new words it translates.

4. Leave whenever you want

npx @meterapp/glossa pull --project web --out ./locales   # every language, in its original format

Your files stay in your repository. Pulling is free, unlimited and needs no export request.

Lokalise and Glossa side by side

TopicGlossaLokalise
What you pay forFree to host; priced by AI-translated words.The plan table lists hosted words, processed words, AI-translated words, standard and advanced seats, projects and languages.
A bigger library costs more?No: hosting is free and unlimited; reused strings are free.Hosted words and seats are listed plan limits.
Free planUnlimited hosting, 20,000 AI words a month, 3 members.No free plan; a 14-day trial.
Paid plans from$49/mo for 200,000 AI words$149/mo
AgentsA hosted MCP server, CLI and REST API with every op, plus plugins for Claude Code, Codex and Cursor.An official hosted MCP server, in beta.
Getting your files outglossa pull, every language in its original format, any time.lokalise2 --token "$LOKALISE_API_TOKEN" --project-id <project-id> file download --format json --unzip-to ./lokalise-export

Lokalise details from its public pages, checked 2026-10-29: Lokalise pricing, lokalise2 file download, Lokalise MCP server. Corrections welcome at jonathan@getglossa.dev.

When staying on Lokalise may make sense

  • You depend on Lokalise features your team uses every day and have not tested elsewhere.
  • Your translators already work in its editor and you are not ready to move them.

Not sure? Import a copy anyway: it costs nothing to keep your strings in both while you compare. See every tool compared.

Move off Lokalise for free

Import your strings and translations, audit them with your agent, and export them again whenever you like.