DEV Community

J Now
J Now

Posted on

Translating 'I missed you' so it doesn't land like a form letter

I was trying to tell someone something real in her first language — not "I missed you" from a dropdown, but the version that sounds like a person said it. Google Translate gave me one answer. No indication whether it was what you'd text at midnight or what you'd write in a letter to someone's grandmother.

That's the failure mode of literal translators: one output, no register, no sense of what you're actually choosing between.

konid returns 3 options per query, ordered casual to formal, with the register explained and a cultural note on the difference between them. For Mandarin or Japanese, audio plays through your speakers via node-edge-tts — no API key, no browser tab — because reading a pinyin romanization and actually hearing the tone contour are two different things. The vowel length in Korean, the pitch drop in Japanese, the stress pattern in Arabic: you don't internalize those from text. You internalize them from hearing them repeated back while you're still in the context of trying to say something.

The setup for Claude Code is one line:

claude mcp add konid-ai -- npx -y konid-ai
Enter fullscreen mode Exit fullscreen mode

It runs as an MCP server, so it works in 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. Supports 13+ languages: Mandarin, Japanese, Korean, Spanish, French, German, Portuguese, Italian, Russian, Arabic, Hindi, and more.

The name is Farsi — konid (کنید) means "do." MIT licensed.

https://github.com/robertnowell/konid-language-learning

Top comments (0)