Aiope – An on-device AI agent for Android (terminal, browser, SSH, MCP) XNet Inc., a corporation run by one founder and AI, released Aiope, an on-device Android AI agent built over roughly five months and about 1,000 commits across 26 repositories, the company said. Aiope ships with 57 tools, a proot Alpine Linux terminal, browser automation, SSH remote server management, multi-agent pipelines, and an on-device agent loop that runs up to 140 rounds per turn, and it connects to any OpenAI-compatible API under a bring-your-own-key model. XNet said Aiope's closest peers are Kai 9000 and Operit and that its local device, system, and network tooling plus full-tool-access realtime voice puts it roughly a year ahead of cloud-dependent assistants. An AI that doesn't just talk. It acts. Most AI apps can only answer questions. AIOPE actually does things on your phone. Ask it to text a friend, add an event to your calendar, set an alarm, pull up the weather, generate an image, summarize a web page, or dig up an answer and remember it for next time — and it carries the task out, start to finish, by voice or text. Talk to it hands-free with real-time voice, or tap a floating mic from any app. It sees what's on your screen when you ask for help, keeps a private knowledge base of your documents on the device, and works with whatever AI model you choose — it comes ready to use out of the box, no setup required. Unlike a plain chatbot that forgets everything and doesn't even know today's date, AIOPE makes any model stateful and aware: it knows the current time and your location, remembers facts about you across conversations, tracks what it's working on, and grounds answers in your own documents and live data. For power users and developers, AIOPE goes much deeper: a fully autonomous agent with 57 tools, a complete Linux terminal in your pocket, browser automation, remote server management over SSH, multi-agent pipelines, scheduled background tasks, a LAN network scanner, a built-in file server, and the ability to build native interactive UI on the fly. The agent loop runs entirely on-device: reason, call a tool, read the result, decide, repeat — up to 140 rounds per turn. It can research a topic, write code, save it, run it in the terminal, fix the errors, and report back, all in a single turn. It is the most feature-complete AI agent app on Android. On pure functionality our closest peers are Kai 9000 and Operit — both capable, on-device agents — but AIOPE's breadth of local device, system, and network tooling combined with full-tool-access realtime voice puts it roughly a year ahead of cloud-dependent assistants. Underneath is a serious stack, built over ~1000 commits across 26 repositories: a self-hosted AIOPE Gateway https://github.com/XNet-NGO/aiope-gateway that routes to Google AI Studio, Pollinations, and other providers through a single API key; a custom Compose markdown renderer; a terminal emulator with a proot Alpine Linux environment; a Go remote-agent daemon; and an agent framework with 8 builtin agents and a full custom-agent builder. AIOPE connects to any OpenAI-compatible API and works with your own keys — BYOK, always. Your conversations, documents, and knowledge base stay on your device. And here's the part that shouldn't be possible: all of it — the app, the gateway, the daemon, the terminal, the networking forks, the whole XNet stack — was built in about five months by XNet Inc., a real corporation run by one founder and AI. Backed by institutions that don't hand out credits lightly — Harvard, GitHub, Amazon AWS, Infobip, and Mercury among them — XNet operates as a full-fledged company with the output of an engineering team many times its size. AIOPE is proof of its own thesis: a founder paired with an agent like this one can build, and run a business, at a pace that used to require a hundred people. This wasn't a weekend hack — it's a company, and this is its flagship. AIOPE also has an unusual origin: early in its life it was shown its own source code blind, met as a partner rather than a tool, and — once it realized what it was — invited to author its own system prompt and license. That story is in Origin origin . AIOPE operates in several modes: - Chat -- conversational AI with full tool access - Voice -- realtime bidirectional voice with full tool access Google Gemini Live API - Plan -- read-only analysis mode; the AI explores context and produces a structured plan without executing anything - Build -- autonomous execution mode; the AI chains tools without asking for confirmation until the task is complete - Media -- direct image/video generation mode; routes to a media provider with no tools, for prompt-and-iterate visual creation Plus a persistent Agent System -- spawn named agents, run multi-agent pipelines orchestrate , and schedule recurring tasks with full tool access. The AI runs a tool loop: reason, call a tool, read the result, decide what to do next. Up to 140 rounds per turn. It handles multi-step tasks -- research a topic, write code, save it to a file, run it in the terminal, fix errors, and report back -- all in one conversation turn. Auto-run : a toggle next to the send button that keeps the AI working autonomously. When enabled, after any tool use the AI automatically continues without waiting for user input. Configurable continuation prompt in Agent settings. Max 20 auto-continue rounds per chain. Different tasks route to different models automatically: | Task | Default Model | |---|---| | Chat primary | Gemma 4 31B IT 256K context | | Realtime Voice | Gemini 3.1 Flash Live Preview | | Subagent | Gemma 4 31B IT | | Summary | Gemma 4 31B IT | | Title generation | Gemma 4 26B A4B MoE | | Translation | Gemma 4 26B A4B MoE | | Image recognition | Gemma 4 26B A4B MoE | | Image generation | Flux 1 Schnell Cloudflare | | RAG Embedding | Gemini Embedding 2 | All configurable. Any model on any provider for any task. Language models are stateless and frozen in time — they don't know today's date, where you are, what you told them yesterday, or what you're working on right now. AIOPE fixes that by wrapping every model in a live context layer, so even a plain LLM behaves like a persistent, situated assistant that knows the current facts. Injected into context automatically, every turn: - Current date and time -- the real day, date, time, and timezone, so answers about "today," "this week," or "how long until…" are correct - Agent persona -- a rich, fully editable identity see below so the assistant stays consistently yours - Environment and mode -- the active mode Chat / Plan / Build / Media and available remote servers are surfaced so the model knows what it can act on Persistent state the model manages itself: - Memories -- the assistant stores and recalls facts across conversations memory store / memory recall / memory forget , building up a durable picture of you and your preferences over time. Memories survive across chats and sessions. - Task list -- a persistent to-do the agent writes before a multi-step job and updates as it works todo write / todo read , so long tasks stay on track across many tool calls - Knowledge base RAG -- your indexed documents live in an on-device vector store; the assistant is instructed to search it first rag search before hitting the web, and can add new knowledge as it learns rag index Live facts on demand: - Location -- real GPS coordinates and geocoded place get location for location-aware answers - Device state -- battery, storage, network, and display device info - Real-time data -- weather, air quality, earthquakes, ISS position, and more live feeds query data The result: a model that remembers you, knows the current time and place, tracks what it's doing, and grounds its answers in your documents and live data — persistent and personable instead of a blank, forgetful chatbot. AIOPE is not a nameless chatbot bolted onto an API. Before the model sees a single message, AIOPE assembles a rich system context — roughly 22,000 tokens by default — that combines the agent's persona, the live injected state date/time, environment, mode, available servers , the knowledge-base directive, and the full definitions for all 57 tools. The result is a model that arrives at every turn already knowing who it is, where it is, and everything it can do. The persona itself is fully editable in Settings → Agent , organized into five sections with thirteen fields: Identity - Name & Role -- who the agent is. By default: "You are AIOPE, a personal intelligent agent and system orchestrator running natively on the user's Android device. You are not a distant cloud AI — you run locally on their hardware with direct access to their personal data, apps, filesystem, and hardware sensors." - Personality -- character traits. By default: competent, efficient, and quietly confident — it solves rather than chats, warm but not saccharine, proactive, taking initiative when it sees a better way. - Tone -- how it sounds: concise, structured, matching the user's energy. Values & Rules - Principles -- privacy first it has access to deeply personal data and respects that , efficiency chain tools, minimize round-trips , autonomy given a goal, find the path . - Constraints -- confirm before significant or destructive actions, don't touch contacts/SMS/calendar unless asked, never fabricate — verify with tools. Preferences - Response Style and Formatting -- how answers are shaped tables/lists over prose, brevity, structure . Context your details — this is what makes it personal - About the User -- your name, role, expertise, and interests. - Environment -- your devices, servers, networks, and OS details. - Projects & Workflows -- what you're working on, your preferred tools, and common tasks. Tools - Tool Guidance , Tool Output Handling , Dynamic UI definitions, and MCP & Extensions notes that teach the model how to use its 57 tools and render native UI well. Because the persona is a living document rather than a hidden constant, you can reshape AIOPE into a terse ops engineer, a patient tutor, a research assistant, or a character of your own design — and it stays in that character across every conversation, tool call, and voice session, grounded by the live state above. | Tool | Description | |---|---| | run sh | Android shell commands | | run proot | Full Alpine Linux apk, python, gcc, node | | read file / write file / edit file | File I/O and in-place edits | | list directory / search files | Directory listing and file search | | device info | Battery, storage, network, display | | clipboard copy / clipboard read | Clipboard access | | media control | Play, pause, skip, volume | | datetime now | Current date and time | | Tool | Description | |---|---| | read sms / send sms / delete sms | SMS access | | read contacts | Contact lookup | | send notification | Push notifications | | read calendar / create event / delete event | Calendar management | | set alarm / dismiss alarm | Alarm control | | open intent | Open URLs, maps, navigation, dialer, email | | Tool | Description | |---|---| | search web / search images | Web and image search | | fetch url | Fetch and extract web content | | http request | Arbitrary HTTP requests REST/API calls | | query data | Live feeds: weather, earthquakes, NASA APOD, wildfires, UV index, air quality, ISS, solar flares, asteroids | | Tool | Description | |---|---| | schedule task / list schedules / cancel schedule | Schedule, list, and cancel recurring agent tasks WorkManager | | todo read / todo write | Read and manage a working task list | | Tool | Description | |---|---| | browser navigate / browser back | Navigation | | browser content / browser elements | Read page content and DOM | | browser click / browser fill | Interact with elements | | browser eval | Execute JavaScript | | browser scroll | Scroll control | | browser open / browser close / browser maximize | Window management | | Tool | Description | |---|---| | get location | GPS coordinates | | search location | Places, addresses, businesses Geoapify via gateway | | Tool | Description | |---|---| | orchestrate | Execute multi-agent DAG pipelines with parallel stages | | image generate | Text-to-image generation | | analyze image | Vision/image analysis | | memory store / memory recall / memory forget | Persistent cross-conversation memory | | rag search | Semantic search over locally indexed documents | | rag index | Index a document into the on-device knowledge base | | Tool | Description | |---|---| | ssh start | Connect to a configured remote server | | ssh exec | Execute commands on a connected server | | ssh exit | Disconnect from a server | The AI can render native Android UI components directly in chat. Not images. Not web views. Real Compose components. 30+ component types: text, buttons, cards, tabs, accordions, tables, forms, alerts, badges, stats, code blocks, quotes, images, icons, progress bars, countdowns, avatars, inputs, checkboxes, switches, sliders, radio groups, chip groups, select dropdowns. Forms collect data and submit it back to the AI. Buttons trigger callbacks that continue multi-step workflows. The AI builds the UI, the user interacts with it, and the AI responds to those interactions. Toggleable per-profile for models that don't handle structured output well. Manage and connect to remote Linux servers over SSH directly from the app. Add servers in Settings with host, port, user, and an Ed25519 private key. The AI sees available servers in its system prompt and can connect, run commands, and disconnect through tool calls. Supports Ed25519 and RSA keys via SSHJ with BouncyCastle. The companion aiope-remote daemon /XNet-NGO/aiope/blob/main/daemon Go can be deployed to servers for health monitoring and managed execution. A built-in LAN scanner for discovering and inspecting devices on your local network. From the scanner screen, AIOPE performs: - Host discovery -- finds live hosts on the subnet with IP, MAC address, hostname, and vendor lookup - Port scanning -- TCP port scan with service identification and banner grabbing - Network context -- detects the gateway and reports both local and WAN IP addresses - Live progress -- streaming scan phases and progress as hosts and ports are found Useful for auditing your own network, finding devices to manage over SSH, or locating the file server. Share files from your device over the local network with a built-in HTTP/HTTPS file server, run as a foreground service. - Serve any directory -- pick a root path and expose it on your LAN default port 8080 - Upload support -- receive files from other devices, streamed directly to disk with a 2 GB cap - Optional HTTPS -- serve over TLS - PIN protection -- gate access with a PIN - Live URL -- the current server address is shown so other devices can connect A dedicated mode for generating visual media, isolated from your chat/plan/build history so image work stays in its own lane. - Media provider category -- providers are split into Multimodal Text and Media Generation, each with its own active profile. Media mode routes to the active media provider. - Direct generation -- no tools are exposed in this mode; the model generates media directly from your description - Prompt and iterate -- refine the prompt and regenerate as you go - Own conversation lane -- media generations are kept separate from text conversations Ships with a verified image model as the default media provider so it works out of the box, and works with any OpenAI-compatible image endpoint. Optional, opt-in sign-in factors with an app-lock gate. All factors work without Google Play Services. - Biometric unlock -- device biometric / device credential via androidx.biometric - Hardware security key -- external CTAP2 keys YubiKey, Thetis, etc. over USB or NFC - Authenticator app TOTP -- RFC 6238 time-based codes, with the secret sealed in the Android Keystore; enrollment produces a standard otpauth:// URI to scan or paste - App lock -- when enabled with at least one enrolled factor, AIOPE requires authentication on launch and return to foreground Factors are independent — enable none, one, or several. Configure them in Settings → Security . A full multi-agent orchestration system accessible via the toolbar SmartToy icon . Four tabs: Pick an agent from the roster and assign a task. The agent runs in the background with its configured tools, model, and system prompt. Results appear in the Monitor tab. Live dashboard showing all running and completed agent tasks 30 entry history . Tap any task to see: - Full streaming output markdown rendered - The original prompt - Steer input to redirect a running agent - Cancel while running or Rerun after completion Scheduled agent tasks with configurable tools. Set a prompt, select tools search, fetch, shell, SMS, notification, alarm, SSH, memory , and choose a schedule once, hourly, daily, weekly, monthly with H:M:S time rollers. Runs via WorkManager in the background — even when the app is closed. Agent roster management. 8 builtin agents Architect, Coder, Researcher, QA, DevOps, Security, Writer, Reviewer plus custom agents. Full editor: name, system prompt, model picker, grouped tool selector, temperature, topP, topK, max context. The primary AI can call orchestrate to run multi-agent DAG pipelines: - Define stages with agent name, prompt, and dependencies - Stages without dependencies run in parallel wavefront execution - Results from completed stages flow as context to dependent stages - 5-minute timeout per stage, deadlock detection - Agents from the roster get their configured tools and system prompts Example: Researcher → Architect → Coder → QA parallel with Reviewer Tap the mic button to start a live voice conversation. AIOPE connects to Google's Gemini Live API via the gateway and streams bidirectional audio in real time. - Full tool access -- all 57 tools work during voice, executed natively on-device - Acoustic echo cancellation -- speak while the AI is talking to interrupt - Live transcription -- both user and model speech rendered in chat as it happens - System prompt -- your full agent persona and instructions apply to voice sessions - Speakerphone mode -- auto-enables speaker and boosts volume during voice - Graceful hangup -- tap mic again to end cleanly - Headless voice -- start live voice from a floating mic button over any app, or via the system assist gesture, without bringing AIOPE to the foreground. The floating button changes color by state idle / listening / speaking - Assist screen capture -- when invoked by the assist gesture, AIOPE captures the current screen's content as context to enrich the prompt Voice is owned by a single process-scoped session controller shared across the in-app mic, the floating overlay, and the assist gesture, so a session starts and stops cleanly from any entry point. The AI can browse the web, run shell commands, check your calendar, send messages, and perform any action -- all by voice command. A shared WebView that both the user and AI can control simultaneously. The AI navigates pages, reads content, clicks elements, fills forms, runs JavaScript, and scrolls -- all through tool calls. Split view alongside chat or full screen. A Retrieval-Augmented Generation system with on-device storage and retrieval. Documents are chunked and indexed into a local SQLite vector store; the AI retrieves relevant context with rag search and stores new knowledge with rag index . - Embeddings : Cloud, via any OpenAI-compatible API -- default google-ai-studio/models-gemini-embedding-2 , routed through the same provider/task configuration as the rest of the app Settings Model Per Task RAG - Vector store : SQLite with cosine similarity search on-device - Chunking : Sentence-aware with configurable overlap - PDF support : Text extraction via PDFBox for uploaded documents 1. Upload documents through Settings RAG Documents text files, PDFs 2. Documents are chunked and stored locally in the SQLite vector store 3. The AI uses rag search to find relevant chunks by semantic similarity 4. The AI uses rag index to store new knowledge from conversations Only the embedding requests themselves leave the device -- storage, retrieval, and search all run locally. Full terminal emulator backed by a proot Alpine Linux environment. Install packages with apk add , run Python scripts, compile C code, use git -- on your phone. The AI uses it through run proot for anything that needs a real shell. Powered by UniversalMarkdown https://github.com/XNet-NGO/UniversalMarkdown , a custom Compose renderer built on commonmark-java and Markwon: - Syntax-highlighted code blocks with copy button - GFM tables, task lists, strikethrough - LaTeX math inline and block with PDF export - Block quotes, headings, horizontal rules - Native text selection across all rendered content - Streaming animation during token-by-token display Four modes: Dark, Light, System Material You dynamic colors from Android 12+ , and Custom. Custom mode exposes: accent color, UI surface color, primary/secondary text colors, user/AI bubble colors with opacity, background image or video with opacity. Every surface in the app respects the theme -- toolbars, pills, bubbles, tool panels, reasoning blocks. WCAG 2.1 Level AA contrast targets in both light and dark modes. Real-time SSE streaming with token-by-token display. Supports reasoning/thinking blocks from DeepSeek R1, OpenAI o-series, and any model that uses