MacishType
dev-tools
Best For
Developers building custom macOS input methods, especially those familiar with JavaScript rather than C++/Swift. If RIME's non-native candidate window appearance bothers you, this may be the only current alternative.
How I Actually Used It
Code review only, not installed. As a biotech researcher, IME development is outside my workflow. The architecture design is worth studying for any macOS developer.
What It Does Well
Candidate windows are visually indistinguishable from system built-in IMEs, with automatic Sequoia/Tahoe style switching. JS engine hot-reload via FSEvents makes the development experience feel like web frontend work. The KeyEvent API deliberately mirrors Web KeyboardEvent, allowing direct reuse of existing web keyboard logic. Settings UI auto-generates from manifest.json declarations, no Xcode required.
Failure Modes and When Not to Use
Relies on JavaScriptCore private SPI for ES Module loading. Apple may remove this API in future macOS versions, and it prevents Mac App Store distribution. The project has been public for only 5 days with no formal release, no CI/CD, and no automated tests. Does not support dynamic import() or top-level await.
Pricing, Learning Curve, and Risk
Free (MIT). Requires macOS 14.0+ and Xcode 26.3+ to build the framework, but JS engine development does not need Xcode. Risk centers on private API dependency and early-stage project uncertainty.
Verdict
A technically impressive macOS IME framework that uniquely combines JavaScript extensibility with native appearance. However, the very early stage and private API dependency make it a watch-and-wait rather than adopt-now proposition.