Bhasini Indic Languages

Indic MCP: transliterate into all 22 Indian languages, convert scripts, keymaps. Hosted or local.

OtherJavaScriptv0.1.0

Bhasini (भाषिणी)

Sponsor via Razorpay Open Bhasini License: MIT

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.

Languages

LanguageScript
AssameseBengali-Assamese (ৰ, ৱ)
BengaliBengali
BodoDevanagari
DogriDevanagari
GujaratiGujarati
HindiDevanagari
KannadaKannada
KashmiriPerso-Arabic (RTL), also Devanagari
KonkaniDevanagari
MaithiliDevanagari
MalayalamMalayalam (chillus, Mozhi-style keys)
ManipuriMeetei Mayek (lonsum letters), also Bengali
MarathiDevanagari (ळ)
NepaliDevanagari
OdiaOdia
PunjabiGurmukhi (tippi, bindi, addak)
SanskritDevanagari
SantaliOl Chiki
SindhiPerso-Arabic (RTL), also Devanagari
TamilTamil (ந/ன by context, ற, ழ)
TeluguTelugu
UrduPerso-Arabic, Nastaliq (RTL)

Plus English (no transliteration).

Features

  • Phonetic typing: type how it sounds (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.
  • InScript: the government-standard layout for every Brahmic script.
  • F9 switches between the selected language and English.
  • Key map panel for the current language and method. Tap a letter to insert it, which also helps on phones.
  • Native digits toggle (१२३, ௧௨௩, ۱۲۳, …).
  • Convert: rewrite text from one Indian script to another, or turn romanised text into script.
  • Dictation through the browser's speech recognition (Chrome and Edge, where the locale is supported).
  • Open .txt / .docx, save as .docx, .txt or .html. Settings are remembered per browser.

How it works

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.

Run

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.

Support Bhasini

Bhasini is free to use. If it helps you, please consider sponsoring its development:

Sponsor via Razorpay

Windows app

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.

License

MIT © Codegres

Setup from the maintainer

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.

Package

Bhasini.Mcpother

Compatible MCP Clients

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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More