cutlet
Romaji converter
What it is and what it does
Cutlet is a Python library that converts Japanese text into Latin-character romanization. It supports three major romanization systems (Modified Hepburn, Kunrei-shiki, and Nihon-shiki) and includes features like proper noun capitalization, foreign spelling detection via UniDic, and URL-safe slug generation. The library uses fugashi for morphological analysis, meaning it shares the same tokenization and dictionary infrastructure as other Japanese NLP tools.
The package is useful when you need to make Japanese text readable to audiences unfamiliar with Japanese characters, generate URL-safe versions of Japanese names or phrases, or integrate romanization into broader Japanese language processing pipelines. It handles common exceptions (Tokyo, Osaka) and allows custom overrides for individual words or character mappings.
Use it for:
- Generate URL slugs from Japanese product or article titles for web applications
- Convert Japanese names and addresses to romanized form for international databases or forms
- Build search or filtering systems that accept both Japanese and romanized input
- Create phonetic transcriptions of Japanese text for accessibility or educational purposes
- Integrate romanization into NLP pipelines that process mixed-language content
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Cutlet converts Japanese text to romaji (Latin characters) using multiple romanization systems including Modified Hepburn, Kunrei-shiki, and Nihon-shiki, with support for proper noun capitalization and URL slug generation.
Yes. Cutlet is actively maintained, has no known vulnerabilities, installs with low friction, and solves a specific problem well. Use it if you need to romanize Japanese text; the permissive MIT license and moderate popularity (top 15000 packages) suggest it is stable and reliable for production use. Verify that your environment can satisfy the MeCab dictionary requirement before deploying.
Install
cutlet on PyPI
pip
pip install cutletuv
uv add cutletpoetry
poetry add cutletInstalling cutlet
Before you install
Low install friction with a pure Python wheel. Actively maintained as of 2026-07-01 with 382 repository stars. Requires three runtime dependencies (jaconv, fugashi, mojimoji) and optionally a MeCab dictionary like unidic-lite for full functionality.
License in practice
Licensed under MIT (permissive), allowing free use, modification, and distribution with minimal restrictions.
Quickstart
pip install cutlet
import cutlet
katsu = cutlet.Cutlet()
katsu.romaji("カツカレーは美味しい")
# => 'Cutlet curry wa oishii'
Requires Python 3.8 or later. For full functionality, install a MeCab dictionary such as unidic-lite.
Verify before relying
- Whether fugashi's MeCab dependency is automatically satisfied or requires separate system installation
- Performance characteristics on large volumes of Japanese text
- Accuracy of romanization across different Japanese dialects or specialized terminology
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — jaconv, fugashi, mojimoji |
| Maintenance | actively maintained — 44 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 110,368/month — #12,466 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cutlet-0.5.2-py3-none-any.whl
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
pykakasiTransliterates Japanese text (hiragana,…
copyleft · top 5,000 on PyPI
kanjizeConverts between Japanese kanji number…
permissive · top 15,000 on PyPI
anyasciiConverts Unicode text to ASCII-only equivalents…
permissive · top 5,000 on PyPI
hangul-romanizeConverts Korean Hangul text to romanized (Latin…
unclear · top 15,000 on PyPI
uromanConverts text in any script to Latin alphabet…
permissive · top 15,000 on PyPI
misakiConverts written text to phonetic…
permissive · top 15,000 on PyPI
nagisaNagisa performs Japanese word segmentation and…
permissive · top 5,000 on PyPI
UnidecodeConverts Unicode text to ASCII-safe…
copyleft · top 1,000 on PyPI
jaconvjaconv converts between Japanese character…
permissive · top 5,000 on PyPI
mecab-python3Python wrapper for MeCab, a morphological…
permissive · top 5,000 on PyPI