Indic MCP: transliterate into all 22 Indian languages, convert scripts, keymaps. Hosted or local.
A multilingual Indic typing editor for all 22 scheduled languages of India, built with Blazor WebAssembly. Everything runs in the browser; no server round-trips while you type.
It grew out of the Kannada Nudi web editor (KannadaNudiEditor/KannadaNudiWeb) and keeps its
shape: a Quill rich-text editor whose keystrokes are transliterated by a C# engine.
| Language | Script |
|---|---|
| Assamese | Bengali-Assamese (ৰ, ৱ) |
| Bengali | Bengali |
| Bodo | Devanagari |
| Dogri | Devanagari |
| Gujarati | Gujarati |
| Hindi | Devanagari |
| Kannada | Kannada |
| Kashmiri | Perso-Arabic (RTL), also Devanagari |
| Konkani | Devanagari |
| Maithili | Devanagari |
| Malayalam | Malayalam (chillus, Mozhi-style keys) |
| Manipuri | Meetei Mayek (lonsum letters), also Bengali |
| Marathi | Devanagari (ळ) |
| Nepali | Devanagari |
| Odia | Odia |
| Punjabi | Gurmukhi (tippi, bindi, addak) |
| Sanskrit | Devanagari |
| Santali | Ol Chiki |
| Sindhi | Perso-Arabic (RTL), also Devanagari |
| Tamil | Tamil (ந/ன by context, ற, ழ) |
| Telugu | Telugu |
| Urdu | Perso-Arabic, Nastaliq (RTL) |
Plus English (no transliteration).
namaste → नमस्ते, vaNakkam → வணக்கம், aadaab → آداب).
ITRANS/Baraha-style keys: capitals for retroflex/long sounds (T D N L Sh A I U E O), M anusvara,
H visarga, .h explicit virama, _ to stop letters joining, | / || danda..txt / .docx, save as .docx, .txt or .html. Settings are remembered per browser.src/Bhasini.Core has no web dependencies:
Input/BrahmicPhoneticEngine turns Latin keys into Devanagari, with a per-language
PhoneticProfile (Dravidian short e/o, word-final virama, Tamil nasals, local key conventions).Scripts/OffsetScriptMapper maps Devanagari into each ISCII-derived Unicode block by offset.
Letters a script lacks fall back to the nearest letter. Script-specific spelling rules
(Malayalam chillus, Gurmukhi tippi/addak, Bengali য়) run as post-processing.Scripts/MeeteiMayekMapper handles Meetei Mayek. Input/SequenceEngine handles the alphabetic
scripts (Perso-Arabic with word-initial/final forms, and Ol Chiki).Input/TypingSession keeps the Latin keys of the current word and re-renders the whole word
on every key, returning a minimal { delete, insert } edit for the editor.src/Bhasini.Web is the Blazor WebAssembly app. wwwroot/js/editor.js intercepts keys in Quill
and calls the session synchronously.
Requires the .NET 8 SDK.
dotnet run --project src/Bhasini.Web
dotnet test
Docker (nginx serving the published static files on port 5000):
docker build -t bhasini .
Script fonts come from Google Fonts (Noto). When offline, the editor falls back to system fonts such as Nirmala UI on Windows.
Bhasini is free to use. If it helps you, please consider sponsoring its development:
BhasiniWindows/ packages Bhasini as a Windows desktop app and Microsoft Store AppX.
It adds Global mode: press F9 to type the selected Indian language in any application.
MIT © Codegres
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
Bhasini Indic Languages works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.