glot

io.github.MattJeffPublished by GitHub account MattJeffv0.4.0Updated Nov 2, 2026

AI-native i18n: live string context, validated translations, glossary for your app catalogs

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

glot is a local i18n toolchain whose MCP mode gives coding agents your translation keys, usages, glossary and validated string-adding tools.

What you can do
  • Expose app translation keys with their usages (file:line, UI role) and the repo glossary to the agent
  • Add or set strings through the same validator used by the CLI, so placeholders, plurals and glossary rules are enforced
  • Support the surrounding CLI workflow: init, i18nize hardcoded UI strings, translate only the delta, and check catalogs
  • Measure key box widths in the running app and shorten translations that overflow
  • Keep a lockfile so hand edits are not overwritten without an explicit force flag
When to use it
Useful when a coding agent should localize an app catalog in place and you want deterministic checks on placeholders, CLDR plurals, glossary terms and pixel width rather than trusting raw model output.
Requirements
Runs as a local stdio process, typically via npx glot-i18n, so Node.js is needed. An LLM key is required for translation: ANTHROPIC_API_KEY, or OPENAI_API_KEY per glot.toml; any OpenAI-compatible endpoint is supported. Not needed for context, check or add. A glot.toml config in the repo.
Before you install
Translation sends your source strings to the LLM provider you configure, so review what leaves the repo. The tool writes to catalog files and rewrites components during i18nize; a lockfile protects hand edits unless force is used. LLM usage costs money on your own key.

Installation

In SourceWeft

  1. Open glot in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

glot

Your coding agent localizes your app. Deterministic code guarantees that nothing broken or too long lands in your catalogs.

[glot translate refuses a Polish plural without few/many, a {nom} placeholder the source does not have and a German label 276px wide for a 120px button, then writes the corrected retries]

The real glot translate binary. The LLM is scripted to get three strings wrong on its first pass; every refusal and message is glot's. Reproduce it, or rerun it with a real model doing the retries: docs/launch/record/refusal.sh.

sh
npx glot-i18n init        # detect your i18n stack, write glot.toml + rules for your coding agentnpx glot-i18n i18nize     # hardcoded UI strings -> keys, components rewritten (next-intl, react-i18next)npx glot-i18n translate   # translate only the delta; invalid output is refused, retried, never written

Or all of it in one idempotent step: npx glot-i18n localize --yes --targets fr,de (init if needed → i18nize → translate → check).

Guarantees

Checked by code on every LLM output, on glot set, in the overlay and in CI (glot check). A refused string goes back to the model with the exact reason (2 retries, then the fallback model); if it still fails, nothing is written.

Placeholders{name}, {{name}}, tags: same set as the source, none invented, none translated. ICU, i18next and MessageFormat 2 syntax parsed.
CLDR pluralsEvery category the target locale needs (pl: one, few, many, other; ar: six of them).
Glossaryglossary.toml in your repo: required and forbidden translations, do-not-translate terms.
Pixel widthglot measure records each key's box and font from your running app; translations are shaped with that font and refused if wider. glot fit shortens what already overflows.
Lockfileglot.lock hashes source and target: only the delta is translated, and a hand edit is never overwritten without --force.
MCP for your agentglot mcp gives Claude Code, Cursor or Codex your keys, their usages (file:line, UI role), the glossary, and tools that add strings through the same validator.

Works with the i18n library you already use, adds no runtime, bring your own LLM key (Anthropic, OpenAI, any OpenAI-compatible endpoint). MIT.

More: Docs (concepts, CLI, MCP, integrations & GitHub Action, agent skill, AI-translation provenance, FAQ & costs) · Labs (SEO, database content, emails/images, task parity, plural coverage…) · Self-hosted server (experimental) · Demo app · Architecture

Source: README.md at commit a35a2d4

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.4.0LatestOct 18, 2026
  2. v0.3.0Oct 18, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts