Skip to content
PlaySoon

Lettras for developers

A free SDK for npm, Kotlin and an MCP server for AI agents: word searches, sudokus, crosswords and Unicode styles with every accent, running locally with no keys.

One engine, every language

The same engine runs locally in each library, with the same puzzles for the same seed. Install it from your language's package manager.

  • JavaScript · TypeScriptnpm i lettras
  • Kotlin · Java · Androidorg.lettras.artificialss:lettras
  • RustSooncargo add lettras
  • GoSoongo get github.com/Artificialss/lettras-sdk/go
  • SwiftSoongithub.com/Artificialss/lettras-sdk
  • .NET · C#Soondotnet add package Lettras
  • Dart · FlutterSoondart pub add lettras
  • HomebrewSoonbrew install artificialss/lettras/lettras
  • VS CodeSoonartificialss.lettras
  • JetBrainsSoonLettras (Marketplace)
  • MCPhttps://mcp.lettras.org/mcp

Rust, Go, Swift, .NET and Dart, the Homebrew formula and the VS Code and JetBrains extensions are built and being published to their stores. Until they appear there, use the GitHub repository.

All libraries

Word search SDK

Generate, fill and check word searches with every accent, and write text in Unicode styles. A local Rust engine for npm, Kotlin and an MCP server for your AI agents.

  • npmnpm i lettras
  • Kotlinorg.lettras.artificialss:lettras
  • MCP serverhttps://mcp.lettras.org/mcp

Free use of the MCP server

  • Small puzzles (up to 10×10 and 10 words): free and unlimited.
  • Larger puzzles: 5 free per client.
  • Filling with letters: 100 uses per client.
  • Unicode text styles: no limit.

Unicode styles SDK

Write text in 22 Unicode styles (bold, italic, script, fraktur, circled, strikethrough…) that keep accents. It is the engine behind Social Media Styles, available in npm, Kotlin and the MCP server.

  • npmnpm i lettras
  • Kotlinorg.lettras.artificialss:lettras
  • MCP serverhttps://mcp.lettras.org/mcp
Examples
npm     stylize('piña', { style: 'bold' })
Kotlin  lettras.stylize("piña", style = "bold")
MCP     stylize_text · list_styles
  • Accents are kept: an ñ is the styled n plus its tilde.
  • It tells you which characters a style cannot draw (ß, Æ, Œ, Ø…), so you can show them as an empty box.
  • No usage limit, local and with no keys.

Sudoku SDK

Generate and solve sudokus with a unique solution from your code, in five sizes. It is the engine behind our sudoku maker, available in npm, Kotlin and the MCP server.

  • npmnpm i lettras
  • Kotlinorg.lettras.artificialss:lettras
  • MCP serverhttps://mcp.lettras.org/mcp
Examples
npm     sudoku({ size: 9, difficulty: 2, seed: 5 })
Kotlin  Lettras().sudoku(size = 9, difficulty = 2, seed = 5)
MCP     sudoku · solve_sudoku
  • Every sudoku has exactly one solution.
  • Five sizes (4, 6, 9, 12 and 16) and four levels, repeatable with a seed.
  • A solver that tells you whether a grid has a single solution. No usage limit, local and with no keys.

Crossword SDK

Lay out crosswords from words and clues, with numbered entries and a solution grid. It is the engine behind our crossword maker, available in npm, Kotlin and the MCP server.

  • npmnpm i lettras
  • Kotlinorg.lettras.artificialss:lettras
  • MCP serverhttps://mcp.lettras.org/mcp
Examples
npm     crossword({ entries, rows: 12, seed: 4 })
Kotlin  Lettras().crossword(entries, rows = 12, seed = 4)
MCP     crossword
  • Words with clues go in, the crossword and its solution come out, with the numbers already placed.
  • Every language works and accents are kept; ß is a single cell shown as ẞ.
  • No usage limit, local and with no keys.