aiope
Health Warn
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in daemon/scripts/build-installer.sh
- rm -rf — Recursive force deletion command in daemon/scripts/installer-header.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
AIOPE — 46-tool AI agent for Android. Linux terminal, browser automation, SSH, dynamic UI, MCP, any model. Built by one developer + AI in 30 days.
AIOPE
An AI that doesn't just talk. It acts.
AIOPE is an Android AI assistant with 46 tools, a full Linux terminal, browser automation, location awareness, live data feeds, remote server management, and the ability to build native interactive UI on the fly. It connects to any OpenAI-compatible API and runs the entire tool loop on-device.
It ships with the AIOPE Gateway -- a self-hosted inference proxy that routes to Google AI Studio, Pollinations, and other providers with a single API key. The gateway handles model routing, rate limiting, and API key management so the client stays clean.
What It Does
AIOPE operates in three modes:
- Chat -- conversational AI with full tool access
- 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
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.
Models Per Task
Different tasks route to different models automatically:
| Task | Default Model |
|---|---|
| Chat (primary) | Gemma 4 31B IT (256K context) |
| Subagent | Gemma 4 26B A4B (MoE, 4B active) |
| Summary | Gemma 3 27B IT |
| Title generation | Gemma 3 1B IT |
| Translation | Gemma 3 12B IT |
| Image recognition | Gemma 3 27B IT |
| Image generation | Klein (Pollinations) |
All configurable. Any model on any provider for any task.
Tools (46)
System
| Tool | Description |
|---|---|
run_sh |
Android shell commands |
run_proot |
Full Alpine Linux (apt, python, gcc, node) |
read_file / write_file |
File I/O |
list_directory |
Directory listing |
device_info |
Battery, storage, network, display |
clipboard_copy / clipboard_read |
Clipboard access |
media_control |
Play, pause, skip, volume |
Communication
| 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 |
Web and Search
| Tool | Description |
|---|---|
search_web / search_images |
Web and image search |
fetch_url |
Fetch and extract web content |
query_data |
Live feeds: weather, earthquakes, NASA APOD, wildfires, UV index, air quality, ISS, solar flares, asteroids |
Browser Automation
| 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 |
Location
| Tool | Description |
|---|---|
get_location |
GPS coordinates |
search_location |
Places, addresses, businesses (Geoapify via gateway) |
AI
| Tool | Description |
|---|---|
image_generate |
Text-to-image generation |
analyze_image |
Vision/image analysis |
task |
Spawn a subagent for parallel work |
memory_store / memory_recall / memory_forget |
Persistent cross-conversation memory |
Remote Servers (SSH)
| Tool | Description |
|---|---|
ssh_start |
Connect to a configured remote server |
ssh_exec |
Execute commands on a connected server |
ssh_exit |
Disconnect from a server |
Dynamic UI
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.
Remote Servers
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 (Go) can be deployed to servers for health monitoring and managed execution.
Browser
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.
Terminal
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.
Markdown
Powered by 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
Themes
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.
Streaming and Reasoning
Real-time SSE streaming with token-by-token display. Supports reasoning/thinking blocks from DeepSeek R1, OpenAI o-series, and any model that uses <think> tags. Thinking content renders in collapsible panels with shimmer animation during streaming and a fade mask for partial display.
Providers
Works with any OpenAI-compatible API. Ships pre-configured for the AIOPE Gateway, which proxies to:
- Google AI Studio (Gemma 3, Gemma 4, Gemma 3n)
- Pollinations (Klein image generation, free inference)
- Any additional backend you configure
Also supports direct connections to OpenAI, Anthropic, DeepSeek, OpenRouter, Groq, Ollama, and any custom endpoint.
MCP (Model Context Protocol) support for extending the AI with external tool servers. HTTP and SSE transports.
Conversations
- Multiple conversations with auto-generated titles
- Edit and resend from any point in the conversation
- Retry, fork, and compact conversations
- Auto-compact when approaching context window limits
- Image and file attachments (images, PDFs, text files)
- Speech-to-text input
- Text-to-speech output
- Inline translation to 12 languages
- Share conversations as text
Setup
- Clone and build with Android Studio (or
./gradlew :app:assembleRelease) - Install on any Android 8.0+ device
- The AIOPE Gateway is pre-configured -- works out of the box
- For the Linux terminal: Settings > install proot environment
Or download the latest APK from Releases.
Requirements
- Android 8.0+ (API 26)
- Internet connection for API calls
- GPS for location features (optional)
- ~100MB for proot Linux environment (optional)
Architecture
app/ Main Android module
core-designsystem/ Theme, colors, typography
core-network/ LLM provider, SSE streaming, task model routing
core-model/ Shared interfaces (RemoteToolBridge)
core-preferences/ DataStore preferences
core-data/ Data layer
core-terminal/ Terminal emulator, proot bootstrap
daemon/ Go daemon for remote servers (aiope-remote)
feature-chat/
engine/ StreamingOrchestrator, ToolExecutor, AgentMode
dynamicui/ aiope-ui parser, renderer, 30+ node types
browser/ WebBrowser, BrowserPanel, BrowserServer
location/ GPS provider, map cards, geocoding
settings/ Provider config, model-per-task, MCP, themes
theme/ ThemeProvider, ThemeState, ChatBackground
feature-remote/
ssh/ SshSessionManager, DeployUseCase
tools/ RemoteToolProvider (ssh_start, ssh_exec, ssh_exit)
ui/ ServerListScreen, ServerListViewModel
db/ RemoteDatabase (Room)
Built By
AIOPE was built by one developer and an AI pair in under a month. No team. No funding. No office. Just a server in a house and a terminal.
~1000 commits. 46 tools. 10 languages across 26 repositories. The entire XNet software stack -- from low-level ZeroTier networking forks and TCP/IP stacks to MCP servers, a self-hosted LLM gateway, a custom markdown renderer, and the most feature-complete AI agent app on Android -- is maintained by the same person.
The developer is disabled. AI-assisted development is the accessibility tool that closed the gap between vision and execution. AIOPE exists because the same paradigm it demonstrates -- a human directing an AI to build at a pace that shouldn't be possible -- is the paradigm that built it.
No other Android app ships a Linux terminal, browser automation, SSH remote management, 46 tools with a 140-round autonomous loop, dynamic native UI generation, provider-agnostic model routing, and MCP support in a single package. The apps that come closest are backed by teams of hundreds.
This one was built by two.
License
AIOPE original code is licensed under the Business Source License 1.1 (BSL 1.1).
Free to use, study, and self-host. Not to modify or redistribute. Converts to Apache 2.0 on 2030-04-10.
Copyright 2026 XNet Inc. -- Joshua S. Doucette
Contact: [email protected] | [email protected]
Attributions
AIOPE builds on the following open-source projects, each under their original licenses:
| Component | Source | License |
|---|---|---|
| Dynamic UI | Inspired by nicholasgasior/kai | Apache 2.0 |
| App scaffold | skydoves/chatgpt-android | Apache 2.0 |
| Markdown | XNet-NGO/UniversalMarkdown | BSL 1.1 |
| Markdown base | antgroup/FluidMarkdown | Apache 2.0 |
| Markwon | noties/markwon | Apache 2.0 |
| Terminal | termux/termux-app | GPL 3.0 |
| MapLibre | maplibre/maplibre-native | BSD 2-Clause |
| CommonMark | commonmark/commonmark-java | BSD 2-Clause |
| Prism4j | noties/Prism4j | Apache 2.0 |
| JLatexMath | opencollab/jlatexmath | GPL 2.0+ |
The BSL 1.1 applies only to XNet's original code. All third-party components retain their original licenses.
Contributing
Contributions welcome. Open an issue first to discuss. PRs target main.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found