Word Aligner

io.github.tinygodsdevPublished by GitHub account tinygodsdevv1.0.0Updated Oct 24, 2026

Turn a phrase and its translation into a shareable word-alignment diagram.

VerifiedStreamable HTTPWeb executableKnowledge & MemoryMedia & Design

Overview

AI-generated overview

A remote MCP server that turns two or more stacked lines of text into a shareable word-alignment diagram with a link and preview image.

What you can do
Create a word-alignment diagram from stacked lines of text, such as a translation and its source, a gloss, or IPA, linking which words match across lines and returning a shareable URL plus a preview image.
When to use it
Useful when a user wants to show word-by-word correspondence between a phrase and its translation, build interlinear glosses, or produce a shareable visual for lessons, grammar notes, or conlang documentation.
Requirements
A remote Streamable HTTP endpoint; no authentication, environment variables, or headers are declared. The README states it runs with no auth.
Before you install
The text you submit is sent to a third-party service and encoded into a shareable link, so avoid sending sensitive or private content. The tool creates a link and preview image but does not modify existing data.

Installation

In SourceWeft

  1. Open Word Aligner in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.tinygodsdev%2Fword-aligner/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "word-aligner": {
      "type": "http",
      "url": "https://aligner.tinygods.dev/mcp"
    }
  }
}

README

Aligner — word-by-word translation visualizer

aligner.tinygods.dev

Word Aligner is a free web tool that shows which word matches which across stacked lines of text. Type or paste a sentence and its translation, click a word and then its match on the line above or below, and curved connectors draw the alignment between them. Add extra rows for glosses or IPA, then export the diagram or share it with a link.

No accounts, no machine translation — you stay in control of every link. Great for lessons, social posts, grammar notes, and conlang documentation.

[Linking words between “Hello world” and its French translation]

What it's for

  • Language learners — see exactly why a translation says what it does: which source word became which target word, what gets dropped, and where word order changes.
  • Teachers — build handouts, slides, and flashcards; export a clean PNG or SVG and drop it into a lesson without retyping anything.
  • Linguists — produce Leipzig-style interlinear glosses with morpheme alignment, case/agreement tags, and free translations.
  • Conlangers — show how a constructed language maps onto English, with custom script fonts, gloss rows, and IPA.

What it does

  • Multi-line alignment — stack as many rows as you need (source, translation, gloss, IPA); links connect vertically adjacent lines.
  • Manual word linking — click a word, then its match; supports one-to-many and many-to-one links and freely crossing connectors for reordered translations.
  • Interlinear glosses & IPA — add annotation tiers above or below any line.
  • Right-to-left scripts — Hebrew, Arabic, and mixed LTR/RTL layouts.
  • Vertical writing systems — stand the whole diagram up as columns for Japanese tategaki, Chinese, or traditional Mongolian; characters stack or the line rotates, chosen per line, so a horizontal translation stays readable beside it.
  • Tokenization control — choose how text splits into word boxes (split characters, a join marker for fixed expressions, optional punctuation handling).
  • Per-line typography — font, size, spacing, and direction per line; custom and Google Fonts.
  • Exports — PNG, SVG, PDF, and a self-contained HTML file; exports match the preview, including custom-font shaping.
  • Shareable URLs — the whole alignment (text, links, and visual settings) is encoded in a ?data= link.

Examples

Browse ready-made examples — bilingual pairs, Turkish interlinear with IPA, RTL scripts, vertical Japanese and traditional Mongolian, Tagalog compounds, Japanese–Chinese–English word order, and more interlinear glosses — at aligner.tinygods.dev/examples. Open any one in the editor to adapt it.

[Turkish interlinear preview with glosses, IPA, and connectors]

[Conlang example with a custom script font and interlinear glosses]

How it works

Edit your lines in the line editor, then link words in the preview.

[Aligner line editor with stacked lines and word-splitting summary]

Tune colors, tokenization, and fonts in settings, then export or share.

