See and steer the agents on your computer from anywhere,
while the code, the words spoken and the decisions stay on the computer.
Platforms · What it does · Android and the iPhone · Layout · Build and test
Memnox on Android, paired with a Mac: the home, every session, the tools and the voice.
Claude Code wants to run
vercel --prod.You are in a queue for coffee. The phone asks with Deny and Allow. You press Allow, the phone checks it is you, and the deploy goes out on your computer. Nobody had to open a laptop.
The phone half of Memnox. The daemon in memnox-runtime decides what an agent may do, and these apps are a second face, voice and signing key for it: they reach it through the relay from anywhere, show what waits, speak and listen, and sign every remote yes after Face ID or a fingerprint. No policy, no rule and no model call lives on the phone.
| Platform | Status | Needs | How to get it | |
|---|---|---|---|---|
| Memnox for iPhone, in Swift 6 | in development | iOS 18 | Build it with Xcode, as ios/README.md says | |
| Memnox for Android, in Kotlin and Compose | in development, close to the iPhone | Android 11 | Build it with Android Studio, as android/README.md says; CI also keeps a debug APK from every run |
Neither app is in a store yet. Both pair with any computer running Memnox, a Mac with the Memnox app or a Windows or Linux machine with the daemon, because the relay does not care which system either end runs. The desktop apps live in memnox-desktop.
- Pair in a minute. Scan the code your computer shows, check the six digits match, approve on the computer.
- Needs you. Held calls, drafts and agents' questions, with Deny and Allow.
- A signed yes. Allow is signed by a key the phone guards, behind Face ID or the fingerprint. Deny needs nothing.
- Sessions. Every agent session on the computer, its conversation as it happens, and a reply box.
- Tools. Slack, Gmail, GitHub, Linear, Google Docs and Notion drafts, sent in your name once you approve the words.
- The voice. The particle orb, speech recognized on the phone, and answers in Kokoro, the Mac's own voice.
- Drive my Mac. One signed grant lets this phone act on the computer for up to 15 minutes.
- Away from the app. The Dynamic Island on the iPhone; a Live Update, a tile and a widget on Android.
- Nothing through a push. A push only wakes the phone. The question arrives through an end to end Noise tunnel.
The two apps share pairing, the home, the drawer, sessions, Needs you, tools, the computer's page,
Settings, the team, the voice with Kokoro on the phone, signed answers and the memnox://pair link.
Where Android has no iPhone feature, it uses its own:
| On the iPhone | On Android |
|---|---|
| Siri, the Action Button and Control Center | Assistant and launcher shortcuts, and a Talk to Memnox Quick Settings tile |
| The Dynamic Island and its Live Activity | An in app pill around the camera, and a Live Update chip in the status bar on Android 16, which is an ongoing notification before 16 |
| No home screen widget | A widget that shows what waits, or talks to your computer |
| Notifications offer up to 4 choices | Notifications offer up to 3 choices |
| Kokoro's weights arrive through Background Assets after pairing | Kokoro's archive downloads over Wi-Fi after pairing |
| Face ID once for a spoken answer to a teammate | The fingerprint twice for a spoken answer to a teammate |
| Path | Holds |
|---|---|
ios/ |
the iPhone app: a Swift package core with no UIKit, SwiftUI screens, the widget and the Kokoro downloader, from an XcodeGen spec. |
android/ |
the Android app: noise over JNI, a pure Kotlin core laid out like the iPhone's, and the Compose app. |
shared/ |
the protocol vectors both apps are tested against, copied from memnox-runtime. |
docs/images/ |
pictures shared by these pages. |
TESTING.md |
how to pair either phone with a computer and answer something real. |
Both apps build Noise from one snow crate in memnox-runtime, so keep a checkout of
memnox-runtime beside this one, or name it with MEMNOX_RUNTIME.
iPhone: a Mac with Xcode 26, XcodeGen and Rust
# once, in ../memnox-runtime
native/noise/scripts/build-xcframework.sh
cd ios
./scripts/vendor-noise.sh # copies MemnoxNoise.xcframework from memnox-runtime
./scripts/vendor-kokoro.sh # KokoroSwift and the MLX packages it needs
swift test # the core, on the Mac
xcodegen generate && open MemnoxPhone.xcodeprojios/README.md has the rest, and ios/CONTRIBUTING.md says how to run it on your own iPhone with a free Personal Team.
Android: Android Studio with the NDK, and Rust
cd android
./gradlew :noise:test :core:test # the Noise binding and the core, on this computer
./gradlew :app:assembleDebug # the APK, with Noise built for arm64 phones and the x86_64 emulatorandroid/README.md has the requirements, the Firebase properties and how to run it on a phone or the emulator.
TESTING.md pairs either phone with a computer and walks through answering a held call. CI tests and builds both apps on every pull request, checks the protocol vectors against the runtime, and fails on a dash standing in copy.
The code is MIT, as LICENSE says. The Memnox name, the icon and the pictures are not, as LICENSE-ASSETS.md says. Report a vulnerability as SECURITY.md asks, and see the code of conduct.