{"slug": "opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm", "title": "OpenCyvis: An open-source AI phone agent that runs your own LLM", "summary": "OpenCyvis, an open-source AI phone agent, lets users run their own large language model on Android devices, operating apps via a virtual display without locking the main screen. The project, supporting Android 11+, offers standard ADB pairing and a system app mode for developers, with remote control via Feishu and Telegram. It aims to provide transparency and data control compared to commercial AI phones.", "body_md": "**The open-source AI phone.**\n\nCommercial AI phones are black boxes. This one isn't.\n\n**Open** **Cy** ber Jar**vis**\n\n[Docs](https://docs.opencyvis.ai) •\n[中文](/opencyvis/opencyvis-phone/blob/main/README_CN.md) •\n[Getting Started](#getting-started) •\n[Roadmap](#roadmap) •\n[Contributing](/opencyvis/opencyvis-phone/blob/main/CONTRIBUTING.md)\n\nOpenCyvis 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.\n\n**\"Reply 'let's go eat sushi' in WeChat\"** — opens WeChat, finds the conversation, types and sends:\n\n**\"Find the best-rated coffee shop nearby and get directions\"** — opens Maps, searches, sorts by rating, taps navigate.\n\n**\"Set a 7am alarm, turn on Do Not Disturb, and switch to dark mode\"** — chains Clock, Settings, and Display in one go.\n\nMost 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.\n\n```\n┌─────────────────────┐    ┌─────────────────────┐\n│   Your screen        │    │   Virtual display    │\n│                      │    │   (AI works here)    │\n│   Browse, chat,      │    │                      │\n│   watch videos —     │    │   Booking flights,   │\n│   phone is yours     │    │   sending messages,  │\n│                      │    │   placing orders     │\n└─────────────────────┘    └─────────────────────┘\n      You use this              AI uses this\n```\n\nWatch the AI work anytime. Take over if something looks wrong. Hand it back when you're done.\n\nWhen 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.\n\n**You should at least have the choice.**\n\nOpenCyvis 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.\n\nFor most users. No custom ROM, no root, no computer.\n\n- Download and install the APK\n- Open the app, follow the setup wizard to complete ADB wireless pairing\n- Choose your LLM backend (cloud or local), start using\n\nThe entire pairing process completes on-device. Supports Android 11+.\n\nPairing tips\n\n- The wizard sends you to\nWireless debugging → Pair device with pairing code. Once you see the 6-digit code,pull down the notification shadeand 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\nallow background activity / ignore battery optimizationduring pairing, chooseAllowfor a smoother experience.- If you don't see the notification with the input field, just pull down the shade once to find it.\n\nFor developers and power users.\n\nFlash an AOSP system image. The app runs as a system application with full platform signing privileges. Screenshots use `SurfaceControl`\n\ndirectly — fastest possible. Full virtual display task management via system APIs.\n\nSame 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.\n\nSend messages to a bot in your IM app to control the phone's AI remotely. Currently supports **Feishu** and **Telegram**.\n\nUse 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.\n\nSupports: sending commands, receiving progress, viewing screenshots, answering the AI's questions, stopping tasks. Pairing uses a 6-digit code.\n\nSave frequent operations and run them on a schedule or with one tap.\n\nExample: \"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.\n\nSave 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.\n\nFull day/night theme. Follows system settings or set manually. All screens — home, chat, settings, watch mode — have matching dark variants.\n\nStandard mode now supports MIUI, ColorOS, OriginOS, and other vendor ROMs. Different manufacturers have vastly different wireless debugging entry points — OemHelper handles the differences.\n\n| Commercial AI Phones | Cloud Phones | Phone-control Scripts | OpenCyvis |\n|\n|---|---|---|---|---|\nOpen source |\n❌ | ❌ | ✅ | |\nChoose your AI model |\n❌ | ❌ | ✅ | |\nData stays on device |\n❌ | ❌ | ✅ | |\nPhone usable while AI works |\n✅ | ❌ | ✅ | |\nWorks with any app |\n✅ | |||\nNo computer setup |\n❌ | ✅ | ||\nWorks on everyday phones |\n✅ | ❌ | ✅ |\n\nOpenCyvis is model-agnostic. Bring your own AI account, connect a private service, or run a local model.\n\n| Model | Latency per step | Pass Rate | Notes |\n|---|---|---|---|\nQwen 3.5 Plus |\n4-6s | 4/4 | Stable, recommended |\nClaude Opus 4 |\n4-8s | 4/4 | Highest reasoning quality |\nMiMo v2.5 |\n2.3-4.5s | 4/4 | Fastest |\nGPT-4o |\n3-6s | 3/4 | Occasionally ignores tool_choice |\n\n| Model | Size | Speed | Pass Rate |\n|---|---|---|---|\nGemma 4 26B-A4B Q4 |\n17 GB | 63 tok/s | 4/4 |\nGemma 4 E2B Q4 |\n1.8 GB | 41 tok/s | 4/4 |\nQwen 3.5 35B-A3B Q4 |\n22 GB | 47 tok/s | 3/4 |\nGemma 4 E4B Q4 |\n3 GB | 61 tok/s | 3/4 |\n\nRecommended:Gemma 4 26B-A4B — best balance of speed, quality, and memory.\n\nMinimal:Gemma 4 E2B — just 1.8 GB, still passes all 4 tests.\n\nBoth install modes share all upper-layer code. The difference is only in the privilege layer, isolated behind a `PrivilegeBackend`\n\ninterface:\n\n| SystemBackend | RemoteBackend | |\n|---|---|---|\n| Privilege source | Platform signing (uid system) | ADB shell (uid 2000) |\n| Input injection | InputManager reflection | AIDL proxy to PrivilegedService |\n| Screenshot | SurfaceControl.screenshot() | ImageReader from VD Surface |\n| VD task management | ActivityTaskManager reflection | PrivilegedService proxy |\n\nThe backend is selected automatically at runtime.\n\nAn 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.\"\n\n**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\n\nTwo APKs are available on the [Releases](https://github.com/opencyvis/opencyvis-phone/releases) page:\n\n| APK | For | Package ID |\n|---|---|---|\n`opencyvis-standard-release.apk` |\nMost users — install on any Android 11+ phone | `ai.opencyvis.standard` |\n`opencyvis-system-release.apk` |\nDevelopers — flash into AOSP as a system app | `ai.opencyvis` |\n\n- Download\n`opencyvis-standard-release.apk`\n\nand install - Open the app, follow the setup wizard to complete wireless pairing\n- Configure your LLM provider in Settings\n- Start sending tasks\n\nNo 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.\n\nFor developers building a custom AOSP image:\n\n```\ngit clone https://github.com/opencyvis/opencyvis-phone.git\ncd opencyvis-phone/android\n./gradlew assembleSystemRelease\n```\n\nSee [android/README-AOSP.md](/opencyvis/opencyvis-phone/blob/main/android/README-AOSP.md) for AOSP deployment and platform key signing.\n\nSet your provider in-app, or via deeplink:\n\n```\n# Local Ollama (fully private)\nadb shell am start -a android.intent.action.VIEW \\\n  -d \"opencyvis://config?provider=ollama&base_url=http://localhost:11434&model=gemma4:26b\"\n\n# Cloud API\nadb shell am start -a android.intent.action.VIEW \\\n  -d \"opencyvis://config?provider=openai&base_url=https://api.example.com/v1&api_key=YOUR_KEY&model=qwen-vl-max\"\n```\n\n- Explore more convenient privilege acquisition methods\n- Further optimize local model support\n- Cross-device coordination (phone + desktop)\n\nSee [CONTRIBUTING.md](/opencyvis/opencyvis-phone/blob/main/CONTRIBUTING.md). We welcome code, bug reports, security audits, translations, and documentation.\n\n[Sherpa-ONNX](https://github.com/k2-fsa/sherpa-onnx)— on-device speech recognition (Apache 2.0)", "url": "https://wpnews.pro/news/opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm", "canonical_source": "https://github.com/opencyvis/opencyvis-phone", "published_at": "2026-08-20 22:57:56+00:00", "updated_at": "2026-08-20 23:15:12.790944+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-agents", "ai-tools"], "entities": ["OpenCyvis", "Android", "Feishu", "Telegram", "ADB", "AOSP"], "alternates": {"html": "https://wpnews.pro/news/opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm", "markdown": "https://wpnews.pro/news/opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm.md", "text": "https://wpnews.pro/news/opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm.txt", "jsonld": "https://wpnews.pro/news/opencyvis-an-open-source-ai-phone-agent-that-runs-your-own-llm.jsonld"}}