Skip to main content
ChatCLI was designed to be global. The user interface, including menus, hints, and status messages, is fully internationalized.

Supported Languages


Automatic Detection

The language is automatically detected from system environment variables, in the following priority order: If no variable is set or the language is not supported, the interface will be displayed in English by default.

Force a Language

To force a specific language, set CHATCLI_LANG in the .env file or in the environment:

Coverage

The i18n system holds 1925 translation keys covering all user-facing strings (parity across en.json, en-US.json, and pt-BR.json). Every new user-facing string introduced in code goes through i18n.T() wrapping — a mandatory rule for any command handler, prompt.Suggest autocomplete entry, or user-visible error message.
As of the April 2026 i18n sweep, every slash command (/hooks, /mcp, /worktree, /cost, /channel, /websearch, /config + subsections, /skill, /agent, /memory, /session, /switch, /context, /auth, /plugin) and the CLI autocomplete are 100% routed through i18n.T. Hardcoded PT/EN strings inside fmt.Println or colorize(...) count as a conformance bug.

What Is Translated

  • Interactive menus and prompts
  • Status and progress messages (including history-compactor pipeline phases: trim, summarize, emergency)
  • Command help (/help)
  • Error messages and warnings
  • Agent mode UI (execution plan, actions)
  • Coder mode feedback
  • Pre-flight and payload-recovery messages (413/WAF/EOF) with specific labels per failure type
  • Server and remote connection messages
  • Session, context, and plugin commands
  • K8s Watcher and Operator notifications

Main namespaces

Special pattern for AI instructions

The ai.response_language key is a meta-instruction written in English across all locales (including pt-BR), which tells the AI to respond in the user’s language. Intentional: LLMs follow English instructions with much higher fidelity, so the prompt that asks for “respond in pt-BR” is itself in English. The response content, of course, comes out in pt-BR. This instruction is appended to the system prompt across all three modes (chat, agent, coder), together with a [ACTIVE MODE: ...] block that tells the AI which mode it’s operating in. See cli/prompts.go and cli/cli_llm.go.
AI responses are in the language you use in the conversation — i18n controls both the ChatCLI interface and the meta-prompt that instructs the AI. The actual content the LLM generates depends on the model following the instruction (which 4.x models do very well).