Karukan brings LLM-driven kana→kanji conversion into the IME layer, trading extra inference cost for measurably better context-aware disambiguation and live suggestions. Instead of relying solely on dictionary lookup, it uses a local GPT-2–style model (inference via llama.cpp) plus dictionaries and rewrite rules to surface more natural candidates as you type.
What Sets It Apart
- Neural conversion integrated with an IME: the core conversion step is model-based, so surrounding text and local context influence candidate ranking — this reduces wrong-homophone selections in multi-word contexts.
- Live, low-interruption suggestions: live conversion mode updates candidates while typing (no Space required), improving typing flow for users who prefer inline feedback.
- Hybrid pipeline (model + dictionaries + rewriter): model inference is combined with a Sudachi-derived system dictionary and Mozc-origin rewriters, so rare or specialized words can still be provided by the dictionary while the model handles contextual choices.
- Learning cache and prediction: user selections are stored and prioritized (including prediction via prefix matches), so the IME adapts to personal vocabulary and shortcuts over time.
Who It's For and Tradeoffs
Great fit if you want more context-aware Japanese input on Linux (fcitx5) or macOS and are comfortable managing local model files. Expect improved multi-word and context-sensitive conversions compared to dictionary-only IMEs, and faster personalization via the learning cache.
Look elsewhere if you need a lightweight, zero-setup IME: initial startup requires downloading GGUF/tokenizer files from Hugging Face and running local inference, which increases startup latency and memory/CPU usage. Surrounding-text improvements rely on host application support (many Linux apps lack full fcitx5 surrounding-text APIs). For low-spec machines, configure the provided light model/light strategy to reduce resource use.
Where It Fits
Karukan sits between classical dictionary-driven IMEs (Mozc/SKK) and cloud-assisted input tools: it preserves offline/local inference and privacy while using LLM-style reasoning for contextual choices. Use a system dictionary alongside the model for best coverage, and enable the learning cache for rapid adaptation to personal terms.
