iPhone を Rokid Glasses のキーボード+タッチパッドにする「Rokid Keyboard」をOSS公開した話
スマートグラス Rokid Glasses には文字入力の手段がありません。公式SDKの解析から「スマホ側だけでは実現不可能」を突き止め、グラス側IME+独自BLEリンクという構成で iPhone をワイヤレスキーボード+タッチパッド化。調査から GitHub 公開までを Claude Code で駆け抜けた記録です。
iPhone をスマートグラス「Rokid Glasses」のワイヤレスキーボード+タッチパッドにするツール「Rokid Keyboard」を開発し、オープンソース(MIT ライセンス)として公開しました。iPhone で入力した文字(日本語を含む)が、グラス上でフォーカスしているテキスト欄にそのまま入力され、同じ画面のタッチパッドでカーソル移動・タップ・スクロールもできます。
ソースコードとビルド済みアプリは GitHub(mayacenote/RokidKeyboard) で公開しています。※Rokid 社とは無関係の、非公式コミュニティプロジェクトです。
公式アプリには「キーボード」がない
Rokid Glasses は公式スマホアプリ「Hi Rokid」からリモコン(タッチパッド)操作ができます。しかしキーボード機能はなく、グラス側にスクリーンキーボードも表示されません。検索窓ひとつ埋めるのにも苦労する——スマートグラスを日常的に使おうとすると、文字入力は最初にぶつかる壁です。
調査:スマホ側だけでは実現できない
まず公式 SDK で実現できないかを調査しました。スマホ側 SDK(CXR-M、2026年6月時点の最新版 1.2.2)のバイナリを解析してコマンド一覧を洗い出した結果、分かったのは次のことでした。
- グラス側 SDK(CXR-L)に 入力系の API は存在しない
- スマホ側 SDK(CXR-M)にも マウス・キー・テキスト注入系のコマンドは一切公開されていない
- Hi Rokid のタッチパッドは 非公開プロトコルで、そもそも OS 側にテキスト注入の受け口がない
結論は「スマホ側のアプリだけでは実現不可能」。そこで発想を変え、グラス側に小さな受信アプリを1つサイドロードする構成にしました。Rokid Glasses の OS(YodaOS-Sprite)は Android 12 ベースなので、カスタム IME(キーボード)とアクセシビリティサービスという Android の標準機構がそのまま使えます。
アーキテクチャ:独自 BLE リンク + グラス側 IME
構成は「iPhone アプリ(SwiftUI)+ グラス側受信アプリ(Kotlin)」の2つ。両者を独自の BLE リンクで直結します。
- iPhone 側: タッチパッド+キーボードの1画面 UI。BLE ペリフェラルとして振る舞い、入力をパケットで送信
- グラス側: 常駐サービスが受信し、テキストはカスタム IME がフォーカス中の欄へ入力、タップ・スクロールはアクセシビリティサービスが実行
Hi Rokid の接続とは独立した自前のリンクなので、公式アプリと共存できます。BLE の役割分担も「iPhone=ペリフェラル/グラス=セントラル」とし、双方の OS が確実にサポートする形に倒しています。
設計のポイント
日本語変換は iPhone 側で完結させる
グラス側に日本語 IME を載せるのではなく、iPhone の使い慣れた IME で変換し、確定した文字列だけを送信します。変換中の未確定テキストは送らない。これだけでグラス側は「受け取った文字をそのまま入力する」だけの単純な仕事になり、日本語 IME を持たないグラスでもシステムワイドに日本語が入力できます。
プロトコルは 1 パケット = 1 通知の最小設計
BLE の1回の通知に「種別1バイト+ペイロード」を載せるだけの小さな独自プロトコルです。テキスト・キー・カーソル移動・クリック・スクロールなど9種類。iOS 側と Android 側で対称に実装し、パーサは純粋な Kotlin / Swift に分離してユニットテスト可能にしています。
無線リンクは「切れるもの」として作る
BLE は環境によりあっさり切れます。5秒ごとのハートビートで「接続表示のままの死んだリンク」を検知して自動再接続する、タッチパッドに触れたらグラスの画面を自動点灯する、APK 更新でアクセシビリティ設定が外れても自己修復する——毎日使う道具として成立させるための地味な作り込みが、実は一番手間のかかった部分です。
Claude Code で調査から公開まで数日
今回も開発には AI エージェント Claude Code を全面的に活用しました。SDK バイナリの解析による実現可能性調査、設計ドキュメントの作成、iOS / Android 両アプリの実装、実機デバッグ、そして英日 README の整備と GitHub 公開まで、着手から数日で完了しています。「公式 SDK に無い機能を、調査して構成を考えて2プラットフォーム分作る」という規模の個人開発が、週末プロジェクトの範囲に収まる時代になりました。
おわりに
CENOTE では Even G2 向けアプリ群(SmartGlass Apps)に続き、スマートグラスというまだ発展途上のデバイスの「足りない部分」を素早く作って埋めながら、実用の勘所を探っています。
Rokid Keyboard は GitHub で公開中です。Rokid Glasses をお持ちの方はぜひお試しください。スマートグラス向けの開発・技術検証のご相談も承っています。