The open-source AI phone.
Commercial AI phones are black boxes. This one isn't.
Open Cyber Jarvis
Docs • 中文 • Getting Started • Roadmap • Contributing
OpenCyvis turns Android into an AI phone. Give it a task in natural language — it sees your screen, understands the UI, and operates apps just like you would.
"Reply 'let's go eat sushi' in WeChat" — opens WeChat, finds the conversation, types and sends:
"Find the best-rated coffee shop nearby and get directions" — opens Maps, searches, sorts by rating, taps navigate.
"Set a 7am alarm, turn on Do Not Disturb, and switch to dark mode" — chains Clock, Settings, and Display in one go.
Most AI tools lock your screen while they work. OpenCyvis operates on a virtual display — an isolated background screen. The AI books your flight while you scroll Twitter.
┌─────────────────────┐ ┌─────────────────────┐
│ Your screen │ │ Virtual display │
│ │ │ (AI works here) │
│ Browse, chat, │ │ │
│ watch videos — │ │ Booking flights, │
│ phone is yours │ │ sending messages, │
│ │ │ placing orders │
└─────────────────────┘ └─────────────────────┘
You use this AI uses this
Watch the AI work anytime. Take over if something looks wrong. Hand it back when you're done.
When a company ships an "AI phone," they get full access to your screen, your apps, your messages — and you can't see what model is running, can't verify what data leaves your device, can't choose an alternative.
You should at least have the choice.
OpenCyvis is the open-source alternative: you see every line of code, you pick the AI model, you decide where your data goes. With a local model, nothing ever leaves your device.
For most users. No custom ROM, no root, no computer.
- Download and install the APK
- Open the app, follow the setup wizard to complete ADB wireless pairing
- Choose your LLM backend (cloud or local), start using
The entire pairing process completes on-device. Supports Android 11+.
Pairing tips
- The wizard sends you to Wireless debugging → Pair device with pairing code. Once you see the 6-digit code, pull down the notification shade and type the code straight into the OpenCyvis notification — no need to switch back to the app.
- Some vendor ROMs (ColorOS / OnePlus, MIUI, …) freeze apps once they go to the background. If the system asks you to allow background activity / ignore battery optimization during pairing, choose Allow for a smoother experience.
- If you don't see the notification with the input field, just pull down the shade once to find it.
For developers and power users.
Flash an AOSP system image. The app runs as a system application with full platform signing privileges. Screenshots use SurfaceControl directly — fastest possible. Full virtual display task management via system APIs.
Same AI engine, same LLM backends, same UI, same capabilities. The only difference is how the app obtains system permissions. Standard mode uses ADB shell privileges; System App mode uses platform signing. For everyday tasks, you won't notice the difference.
Send messages to a bot in your IM app to control the phone's AI remotely. Currently supports Feishu and Telegram.
Use case: Install OpenCyvis on a parent's phone. Mom says "the text is too small" — you send "set font size to largest" in IM. The AI does it and sends back a confirmation screenshot. No need for both parties to watch the screen simultaneously.
Supports: sending commands, receiving progress, viewing screenshots, answering the AI's questions, stopping tasks. Pairing uses a 6-digit code.
Save frequent operations and run them on a schedule or with one tap.
Example: "Check calendar, weather, and unread emails every morning at 8am" — the AI runs automatically and pushes a summary to chat. Also supports geofencing — auto clock-in when arriving at the office.
Save multiple AI configurations (e.g., cloud Qwen, local Gemma 4, Claude) and switch between them with one tap. No need to re-enter API URLs and keys each time.
Full day/night theme. Follows system settings or set manually. All screens — home, chat, settings, watch mode — have matching dark variants.
Standard mode now supports MIUI, ColorOS, OriginOS, and other vendor ROMs. Different manufacturers have vastly different wireless debugging entry points — OemHelper handles the differences.
| Commercial AI Phones | Cloud Phones | Phone-control Scripts | OpenCyvis | |
|---|---|---|---|---|
| Open source | ❌ | ❌ | ✅ | |
| Choose your AI model | ❌ | ❌ | ✅ | |
| Data stays on device | ❌ | ❌ | ✅ | |
| Phone usable while AI works | ✅ | ❌ | ✅ | |
| Works with any app | ✅ | |||
| No computer setup | ❌ | ✅ | ||
| Works on everyday phones | ✅ | ❌ | ✅ |
OpenCyvis is model-agnostic. Bring your own AI account, connect a private service, or run a local model.
| Model | Latency per step | Pass Rate | Notes |
|---|---|---|---|
| Qwen 3.5 Plus | 4-6s | 4/4 | Stable, recommended |
| Claude Opus 4 | 4-8s | 4/4 | Highest reasoning quality |
| MiMo v2.5 | 2.3-4.5s | 4/4 | Fastest |
| GPT-4o | 3-6s | 3/4 | Occasionally ignores tool_choice |
| Model | Size | Speed | Pass Rate |
|---|---|---|---|
| Gemma 4 26B-A4B Q4 | 17 GB | 63 tok/s | 4/4 |
| Gemma 4 E2B Q4 | 1.8 GB | 41 tok/s | 4/4 |
| Qwen 3.5 35B-A3B Q4 | 22 GB | 47 tok/s | 3/4 |
| Gemma 4 E4B Q4 | 3 GB | 61 tok/s | 3/4 |
Recommended: Gemma 4 26B-A4B — best balance of speed, quality, and memory.
Minimal: Gemma 4 E2B — just 1.8 GB, still passes all 4 tests.
Both install modes share all upper-layer code. The difference is only in the privilege layer, isolated behind a PrivilegeBackend interface:
| SystemBackend | RemoteBackend | |
|---|---|---|
| Privilege source | Platform signing (uid system) | ADB shell (uid 2000) |
| Input injection | InputManager reflection | AIDL proxy to PrivilegedService |
| Screenshot | SurfaceControl.screenshot() | ImageReader from VD Surface |
| VD task management | ActivityTaskManager reflection | PrivilegedService proxy |
The backend is selected automatically at runtime.
An AI agent with full phone access is one of the most privileged pieces of software you can run. This is not a place for "trust us."
- You choose the AI service — hosted, private, or local
- No telemetry, no analytics, no phone-home — zero tracking code
- Open source — anyone can audit
- Local model option — nothing leaves your device
Two APKs are available on the Releases page:
| APK | For | Package ID |
|---|---|---|
opencyvis-standard-release.apk |
Most users — install on any Android 11+ phone | ai.opencyvis.standard |
opencyvis-system-release.apk |
Developers — flash into AOSP as a system app | ai.opencyvis |
- Download
opencyvis-standard-release.apkand install - Open the app, follow the setup wizard to complete wireless pairing
- Configure your LLM provider in Settings
- Start sending tasks
No root, no computer, no custom ROM required. During pairing, type the 6-digit code into the OpenCyvis notification (pull down the shade), and allow background activity if your ROM prompts for it.
For developers building a custom AOSP image:
git clone https://github.com/opencyvis/opencyvis-phone.git
cd opencyvis-phone/android
./gradlew assembleSystemReleaseSee android/README-AOSP.md for AOSP deployment and platform key signing.
Set your provider in-app, or via deeplink:
# Local Ollama (fully private)
adb shell am start -a android.intent.action.VIEW \
-d "opencyvis://config?provider=ollama&base_url=http://localhost:11434&model=gemma4:26b"
# Cloud API
adb shell am start -a android.intent.action.VIEW \
-d "opencyvis://config?provider=openai&base_url=https://api.example.com/v1&api_key=YOUR_KEY&model=qwen-vl-max"- Explore more convenient privilege acquisition methods
- Further optimize local model support
- Cross-device coordination (phone + desktop)
See CONTRIBUTING.md. We welcome code, bug reports, security audits, translations, and documentation.
- Sherpa-ONNX — on-device speech recognition (Apache 2.0)



