AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
Rokid Nexus : a plugin platform for Rokid Glasses RV101
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Install a phone app, get a glasses app.
Rokid Nexus is a plugin platform for Rokid AR glasses: one permanent hub lives
on the glasses and renders everything; all features ship as ordinary Android
APKs on the phone. Nothing is ever installed on the glasses again.檢視完整 README ↗Rokid Nexus is a plugin platform for Rokid AR glasses: one permanent hub lives on the glasses and renders everything; all features ship as ordinary Android APKs on the phone. Plugins need no separate APK on the glasses.
Plugins stay isolated in their own processes, appear only after explicit user approval, and draw on the HUD through declarative surfaces — cards, synced timed lines, media decks, real images, and compiled interactive Ink pages. They can also speak, listen, and see: speech in and out, and the glasses camera, are platform capabilities the wearer grants one at a time and can take back. And they can work for each other: with Skills, a plugin publishes typed operations that an approved assistant invokes through the phone hub, each operation allowed by the wearer on its own.
| Plugin | What it puts on the HUD |
|---|---|
| Assistant | Hold the touchpad and ask out loud: your words appear as you speak them, then the answer arrives on the band, in your ear, or as a native Ink page with charts and interactive controls — and it can look through the glasses camera to tell you what you are seeing. Ask it to remind you, set a timer, or take a note, and it does: the phone rings at the hour and the glasses raise it. It can also add, read, and safely delete phone-calendar events, answer from a folder of documents on the phone — PDFs and images included, cited by file and page — and ask other plugins, such as Transit's departures or Media Deck's pause, through operations you approve. Runs on your own ChatGPT plan, or any AI provider you bring a key for — OpenAI, OpenRouter, MiniMax, DeepSeek, GLM, Hermes, or your own server |
| Relay | Phone messages as a band over whatever you were looking at, answered out loud or typed from the phone — plus an inbox for the ones you let go |
| Navigation | The route Google Maps, Citymapper, OsmAnd, Organic Maps or Yandex Maps is guiding you on, kept on the glasses as one live activity: the next turn and its distance, or the walk to the stop, the line to board and the stops left |
| Lens | Google-Lens-style live translation: the glasses camera streams to the phone, ML Kit OCR + translation run there (offline), translated overlays come back in real time — plus a freeze mode for full-resolution stills |
| Feeds | Bluesky and X timelines — browse posts, open threads, and view the actual photos full-screen |
| Transit | Nearby stops and live departures (Transitous/MOTIS), with favourites — and "take me home" guidance and departures Assistant can ask for |
| Lyrics | Time-synced lyrics for whatever is playing on the phone, from Spotify/Musixmatch/Netease/LrcLib |
| Media Deck | Universal now-playing surface with album art and transport controls; Assistant can ask what is playing and pause it |
| Photos Sync | Not a HUD plugin: copies the photos and videos you shoot on the glasses into the phone gallery by itself, and gives you the switches for it |
| Patcher | Phone-only APK patching for YouTube and Reddit (Preview), with both guided setups in Patcher. Runs locally and returns verified output to the hub for installation |
| Wireless ADB | Enables Android's real wireless debugging service and creates a short-lived pairing command, so a trusted computer can connect to the glasses over the LAN without a cable or Settings automation |
| Tasker | Your named Tasker tasks on the HUD — swipe, tap, and the phone runs the automation. The glasses are the remote, Tasker does the work |
| Sample | Minimal copyable reference plugin, with a copyable skill operation |
And ten that are not in this repository at all, written by four other authors against the same SDK and listed in the same Store:
| Plugin | Author | What it puts on the HUD |
|---|---|---|
| Lume | beyondlevi | A wearable speed reader: text arrives one word at a time at a fixed point, 150–700 wpm, with long words and sentence endings held a little longer. Import a PDF or a text file on the phone, read hands-free with the R08 ring |
| Agenda | beyondlevi | The calendars your phone already syncs: what is next first, then the event's participants and description |
| News | beyondlevi | RSS and Atom feeds: sources with unread counts, headlines newest first, articles paged |
| Tuya Smart Home | beyondlevi | Your Tuya / Smart Life homes, rooms and devices — pick one and act on it |
| Shopping List | Volund | Your list on the HUD, ticked off with the ring, while you add to it on the phone — or paste a whole list and have every line become an item |
| Home Assistant | Zhilin | Configurable Home Assistant pages; the selected tile runs its action |
| OTPs | Zhilin | One-time codes extracted from notifications, after explicit Android approval, as timed alerts plus a short history |
| Taxi Plate | Zhilin | The active ride from supported taxi apps, with pickup or trip timing |
They install and run exactly like the ones above, under the same grants and the same identity checks. Nothing in the platform is reserved for first-party code.
All of them install from the in-app Nexus Store, backed by the public RokidBrew-Registry feed with SHA-256 and signer pinning enforced before every install, and show update badges when a newer release is published.
The phone hub also controls software that is already installed on the glasses. Glasses apps lists and opens launchable native APKs; Keyboard & remote provides previous/next/select/back navigation and sends transient keyboard deltas into the focused glasses editor, a plugin's own text field included; when a plugin opens a field, the screen comes forward by itself and leaves once the field is done. Password fields are marked sensitive, the phone window becomes secure, and Nexus never mirrors the editor's existing text. These are trusted hub-to-hub controls, not plugin capabilities. Patcher → YouTube (the Patcher plugin's settings) guides the YouTube setup: the hub downloads official Morphe MicroG-RE, takes the patched YouTube APK back from Patcher or an explicit import, and installs or updates them over the Rokid link. Glasses apps keeps listing and opening the installed YouTube like any native app. Sign in on the glasses with the phone keyboard; account data stays in MicroG. Patcher → Reddit works the same way, without MicroG, and is a Preview. The glasses launcher lists native apps alongside phone plugins. See YouTube setup for APK requirements and validation.
Both apps keep themselves current afterwards: the phone updates from GitHub releases, the glasses update over the Rokid link, plugins update through the Store.
Glasses installation requires a matching release digest, a readable APK, the expected package/version, and one signing certificate pinned in the phone build. Signature and manifest verification use apksig, including on Android 11 phones installing the API 31 glasses APK. See glasses APK verification for the upstream certificate, fork build configuration, and key rotation.
Trust model: any APK may request bus access, but capabilities (surfaces,
ink_surface, http_proxy, microphone, stt, tts, camera, mediasync,
assistant, wireless_debugging, skills_provider, skills_client) are granted per
plugin by the user, keyed to package + plugin id + signing certificate. Installation alone never grants
anything. Skill operations need one more approval each, per caller, and a
changed operation starts disabled again. The phone and glasses hubs also authenticate their SPP connection with
an installation pairing key enrolled through the authorized Hi Rokid CXR link;
each SPP frame has integrity and replay protection. The key is bound to the
Hi Rokid-authorized CXR session, using its serial number, device name, or a single
current-session fallback, and is reoffered on each CXR connection. With several
glasses, the key follows the currently CXR-connected pair. Successful SPP
handshakes save an address-to-CXR-identity binding for offline reconnects; absent
a binding, the last identity is used. A key mismatch fails closed without rotating
the key. An unreadable phone key can recover through a ready authorized CXR
session; offline reconnects never generate or replace keys. The existing
connection notification shows pairing recovery or an unavailable key, and a
ready CXR identity wakes the SPP reconnect backoff immediately. Until enrollment and authentication,
binary and large messages (including media sync and Wireless ADB data-plane
traffic) return NO_DATA_PLANE. Both hubs must support this transport version;
legacy peers retain only the existing CXR control path.
Developer mode adds package, signer, protocol, and route diagnostics
plus a live bus inspector.
The phone hub's exported service remains open for third-party plugin binding. Administrative starts require a private, process-local Binder capability supplied by the phone UI and startup helpers; external start intents cannot stop the hub, replace its authorization, or initiate glasses installation/setup. The two debug ADB probes remain available only in debuggable builds (see TESTPLAN.md).
A plugin is a headless phone APK against the published SDK:
repositories { maven("https://jitpack.io") }
dependencies {
implementation("com.github.Anezium.Rokid-Nexus:bus-client:sdk-v0.23.0")
}
Start with plugins/AGENTS.md — the complete, self-contained plugin contract — then docs/PLUGIN_SDK.md (SDK reference) and docs/PLUGINS.md (structure + design kit). plugins/sample is the canonical template. Publishing is F-Droid-like: host the APK on your own releases, PR a manifest to the registry (plugins/README.md).
shared: wire envelopes, paths, descriptors, capabilities, and route rules.bus-client: the public Android SDK — NexusPluginService, lifecycle
callbacks, typed card/timed-lines/media/image surfaces, notice bands and
activities, compiled Ink sessions, speech in and out, skills for providers
and callers, the NexusUi design kit, and explicit hub targeting.ink-engine: the bounded .ink compiler, data-binding engine, revisioned
render document/patch codec, and strict compatibility limits shared by both
hubs and the public SDK.phone-hub: discovery, consent, identity enforcement, skill routing, the
Nexus Store, app self-update, trusted native-app/keyboard controls, and the
Rokid link.glasses-hub: the single HUD renderer/launcher anchor, the camera platform,
native Ink renderer, Nexus IME/navigation bridge, and no-PC self-arm onboarding.plugins/ and plugin-feeds/: the plugin APKs, one folder per plugin with
its README and CHANGELOG.phone-client-probe and glasses-client-probe: validation modules.Use JDK 17 and the checked-in Gradle wrapper:
.\gradlew.bat test lintDebug assembleDebug
.\gradlew.bat :shared:publishToMavenLocal :bus-client:publishToMavenLocal '-PversionName=0.1.0-SNAPSHOT'
.\gradlew.bat :plugin-sample:assembleDebug '-PusePublishedSdk=true' '-PversionName=0.1.0-SNAPSHOT'
The local CxrGlobal composite is used only when its sibling directory exists.
SDK publication and the published-coordinate sample build do not require it.
Product vision · roadmap · wire specification · protocol guide · verification matrix
This project is licensed under the Apache License 2.0, except
plugins/patcher, which is GPL-3.0-only (see its
LICENSE). See NOTICE for attribution.
Contributions to the Apache-licensed modules are accepted under the same license (Apache-2.0, section 5) — no CLA required.
| RokidHub · Codex | Azat Akhmetshin | Coding tasks by voice, routed through RokidHub to Codex on your own machine |
| RokidHub · Yandex | Azat Akhmetshin | Yandex Smart Home by voice, answered on the HUD and aloud |