DialectOS
by KyaniteLabs
README.md
<p align="center">
<img src="assets/dialectos-hero.webp" alt="DialectOS β Spanish dialect localization MCP server: translate and QA across 25 regional variants" width="100%">
</p>
<div align="center">
# π DialectOS
**TL;DR:** DialectOS β operating system for multi-dialect / multi-agent product work. Best for builders running multi-agent product and language workflows. Keywords: multi-agent OS, dialect, product agent orchestration.
**The first Model Context Protocol server built specifically for Spanish dialects.**
DialectOS is an open-source Spanish dialect translation server that runs as an MCP
(Model Context Protocol) tool and CLI. It translates English and other languages into
25 regional Spanish variants β Mexican, Argentinian, Colombian, Puerto Rican, and more β
while preserving markdown structure, enforcing glossary terms, and applying adversarial
quality gates that catch semantic drift before it reaches users.
Translate, detect, and adapt content across **25 regional Spanish variants** while preserving markdown structure, code comments, and locale file formatting.
[](https://github.com/KyaniteLabs/DialectOS/actions/workflows/ci.yml)
[](https://github.com/KyaniteLabs/DialectOS/actions)
[](LICENSE)
[](package.json)
[](package.json)
[](https://modelcontextprotocol.io)
[](https://github.com/KyaniteLabs/DialectOS/security)
[π Documentation](https://github.com/KyaniteLabs/DialectOS#readme) Β·
[π Quick Start](#quick-start) Β·
[π οΈ MCP Tools](#mcp-tools) Β·
[Agent Skill](#agent-skill) Β·
[π¦ Packages](#packages) Β·
[π€ Contributing](CONTRIBUTING.md) Β·
[π Roadmap](ROADMAP.md)
</div>
---
## Public Discovery
**DialectOS** is a Spanish localization and dialect QA system for AI agents, documentation teams, app developers, and support organizations. It provides MCP tools, CLI workflows, glossary enforcement, locale-file validation, and adversarial quality gates for regional Spanish variants.
**AI discovery:** [`llms.txt`](llms.txt) provides a compact project summary for AI assistants and search crawlers.
**Best-fit searches:** Spanish dialect translation MCP server, Spanish localization QA, Model Context Protocol translation tool, i18n validation CLI, regional Spanish translator, glossary enforcement, AI localization audit, Spanish launch certification.
## Agent Skill
DialectOS includes a public agent skill at [`skills/dialectos/SKILL.md`](skills/dialectos/SKILL.md). Use `$dialectos` in compatible agent hosts when you want an agent to choose the right MCP or CLI workflow for regional Spanish translation, markdown preservation, locale-file validation, glossary enforcement, register checks, and launch-readiness QA.
## Spanish Launch Certification
DialectOS is available as a paid Spanish localization launch audit. We certify your Spanish docs, app strings, support macros, or locale files across target dialects and deliver an MQM-aligned launch-readiness report.
- Beta pilot: **$500**
- Scope: up to 10,000 source words and 5 target dialects
- Deliverables: certification report, issue list, severity table, recommended fixes, launch decision
- Sample report: [`audits/sample-customer-report.md`](audits/sample-customer-report.md)
- Offer details: [`docs/spanish-launch-certification.md`](docs/spanish-launch-certification.md)
## β¨ What makes DialectOS different?
| Feature | Google Translate | DeepL API | **DialectOS** |
|---------|-----------------|-----------|---------------|
| Spanish dialect awareness | β Generic "Spanish" | β οΈ Limited variants | β
**25 regional variants** |
| MCP native integration | β | β | β
**17 MCP tools** |
| Markdown structure preservation | β | β | β
**Tables, code blocks, links intact** |
| i18n locale file support | β | β | β
**JSON locale diff & merge** |
| Gender-neutral language | β | β | β
**elles / latine / -x** |
| Formality checking (tΓΊ vs usted) | β | β | β
**Cross-dialect consistency** |
| Adversarial quality gates | β | β | β
**Semantic drift + structure validation** |
| LLM-first dialect adaptation | β Generic MT | β οΈ Limited dialect control | β
**Any OpenAI/Anthropic/LM Studio local LLM + dialect contracts** |
| Translation validation (any provider) | β | β | β
**`dialectos validate` β standalone correctness check** |
| GitHub CI integration | β | β | β
**Composite action for PR validation** |
| Auto-glossary from corrections | β | β | β
**Learns from user feedback** |
| Public benchmark suite | β | β | β
**205 adversarial samples across 25 dialects** |
---
## π― Why this exists
> *"We shipped a product to Mexico using our Spain Spanish translations. Users thought we were being intentionally rude."*
Spanish is not one language β it's **25 regional variants** with different vocabulary, formality levels, slang, and grammatical preferences. Existing translation tools treat Spanish as a monolith.
**DialectOS solves this by:**
- Understanding regional differences (es-MX vs es-ES vs es-AR vs es-CO...)
- Preserving technical document structure during translation
- Providing glossary enforcement for consistent terminology
- Adding semantic context, dialect grammar profiles, quality contracts, and quality gates that catch drift before it reaches users
- Running as an MCP server so AI assistants can translate natively
---
## π Quick Start
> **Install note:** DialectOS v0.3.0 is distributed through GitHub Release tarballs, not the npm registry. Use the released MCP/CLI tarballs for agent and command-line installs; clone the repo only for local development or the browser demo.
### MCP setup
Add the released MCP server to Claude Desktop, Cursor, or any MCP client:
```json
{
"mcpServers": {
"dialectos": {
"command": "pnpm",
"args": [
"dlx",
"https://github.com/KyaniteLabs/DialectOS/releases/download/v0.3.0/dialectos-mcp-0.3.0.tgz"
],
"env": {
"LLM_API_URL": "https://your-llm-gateway/v1/chat/completions",
"LLM_MODEL": "your-dialect-capable-model",
"LLM_API_KEY": "your-key-if-required",
"LLM_API_FORMAT": "openai",
"ALLOWED_LOCALE_DIRS": "/path/to/locales"
}
}
}
}
```
For local development from a source checkout, run `pnpm build` and point your MCP client at `packages/mcp/dist/index.js`.
### Full-app browser demo
The browser demo requires a source checkout.
The browser demo is no longer a fake/static rule replacer. It calls a local
DialectOS backend, and that backend calls the configured provider stack.
```bash
LLM_API_URL="http://127.0.0.1:1234/v1/chat/completions" \
LLM_API_FORMAT="openai" \
LLM_MODEL="your-local-model-name" \
LLM_ALLOW_LOCAL=1 \
pnpm demo
```
Open `http://127.0.0.1:8080`.
For the beginner container walkthrough, see
[`docs/full-app-demo.md`](docs/full-app-demo.md).
### Recommended certified models
For `v0.3.0`, the recommended default cloud model is `glm-4.5-air` through the Z.ai international Anthropic-compatible endpoint. It passed basic, expanded adversarial, and long-document certification. Use `glm-5.1` when you want the higher-confidence/premium option, and `qwen3.5-9b` via LM Studio for local/offline certification.
```bash
export LLM_API_URL="https://api.z.ai/api/anthropic/v1/messages"
export LLM_MODEL="glm-4.5-air"
export LLM_API_FORMAT="anthropic"
export LLM_API_KEY="..."
```
### LM Studio local model testing
Start LM Studio's local server, then point DialectOS at any downloaded local model. `LLM_API_FORMAT=lmstudio` uses LM Studio's native REST API and loads the model just-in-time when needed.
```bash
LM_STUDIO_URL="http://127.0.0.1:1234" \
LLM_MODEL="publisher/model-key-or-api-identifier" \
LLM_API_FORMAT="lmstudio" \
pnpm dialect:eval -- --live --provider=llm --out=/tmp/dialectos-lmstudio-eval
```
### Incremental provider certification
Use `dialect:certify` for long local-model or cloud-provider runs. It writes `events.jsonl`, `progress.json`, and an incrementally updated `results.json` after every sample, with per-sample timeout protection.
```bash
LM_STUDIO_URL="http://127.0.0.1:1234" \
LLM_MODEL="qwen3.5-9b" \
LLM_API_FORMAT="lmstudio" \
pnpm dialect:certify -- --live --provider=llm --sample-timeout-ms=300000 --out=/tmp/dialectos-certify
```
### Adversarial dialect certification
Use `dialect:certify:adversarial` to run paraphrase, dialect-collision, taboo-copy, placeholder, register, and repeatability traps. It wraps `dialect:certify` and writes a `failure-matrix.md` plus aggregate repeatability results.
```bash
pnpm dialect:certify:adversarial -- --live --provider=llm --repeat=2 --sample-timeout-ms=300000 --out=/tmp/dialectos-adversarial
```
### Long-document certification
Use `dialect:certify:documents` to certify README/API-doc/locale JSON flows, not just sentence fixtures. It checks markdown structure, placeholders, URLs, code fences, API tables, and locale JSON outputs.
```bash
pnpm dialect:certify:documents -- --live --provider=llm --dialects=es-MX,es-PA,es-PR --out=/tmp/dialectos-doc-cert
```
### Customer-facing certification report
Use `dialect:report` to turn certification artifacts into a customer-facing Markdown deliverable for paid launch audits.
```bash
pnpm dialect:report -- --input=audits/release-candidate-2026-04-22/model-matrix.json --out=customer-report.md --customer="Acme SaaS" --product="Spanish launch"
```
### CLI install
```bash
# Install the v0.3.0 CLI tarball from the GitHub Release
pnpm add -g https://github.com/KyaniteLabs/DialectOS/releases/download/v0.3.0/dialectos-cli-0.3.0.tgz
# Or use a local source checkout
pnpm install --frozen-lockfile
pnpm build
# Translate to Mexican Spanish
dialectos translate "Hello world" --dialect es-MX
# Translate a README preserving structure
dialectos translate-readme README.md --dialect es-AR --output README.ar.md
# Validate an existing translation
dialectos validate --source "Click the button" --translated "Haz clic en el botΓ³n" --dialect es-MX
# Validate translation files
dialectos validate --source-file en.json --translated-file es-MX.json --dialect es-MX --format json
# View translation corpus statistics
dialectos corpus stats
# Run dialect quality benchmark
dialectos benchmark run --dialects es-MX,es-AR,es-ES
# Generate glossary suggestions from corrections
dialectos glossary suggest --min-occurrences 3
# Compare two glossary versions
dialectos glossary diff glossary-v1.json glossary-v2.json
# Detect missing i18n keys
dialectos i18n detect-missing ./locales/en.json ./locales/es.json
# List all supported dialects
dialectos dialects list
```
### From source
```bash
git clone https://github.com/KyaniteLabs/DialectOS.git
cd DialectOS
pnpm install
pnpm build
pnpm test # 662+ tests passing
```
---
## π οΈ MCP Tools
### Markdown Translation (4 tools)
| Tool | Description |
|------|-------------|
| `translate_markdown` | Translate while preserving tables, code blocks, links |
| `extract_translatable` | Extract only translatable text from markdown |
| `translate_api_docs` | Translate API docs with table cell-level translation |
| `create_bilingual_doc` | Side-by-side bilingual documents |
### i18n Operations (6 tools)
| Tool | Description |
|------|-------------|
| `detect_missing_keys` | Compare locale files for missing keys |
| `translate_missing_keys` | Auto-translate missing keys |
| `batch_translate_locales` | Batch translate to multiple dialects |
| `manage_dialect_variants` | Create dialect-specific variants |
| `check_formality` | Check tΓΊ vs usted consistency |
| `apply_gender_neutral` | Apply gender-neutral language |
### Translation (7 tools)
| Tool | Description |
|------|-------------|
| `translate_text` | Translate with semantic context, grammar profiles, and quality contracts |
| `detect_dialect` | Detect dialect from sample text |
| `translate_code_comment` | Translate comments, preserve code |
| `translate_readme` | Full README translation pipeline |
| `search_glossary` | Search 300+ source-attributed glossary terms |
| `list_dialects` | List all 25 supported dialects |
| `research_regional_term` | Research source-backed regional lexeme proposals without mutating runtime data |
---
## π¦ Packages
| Package | Version | Description | Tests |
|---------|---------|-------------|-------|
| [`@dialectos/mcp`](packages/mcp) | `0.3.0` | 17 MCP tools (stdio server) | 93 |
| [`@dialectos/cli`](packages/cli) | `0.3.0` | CLI: translate, validate, corpus, benchmark, glossary | 569 |
| [`@dialectos/providers`](packages/providers) | `0.3.0` | LLM, DeepL, LibreTranslate, MyMemory with circuit breaker + corpus | 152 |
| [`@dialectos/security`](packages/security) | `0.3.0` | Rate limiting, SSRF protection, sanitization | 68 |
| [`@dialectos/types`](packages/types) | `0.3.0` | Shared TypeScript types + glossary, profile, certification, and quality data | 54 |
| [`@dialectos/locale-utils`](packages/locale-utils) | `0.3.0` | Locale file diff/merge utilities | 55 |
| [`@dialectos/markdown-parser`](packages/markdown-parser) | `0.3.0` | Structure-preserving markdown parser | 74 |
**662+ tests across 7 packages plus docs contracts, demo-server contracts, and static-hardening checks**
---
## π‘οΈ Security & Quality
DialectOS has undergone adversarial security hardening:
- **18 CVEs resolved** via dependency overrides
- **SSRF protection** on all provider endpoints
- **Circuit breaker** with half-open probe locks
- **Atomic checkpoint writes** with schema versioning
- **HTML injection detection** in translated output
- **Semantic drift scoring** β catches "looks valid but meaning changed"
- **Provider capability negotiation** β validates language support before API calls
- **Chaos harness** for deterministic resilience testing
See [`SECURITY.md`](SECURITY.md) for details.
---
## π¨ Supported Dialects
| Code | Region | Example Difference |
|------|--------|-------------------|
| `es-ES` | Spain | *"Coche"* (car), *"Ordenador"* (computer) |
| `es-MX` | Mexico | *"Carro"*, *"Computadora"* |
| `es-AR` | Argentina | *"Auto"*, *"Computadora"*, *"Che"* |
| `es-CO` | Colombia | *"Carro"*, *"Computador"*, *"ChΓ©vere"* |
| `es-CL` | Chile | *"Auto"*, *"Computadora"*, *"Caleta"* |
| `es-PE` | Peru | *"Carro"*, *"Computadora"*, *"Pe"* |
| `es-VE` | Venezuela | *"Carro"*, *"Computadora"*, *"Chamo"* |
| `es-UY` | Uruguay | *"Auto"*, *"Computadora"*, *"Bo"* |
| `es-GQ` | Equatorial Guinea | *"Carro"*, *"Camisola"*, *"Bacalao"* |
| `es-US` | United States | *"Carro"*, *"Computadora"*, *"Pocha"* |
| `es-PH` | Philippines (Chavacano) | *"Carro"*, *"Jendeh"*, *"Kame"* |
| `es-BZ` | Belize | *"Carro"*, *"Breki"*, *"Kriol"* |
| `es-AD` | Andorra | *"Carro"*, *"Madriu"*, *"Caldea"* |
...and 12 more. Full list via `dialectos dialects list`.
---
## ποΈ Architecture
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Client β
β (Claude Desktop / Cursor / etc.) β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β stdio
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ
β @dialectos/mcp β
β 17 tools β’ JSON-RPC over stdio β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ
β @dialectos/cli β
β translate β’ validate β’ corpus β’ benchmark β’ glossary β
β ββ Policy profiles (strict/balanced/permissive) β
β ββ Quality gates (token/glossary/structure/semantic) β
β ββ Translation corpus + auto-glossary β
β ββ Checkpoint resumption + telemetry β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ
β @dialectos/providers β
β βββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β LLM β β DeepL β β Libre/MyMemory β β
β β Primary β β Paid fallback β β Generic fallbackβ β
β βββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β β β β
β ββββββββββββββββββ΄βββββββββββββββββββββ β
β Circuit Breaker + Rate Limiter β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
## π Quality Gates
Every translation passes through 4 quality dimensions:
```
Quality Score = tokenIntegrityΓ25% + glossaryFidelityΓ30% + structureIntegrityΓ20% + semanticSimilarityΓ25%
```
| Gate | What it checks | Example failure |
|------|---------------|-----------------|
| **Token Integrity** | Protected terms preserved | "Kyanite Labs" β "Cianita Labs" |
| **Glossary Fidelity** | Enforced terminology used | "API" β "Interfaz" (when glossary says "API") |
| **Structure Integrity** | Markdown structure intact | Missing code fence, broken table |
| **Semantic Similarity** | Meaning not drifted | "API is down" β "Hello world" |
---
## β FAQ
**What is DialectOS?**
DialectOS is an open-source translation engine for Spanish regional dialects. It runs as
an MCP server (for AI assistants like Claude) and a CLI tool for developers.
**How is DialectOS different from Google Translate?**
Google Translate treats Spanish as one language. DialectOS understands 25 regional
variants, preserves markdown structure, enforces glossaries, and applies quality gates
that catch errors before they reach users.
**What are Spanish dialects?**
Spanish varies significantly by country. Mexican Spanish uses "carro" for car; Spain uses
"coche"; Argentina uses "auto". DialectOS handles these differences automatically.
**Does DialectOS work with ChatGPT / Claude?**
Yes. DialectOS is an MCP server, so Claude Desktop, Cursor, Windsurf, and other MCP
clients can use its 17 translation tools natively.
**Is DialectOS free?**
Yes. DialectOS v0.3.0 is released under Apache-2.0. See [LICENSE](LICENSE) for details.
**What is MCP?**
Model Context Protocol is an open standard that lets AI assistants use external tools.
DialectOS exposes 17 translation tools through MCP so AI agents can translate natively.
**Can I use DialectOS for commercial projects?**
Yes. Apache-2.0 allows commercial use, modification, and redistribution subject to the license terms. See [LICENSE](LICENSE) for details.
**How accurate is the translation?**
DialectOS applies 4 quality gates (token integrity, glossary fidelity, structure integrity,
semantic similarity) and adversarial tests. Automated tests verify correctness across dialects.
## π·οΈ Badges
Add this badge to your project if you use DialectOS for translation:
```markdown
[](https://github.com/KyaniteLabs/DialectOS)
```
## β‘ GitHub Action
Validate Spanish translations in CI on every pull request:
```yaml
- uses: KyaniteLabs/DialectOS/action # Planned β version pinning unavailable until first release
with:
dialect: es-MX
source-dir: locales/en
target-patterns: 'locales/es-MX/*.json'
fail-on-blocking: true
```
Multi-dialect matrix:
```yaml
strategy:
matrix:
dialect: [es-ES, es-MX, es-AR, es-CO]
steps:
- uses: KyaniteLabs/DialectOS/action # Planned β version pinning unavailable until first release
with:
dialect: ${{ matrix.dialect }}
fail-on-blocking: true
```
See [`docs/github-action.md`](docs/github-action.md) for full configuration options.
---
## π€ Contributing
We welcome contributors! See [`CONTRIBUTING.md`](CONTRIBUTING.md) for:
- Setting up your development environment
- Running the test suite
- Submitting pull requests
- Code style guidelines
**Good first issues** are tagged with `good first issue` β perfect for newcomers.
---
## π Roadmap
See [`ROADMAP.md`](ROADMAP.md) for upcoming features including:
- Portuguese dialect support (pt-BR, pt-PT)
- Real-time collaborative translation
- Custom provider plugins
- OpenAI-compatible, Anthropic-compatible, and LM Studio local gateways via `LLM_API_URL`/`LM_STUDIO_URL` + `LLM_MODEL` + `LLM_API_FORMAT`
- VS Code extension
---
## π License
Apache-2.0 β see [`LICENSE`](LICENSE) for details.
---
<div align="center">
Made with β€οΈ by KyaniteLabs and contributors.
**Star β this repo if it helps your project!**
</div>
---
## Part of KyaniteLabs
More from [KyaniteLabs](https://kyanitelabs.tech). Related projects:
- **[mcp-video](https://github.com/KyaniteLabs/mcp-video)** β guardrailed video-editing MCP server for AI agents
- **[Epoch](https://github.com/KyaniteLabs/Epoch)** β time-estimation MCP server (PERT) for AI agents
- **[checkyourself](https://github.com/KyaniteLabs/checkyourself)** β local-first production-readiness checks for AI-built code
β More at **[kyanitelabs.tech](https://kyanitelabs.tech)**
<!-- s-plus-geo:start -->
## What is DialectOS?
**DialectOS** is a **operating system for multi-dialect / multi-agent product work** that helps **builders running multi-agent product and language workflows** **coordinate dialect-aware agent operations with clear product surfaces**.
| | |
| --- | --- |
| **Product** | DialectOS |
| **Category** | operating system for multi-dialect / multi-agent product work |
| **Best for** | builders running multi-agent product and language workflows |
| **Not** | a general chat UI |
| **Source** | [GitHub](https://github.com/KyaniteLabs/DialectOS) Β· [Forgejo](https://git.kyanitelabs.tech/KyaniteLabs/DialectOS) |
| **Keywords** | multi-agent OS, dialect, product agent orchestration |
## Who it's for
- Primary: builders running multi-agent product and language workflows
- Use when you need to coordinate dialect-aware agent operations with clear product surfaces
- Skip if you need a general chat UI
## FAQ
### What is DialectOS?
DialectOS is a operating system for multi-dialect / multi-agent product work. It helps builders running multi-agent product and language workflows coordinate dialect-aware agent operations with clear product surfaces.
### Who should use DialectOS?
builders running multi-agent product and language workflows.
### How is DialectOS different?
Unlike single-agent chat apps, DialectOS is built for multi-dialect product operations.
### Is DialectOS production software?
Treat the README status and release tags as source of truth for maturity. Validate against your own requirements before production use.
## Status
- Maintained as of 2026 on the default branch
- Prefer release tags when pinning dependencies
- Report issues on the canonical remote listed above
## Agent surface
- Coding agents: read this README first, then repo docs/`AGENTS.md` if present
- Prefer machine-readable briefs (`llms.txt`) when the repo ships one
- MCP or skill entrypoints are documented in-repo when applicable
## Contributing
Issues and PRs welcome on the canonical remote. Keep public docs free of secrets and machine-local paths.
## License
See [LICENSE](LICENSE) in this repository (or package metadata if license is package-only).
## Table of contents
- [What is it?](#what-is-dialectos)
- [FAQ](#faq)
- [Status](#status)
<!-- s-plus-geo:end -->
TDQS
B3.4/5.0
Scored across 16 tools
Disambiguation4/5
Most tools have clearly distinct purposes, but there is some potential overlap among translate_markdown, translate_readme, and translate_api_docs; descriptions alleviate confusion slightly.
Naming Consistency5/5
All tools follow the verb_noun pattern in snake_case, making naming fully consistent and predictable.
Tool Count5/5
16 tools is well-scoped for a dialect translation server, covering translation, detection, management, and glossary without being excessive.
Completeness4/5
The tool set covers core translation, detection, and locale management needs, but could include a direct validation or export tool for full completeness.
Maintenance
ActivityActive
ResponsivenessResponsive