I was drafting a message to my girlfriend in Farsi — something small, 'I missed you today' — and every tool I tried handed me one flat string with no indication of whether it was tender or clinical, spoken or written, something a person would actually say to someone they love.
That's the failure mode of literal translation tools: one answer, no register, no cultural scaffolding, nothing that tells you whether you'd sound warm or weird.
So I built konid. For any phrase you want to express, it returns three options ordered casual to formal, each with a register explanation and a cultural nuance note comparing the options. It also plays audio pronunciation through your speakers using node-edge-tts — no external API key, just sound.
An example of what the output looks like in practice:
Phrase: "I missed you today"
Language: Farsi
1. [Casual] دلم برات تنگ شد — intimate, spoken between close partners; this is what you'd actually say
2. [Neutral] امروز دلم برات تنگ شده بود — slightly more complete grammatically; fine in text
3. [Formal] امروز به یاد شما بودم — distant, used in writing or with someone you'd address respectfully
Cultural note: In Farsi, the casual form is heavily preferred in romantic contexts; the formal register would read as cold or ironic between partners.
Works across 13+ languages — Mandarin, Japanese, Korean, Spanish, French, German, Portuguese, Italian, Russian, Arabic, Hindi, Farsi, and more. Runs as an MCP server in Claude Code, Cursor, VS Code Copilot, Windsurf, Zed, JetBrains, and Claude Cowork. Also installs as a ChatGPT app via Developer mode using the endpoint https://konid.fly.dev/mcp.
For Claude Code the install is one line:
claude mcp add konid-ai -- npx -y konid-ai
MIT licensed. https://github.com/robertnowell/konid-language-learning
Top comments (0)