What Programming Languages Does OmniRoute Support? Understanding Its 30+ Human Language System

OmniRoute natively supports more than 30 human languages—not programming languages—through its internationalization (i18n) system that automatically detects client locales and delivers translated dashboards, CLI outputs, and API responses across 42 distinct locales.

While the query asks what programming languages OmniRoute supports, the diegosouzapw/OmniRoute repository is architected as a multilingual AI proxy that prioritizes end-user accessibility over polyglot code execution. The platform’s i18n layer, defined in src/i18n/config.ts, maintains a comprehensive registry of supported locales that power the web interface, command-line tools, and documentation.

Human Languages vs. Programming Languages in OmniRoute

OmniRoute itself is built primarily in TypeScript and JavaScript, but the "programming languages" query typically refers to its human language support for global users. The system currently supports 42 locales as of version 3.8.51, ranging from major international languages to regional variants.

The supported locale codes include:

  • en, es, fr, de, ja, zh-TW, az, and 35+ additional language identifiers
  • Full Unicode compliance for right-to-left (RTL) scripts and regional date formatting
  • Automatic language detection based on browser headers and system environment variables

According to docs/guides/I18N.md, the i18n system ensures that error messages, feature descriptions, and navigation elements render in the user’s preferred language without manual configuration.

Core Configuration and Source Files

The internationalization architecture centers on three critical components that manage language availability and runtime selection.

src/i18n/config.ts serves as the central registry, exporting a static mapping of ISO language codes to localized display names. This file enumerates every supported locale and validates language strings at compile time to prevent runtime errors.

src/lib/cli/commands/lang.ts implements the command-line interface for language management, exposing get and set subcommands that read from and write to the global configuration store.

docs/reference/API_REFERENCE.md documents the /api/compression/language-packs endpoint, which returns available language pack metadata—including specialized compression codecs labeled as "Caveman" packs—enabling dynamic locale loading for edge deployments.

Practical Implementation Examples

Developers can programmatically adjust language settings or detect user preferences using the following patterns:

// Set the CLI language to French programmatically
await omniroute.config.lang.set('fr');

// Detect and apply the user's browser language in the dashboard
import { detectBrowserLocale } from '@/shared/lib/persistLocale';
const locale = detectBrowserLocale(); // Returns 'es', 'de', 'zh-TW', etc.
await omniroute.config.lang.set(locale);

For API integrations, request the available language packs to validate locale support before initiating sessions:


# Retrieve supported language packs via the REST API

curl -X GET https://api.omniroute.example.com/api/compression/language-packs \
  -H "Accept-Language: fr, en;q=0.9"

Automatic Language Detection Strategy

OmniRoute employs a cascading detection mechanism that respects user intent while providing sensible defaults. As implemented in src/lib/cli/commands/lang.ts, the system checks:

  1. Explicit CLI flags (--lang=es)
  2. User-specific configuration files (~/.omniroute/config.json)
  3. Environment variables (OMNIROUTE_LANG)
  4. Browser Accept-Language headers for web requests
  5. System OS locale as a final fallback

This hierarchy ensures that automated scripts can override browser defaults, while interactive users receive their native language without manual setup.

Summary

  • OmniRoute supports 30+ human languages (42 locales in v3.8.51), not multiple programming languages for code execution.
  • The authoritative list resides in src/i18n/config.ts, which maps ISO codes to localized display strings.
  • CLI language control is handled through src/lib/cli/commands/lang.ts, supporting both manual selection and automatic detection.
  • The /api/compression/language-packs endpoint provides runtime access to available localization resources.
  • Browser and OS locale detection happens automatically via the detectBrowserLocale utility in @/shared/lib/persistLocale.

Frequently Asked Questions

Does OmniRoute support writing AI prompts in multiple programming languages?

No. OmniRoute processes natural language prompts in 30+ human languages (like Spanish, Japanese, or German), but the platform itself is written in TypeScript. You interact with the AI using human language inputs, not programming code.

How do I add a new language to my OmniRoute deployment?

Submit a locale request through the language packs API or modify src/i18n/config.ts to register the new ISO code, then provide translation JSON files in the src/i18n/locales/ directory. The system hot-reloads new languages without requiring a full restart.

Why does the API reference mention "Caveman" language packs?

The /api/compression/language-packs endpoint returns specialized compression codecs, including internal identifiers labeled as "Caveman" packs, which handle specific text encoding optimizations for low-bandwidth environments. These are technical artifacts of the compression layer, not archaic human languages.

Can I force OmniRoute to use English regardless of my browser settings?

Yes. Execute omniroute config lang set en in your terminal, or set the environment variable OMNIROUTE_LANG=en before starting the service. This overrides all automatic detection logic defined in the CLI command handlers.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →