「IMEの中身って、触ったらWindowsに怒られそう」
分かります。日本語入力は毎日使うのに、その内部は驚くほど見えません。変換候補が出るのは一瞬。でも、その裏ではキーボード入力、Windowsのテキストサービス、辞書検索、候補順位、ユーザー操作が高速でバトンを渡しています。
そのバトンリレーを、丸ごと見える場所へ出しました。
Windows向け日本語入力システム「KeyroIME OpenCore」を正式にオープンソース化しました。
ソースコードはこちらです。
AI時代に、なぜIMEを作るのか
生成AIは文章を書けます。でも、私たちがPCへ伝えたいのは長文だけではありません。
メールアドレス、URL、型番、金額、人名、地名、英単語、記号。そして日本語。実際の仕事では、これらが一つの文章に遠慮なく混ざってきます。そこで毎回、入力モードや全角・半角の切り替えに意識を奪われる。小さい摩擦ですが、1日に何度も起きれば、かなり立派な邪魔者です。
KeyroIMEが狙っているのは、派手なデモの5秒ではありません。書いている人の思考を止めないことです。
OpenCoreでは、かな漢字変換、カタカナ語、翻訳、人名・地名・駅名、短いかなの予測を一つの候補体験にまとめています。q+語 で翻訳候補を、v+読み で人名・地名・駅名候補を優先できます。日本語の途中へ数字や記号、英単語を入れる場面も、できるだけ自然につなぎます。
中身はC++17とRust。Windowsの中心でIMEを叫ぶ
技術者向けに、ここは少し濃くいきます。
KeyroIME OpenCoreは、Windows x64向けのローカル優先型IMEです。
-
KeyroIME.dll:C++17で実装したWindows TSF / COMテキストサービス -
keyro_service.exe:Rustで実装した辞書検索、予測、候補順位付け、ユーザー頻度、IPCサービス -
keyro_tray.exe:C++17で実装した通知領域UIと状態表示 - IPC:Windowsの名前付きパイプを使う軽量なバイナリプロトコル
入力ホストに読み込まれるTSF DLLは軽く保ち、完全な辞書、ユーザー設定、ネットワーク処理、AIランタイムを抱え込みません。辞書と候補処理はRustサービス側へ分離。サービスが止まった場合も、TSF側のローカル変換で基本入力を続けられる設計です。
要するに、Windowsと深く握手はする。でも、抱きついて一緒に倒れない。そんな距離感を目指しています。
なお、「Windowsのコアを公開」といっても、Microsoft Windowsのカーネルを公開したわけではありません。さすがにそれをやったら、この記事を書く前に大事件です。公開したのは、KeyroIMEのWindows入力基盤とローカルコアサービスです。
“高性能”を、形容詞だけで終わらせない
「超高速」「次世代」と書くのは簡単です。READMEの文字なら秒速です。
だからOpenCoreでは、性能を支える設計と検証も読める形にしています。
- Windows TSFと辞書サービスを分離した小さな責務境界
- C++とRustの間をつなぐIPC仕様
- 1ページ5候補のシンプルな候補UI
- 曖昧予測、短い読みの前方一致、動的な候補分割・連結
- JIS / ANSI配列、全角 / 半角、和文 / 欧文句読点の切り替え
- ネットワークやログインを前提にしないローカル候補生成
- TSF activation、local fallback、runtime input、IPC failoverなどのスモークテスト
- Windows CIとインストーラーパッケージ検証
ベンチマークのない速度自慢より、コード、境界、失敗時の動作を見てもらうほうが早い。そう考えて、実装と設計資料を公開しています。
AIエージェントと作る。でも、責任までAIへ投げない
KeyroIMEの開発では、AIエージェントを調査、設計案、実装、レビュー、テスト整理、公開監査の支援に活用しています。
AIに「いい感じにIMEを作って」と頼んで完成したわけではありません。Windows TSFのライフサイクル、C++とRustの境界、文字コード、辞書ライセンス、インストーラー、異常時の復帰。IME開発には、“いい感じ”で済ませると翌朝つらくなる論点が山ほどあります。
AIエージェントには速度と探索力を担当してもらい、人間は仕様、採否、検証、公開責任を持つ。この組み合わせも、KeyroIMEが試している技術テーマの一つです。
そして大事な区別があります。OpenCoreの現在の入力候補は、ローカル辞書、予測、候補順位付けを中心に動作します。生成AIが文章を自動生成する製品ではありません。 AI Proは別の開発計画です。
アーキテクト、C++、Rust好きの皆さんへ
このリポジトリは、完成品を眺めるショーケースだけではありません。
Windows TSF / COMの実装を読みたい。C++の入力フロントとRustサービスをどう分けるか見たい。FFIとIPCの境界を検討したい。辞書、候補UI、フォールバック、インストーラー、CIを含むWindowsデスクトップ製品の構成を追いたい。
そんな技術者にとって、かなり歯ごたえのある題材です。コードを読んで「ここ、もっと良くできる」と思ったら、それは最高の反応です。
本体はGNU GPLv3。ライセンス条件に従って、利用、調査、改変、共有できます。コントリビューション方針、セキュリティ報告方法、第三者辞書の表示もリポジトリ内に公開しています。
最後に、お願いは四つだけ
- リポジトリを開く。
- READMEとアーキテクチャを読む。
- 面白いと思ったらStarを押す。
- C++、Rust、Windows、IMEが好きな人へ共有する。
Starは1秒です。IMEの実装は、だいたい1秒では終わりません。だから、その1秒が開発者には効きます。
ソースコード: https://github.com/keyro-open/KeyroIME-OpenCore
技術愛好家、ソフトウェアアーキテクト、C++エンジニア、Rustエンジニアの皆さん。閲覧、Star、共有、Issue、Pull Requestを歓迎します。日本語入力の次を、コードから一緒に考えてください。
キーワード: KeyroIME、OpenCore、オープンソース、Windows、IME、TSF、C++、Rust、AIエージェント、GPLv3、日本語入力
確認日:2026-10-01。KeyroIME OpenCore v1.0.6.16の公開リポジトリと設計資料を基準にしています。現時点でGitHub Releaseは未公開です。ビルドと検証手順はリポジトリの日本語READMEをご確認ください。
原文: Keyroアカデミー