What you get

  • Translate hundreds of doc files in one overnight run — with per-file checkpoint and automatic recovery if Claude's quota resets mid-night. Files are grouped into ordered batches called tiers, so you can review the showcase content (READMEs, main guides) before shipping the rest.
  • Keep terminology consistent across every file — a locked glossary prevents the model from translating loop as cycle in chapter 3 but loop in chapter 12. Cross-file drift is rejected at commit time.
  • Preserve internal links, slash commands, and code identifiers byte-for-byte — validators refuse to merge a translation that broke a frontmatter key or renamed createClient to créerClient.
  • Translate code-comments without touching the code itself — your source files never reach Claude raw ; only the comments do. Imports, function names, and syntax stay byte-identical.
  • Editorial scaffolding so you keep control — repoglot scan emits a per-file confidence-graded manifest you review before committing budget ; repoglot glossary seeds a frequency-ranked starting draft for your editorial pass.

Install

One-liner — clones the repo into ~/.repoglot and symlinks repoglot into ~/.local/bin:

curl -fsSL https://raw.githubusercontent.com/christopherlouet/repoglot/main/install.sh | bash

Or, for the trust-but-verify crowd:

git clone https://github.com/christopherlouet/repoglot.git
cd repoglot
make install

Requires git, python3 with PyYAML, make. The claude CLI is needed at translation time.

The CLI surface

A single binary, ten subcommands. A real demo is on the roadmap for a future release ; for now, here is what --help surfaces :

$ repoglot --help
Usage: repoglot <command> [options]

Commands:
  init       Bootstrap a project : scan + glossary draft + blacklist
  scan       Produce i18n-manifest.yaml for a repo
  glossary   Build a frequency-ranked glossary draft from the manifest
  lock       Lock the glossary after manual review
  inventory  Generate inventory.json from the manifest (--from-manifest)
  batch      Translate a tier (auto-routes per profile)
  run        One-shot pipeline : lock + inventory + batch (dry-run by default)
  status     Show migration progress dashboard
  verify     Run validators on a translated file
  pr         Open a PR for a translated tier

When to use repoglot — and when not to

Your situationTool that fits
Ship a product (Next.js / React / Vue / Flutter), need i18n JSON keys translated for end users A full-product i18n SaaS like lingo.dev
Want a single README.md translated, no glossary, no structural enforcement A plain LLM call or a Markdown-only translator
Translate a JSON i18n bundle and that's the whole job A JSON-focused tool (ai-i18n, i18n-ally, …)
Maintain an OSS repo with docs + code-comments + maybe i18n strings, hundreds of files, polyglot stack, and translation drift across them is not acceptable repoglot

If your needs map cleanly to one of the other tools, use that. repoglot is built for the seam between them.