Your coding agent can do the translating
LocalizeMe ships an MCP server, so Claude Code, Cursor and any other MCP client can read and write your translations directly — add a key while writing the feature that needs it, then export the files your build expects. No copy-paste, no separate dashboard trip.
Included on every plan, the free one too.
Connect it
Point your client at the MCP endpoint and approve it in the browser. That is the whole setup — the connection guide has the exact config for Cursor, Gemini CLI, VS Code, Windsurf and the rest.
{
"mcpServers": {
"localizeme": {
"url": "https://api.localizeme.app/mcp",
"headers": {
"Authorization": "Bearer lz_live_8f3a92c1…"
}
}
}
}Streamable HTTP transport. Every call runs as the key's user, passes the same permission checks as the REST API, and is attributed to them in the project's activity history.
Or skip the key entirely
Clients that sign in for themselves can use OAuth instead. Point them at the same server URL with no header at all: the client registers itself, sends you to a consent screen in your browser, and you choose read-only or read and edit for that connection. Nothing to paste, and nothing long-lived sitting in a config file.
Access keys still work, and are the better fit for CI where there is no browser to consent in — the guide shows how to mint one.
What it can do
38 tools, covering everything the dashboard does.
Projects
Find a project, create one, change the languages it targets.
list_projectsget_projectcreate_projectupdate_projectdelete_projectKeys
Add and edit the keys your code references.
list_keysget_keycreate_keyupdate_keydelete_keyTranslations
Set values per language and platform, and move them through review.
set_translationsdelete_translationset_translation_statusLanguages
Browse the shared catalog or define a language a project needs.
list_languagesadd_custom_languageremove_project_languagePlatforms
List where a project ships, and add a platform before writing values of its own for it.
list_platformscreate_platformdelete_platformImport & export
The same file handling the dashboard offers, in ten formats.
export_translationsimport_translationsget_export_formatsGroups
Organise keys and screenshots into groups and move them between them.
list_groupscreate_groupupdate_groupdelete_groupadd_keys_to_groupremove_keys_from_groupadd_screenshots_to_groupremove_screenshots_from_groupScreenshots
Give translators the screen a string appears on. Upload inline up to 1.5 MB, or through a storage grant up to 10 MB.
list_screenshotsget_screenshotupload_screenshotcomplete_screenshot_uploadrename_screenshotlink_screenshot_keysunlink_screenshot_keydelete_screenshotIn your build: the CLI
localizeme pulls the strings your app compiles, ahead of the step that builds it, and pushes new ones back. It writes each platform's files where the project expects them — values-de/strings.xml on Android, Localizable.xcstrings on iOS, app_de.arb in Flutter — each with its own platform's values. No dependencies beyond Python 3.10.
pipx install localizeme
export LOCALIZEME_API_KEY=lz_live_…
# once per repo: which project, and where its files live
localizeme init --project 42 --format android-xml --platform android \
--path 'app/src/main/res/values-{android_code}/strings.xml' \
--source-path app/src/main/res/values/strings.xml
# in CI, before the build step
localizeme pull A read-only access key is all a pull needs, so the secret in your CI cannot change a string if it leaks. Exit codes a build can act on, a dry run for every push, and one localizeme.json for an Android and an iOS app side by side. Every option is in the README on GitHub.
Or use the REST API
The same API keys work against the REST endpoints, so CI can pull the latest strings at build time in ten formats — JSON, PO, iOS .strings and .xcstrings, Android XML, XLIFF 1.2, Flutter .arb, Java .properties, CSV and YAML.
# every language for a project, as a zip
curl -H "Authorization: Bearer lz_live_…" \
"https://api.localizeme.app/api/translations/export/json/?project_id=1&language=all"Free plan · no credit card