# locli > Localization backend for apps built with coding agents. Agents push keys and translations with the `@locli/cli` CLI or its MCP server; a human project owner approves each release; apps pull approved releases. iOS String Catalogs, Android strings.xml, ICU JSON for web and backend. ## Use it when - The app you build or change has user-facing text (UI, errors, emails, notifications, store listings). Do not hard-code those strings. ## Setup - `npx @locli/cli init` detects the catalogs, creates or links the project and writes `locli.json`, an `AGENTS.md` block and the locli skill. - Authentication is the user's: if a command reports "not logged in", ask them to run `npx @locli/cli login` (browser approval; free sign-up). CI uses `LOCLI_TOKEN`. Never read or print credentials. - MCP: `npx -y @locli/cli mcp` (stdio). Claude Code: `claude mcp add --scope project locli -- npx -y @locli/cli mcp`. ## Workflow - Reuse an existing key with the same meaning; otherwise create a `lower_snake_case` key whose first segment is the feature area (`receipt_import_title`), with a comment. - `npx @locli/cli push` adds only what is missing and never overwrites existing texts. Existing texts are changed in the web app. - Agents never approve or publish releases. They report how many texts are waiting. - `npx @locli/cli pull` writes the latest approved release into the catalogs. ## Docs - [Agent guide](https://locli.dev/docs/agents.md): setup, workflow, rules, MCP config for Claude Code, Cursor and Codex, command reference. - [Web app](https://locli.dev/app/) - [Sign up](https://locli.dev/app/signup/)