[Export options: PNG, SVG, PDF, and HTML]

Word alignment vs. interlinear vs. parallel text

  • Interlinear translation places a gloss directly under each source word — compact, but it hides reordering. Aligner keeps both sentences on their own line and draws connectors, so reorderings, splits, and merges stay obvious.
  • Parallel text is side-by-side bilingual reading for long-form study. Aligner focuses on one sentence pair at a time with explicit connectors showing which tokens correspond.

API

Word Aligner has a free HTTP API for generating alignment links programmatically.

POST https://aligner.tinygods.dev/api/alignContent-Type: application/json
{  "lines": ["Hello world", "Bonjour le monde"],  "alignments": [[0, 0, 1, 0], [0, 1, 1, 2]]}

Returns { "url": "https://aligner.tinygods.dev/?data=..." }.

Supports per-line options (font, size, RTL), global visual settings (palette, line style, background), pair-level gap control, and multi-line stacks with selective connectors.

Using Word Aligner as an AI agent tool

The word-aligner-skill/ directory is a ready-to-install skill that teaches AI assistants (Claude, ChatGPT, etc.) how to use the API. Once installed, it enables flows like:

"Translate 'я хочу спать' into English and show me the word alignment."

The agent translates, calls the API, and returns a shareable link.

  • For Claude: point your Claude project at this repository or add the contents of word-aligner-skill/SKILL.md as a custom instruction.
  • For ChatGPT: zip word-aligner-skill/ and upload it as a custom Skill.

Install instructions and a downloadable archive are also on the site: aligner.tinygods.dev/skill.

MCP server

There is also an MCP server at https://aligner.tinygods.dev/mcp that exposes a single create_word_alignment tool. It returns a shareable link plus a preview image, and runs inside the same app over Streamable HTTP with no auth. Connect it in Claude:

bash
claude mcp add --transport http word-aligner https://aligner.tinygods.dev/mcp

See docs/mcp-server.md for ChatGPT Developer Mode setup and the tool schema.

Learn more

Created by Dani Polani. See other tools for linguistics and conlanging.

Source: README.md at commit c794a8b

Tools

1

create_word_alignment

Create word alignment diagram

Create a shareable Word Aligner diagram that shows which words match across two or more stacked lines of text (a translation and its source, an interlinear gloss, IPA, etc.). Returns a URL that opens the interactive diagram, plus a preview image. Use this when the user wants to translate a phrase and show word correspondences, align a translation with its source (including RTL scripts like Hebrew or Arabic, or vertically written ones like Japanese and Mongolian), or build a Leipzig-style interlinear gloss. Word indices are 0-based token positions. Tokenize each line the same way the tool does before assigning indices: - Whitespace always splits ("I have been going" -> I[0] have[1] been[2] going[3]). - The characters in settings.tokenSplitChars (default ".-|") also split and are then removed from the rendered text, so "go.PST.IPFV" becomes three tokens (go, PST, IPFV) and the dots disappear. For Leipzig glosses set tokenSplitChars to "-|" to keep the dots. - Punctuation stays attached by default ("Hello, world!" -> Hello,[0] world![1]). - In RTL lines, word 0 is the logically first word (rightmost on screen); index in reading order. - Japanese and Chinese are written without spaces and nothing is segmented for you: put spaces where the alignment units should be. For a vertically written script set settings.axis to "columns". Every line then becomes a vertical column and the connectors run sideways. Set orientation per line: "vertical" stacks the characters (Japanese, Chinese), "sideways" rotates the line a quarter turn (traditional Mongolian, and Latin runs inside vertical text), "upright" leaves a translation as horizontal word boxes. The first line is the leftmost column, so for Japanese and Chinese, whose columns read right to left, list the translation first and the script second. Each alignment is [lineA, wordA, lineB, wordB]; the two lines must be neighbours in the stack (|lineA - lineB| = 1), which means one above the other in rows and side by side in colu

Parameterslinesrequiredpairssettingsalignments

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts