A fork of RikkaHub that turns the native Android LLM chat client into a real on-device agent:
80+ device tools, AI-authored workflows, scheduled jobs, an in-app browser the AI drives, keyless web search, a Linux workspace, SSH, screen automation, a file manager, a music player, voice transcription, downloadable on-device LLMs, and a remote Telegram bot.
All opt-in. Tell it what to do in plain language; it runs in the background, on your phone, on your terms.
Each of these is a one-line setup. The phone runs them in the background while you live your life.
Every capability below ships off by default and stays off until you turn it on.
Tap, swipe, scroll, type, take screenshots, open apps and the specific screens inside them, adjust brightness, volume, and the torch, post notifications, set the wallpaper. Read battery, WiFi, signal, location, and sensors. Read contacts, SMS, and the call log; send SMS. Take photos, record the mic, read and write NFC tags, sign and encrypt with the Android Keystore, reach external storage and SD cards, manage ZIP archives. 80+ tools, all built into Android, no extra apps required.
A real browser the AI drives end-to-end: it clicks through cookie banners, fills search boxes, scrolls, and reads pages back to you, streaming a fresh screenshot after every step. A floating chat pill lets you keep talking without leaving the page. Article extraction and diff-after-action keep token costs low.
Tasker-class automation, but the AI writes the rules from natural language. 20 trigger types (WiFi, Bluetooth, headphones, geofence, app launch, notification, screen, charging, time, more) and 14 conditions (battery, sunrise/sunset, foreground app, day-of-week). Receivers register only when needed, so battery drain stays minimal.
"Every Monday at 8", "every two hours", "next Friday at 3pm". Jobs survive reboots and battery saver. Choose AI-at-runtime decisions, or pre-bake a fixed action that runs without spending tokens.
The built-in DuckDuckGo engine works out of the box, and anti-bot blocks report an honest retryable error instead of a silent "no results". Prefer your own key? The picker lists 19 engines: Tavily, Exa, Brave, Perplexity, Jina, Firecrawl, SearXNG, Bing, Serper, Ollama, and more, plus a custom-script engine. web_fetch and web_extract pull and strip any page directly, with private-network targets blocked at DNS resolution.
A real Linux environment on the phone. The AI runs shell commands, reads, writes, and patches files, and browses the result in a built-in file manager with a text editor and image/video preview. Long-running work survives across turns: start a dev server or a build in the background, poll its output, kill it later. Through Termux it also gets a full package manager, and the per-turn tool-step ceiling is configurable up to 500 for long installs and builds. Voice notes are transcribed on-device with whisper.cpp running through Termux.
Save your servers once and the AI can reach any of them on demand. Run commands, upload and download files over SFTP, pipe input, tail logs, or launch long-running servers that return a PID instead of hanging. Approval gating on first connect and destructive commands. Works on WiFi or cell.
Talk to your assistant from anywhere. Send a question, photo, PDF, or voice note; voice is transcribed locally. Approval prompts arrive as Yes/No buttons, questions as tappable multiple choice, long replies as downloadable files. Allowlist-only, and /doctor runs the health check remotely.
Built-in file manager the AI can drive. "Find every PDF mentioning 'invoice' on my phone" works in one sentence. Read, save, copy, move, rename, delete. System folders outside the app's sandbox are off-limits, even if you ask.
Plays through Android's normal media controls: lock-screen art, headphone keys, the works. Pause, resume, lower the volume for a meeting and bring it back later, from chat or from Telegram. Your queue survives force-stops, same track and same position.
Drop a Markdown skill file and the AI gains a new playbook. JavaScript skills run in a hidden WebView and open results in the in-app browser. A bundled catalog ships with a QR generator, Wikipedia query box, piano, interactive map, and more. Add skills from a URL or by sharing a file into the app.
For long tasks the main assistant dispatches focused sub-agents into clean side-contexts, optionally on smaller, cheaper models. Two or more run in parallel: one researches a topic while another updates your server. Each result comes back as a single summary. /stop cascades cancellation through every active child in one tick.
Connect Model Context Protocol servers and the AI gains whatever tools they expose. The AI can add, update, and manage MCP connections itself; every change is approval-gated.
The AI reads, summarizes, and forwards incoming notifications from apps you choose; the whitelist starts empty. Notifications the agent posts deep-link back to the conversation that produced them, so a tap opens the full reply even from a cold start.
A built-in health checkup: a top-to-bottom audit of permissions, background services, database integrity, network, Termux, and diagnostics. Per-row auto-fix grants the missing permission, restarts the service, or rebuilds the search index. Also available remotely via /doctor on Telegram.
Other apps can hand the agent tasks through the External Automation Intent API: Tasker, automation tools, or a plain ADB command. Your phone's existing automations become the agent's front door.
Per-assistant toggles: every tool starts off; flip on only what you want. Per-call approval: tools that change something ask first, with Allow once, this chat, always, or Deny; permanent grants are listed under Settings and revocable any time. HARDLINE floor: wipe-everything commands, fork bombs, system file destruction, and shell tricks to bypass the rule are blocked unconditionally, even if you ask for them. Passwords and API keys never hit log files, cloud backups skip saved credentials, and web fetches that resolve to a private network address are refused, so the assistant cannot be talked into probing your LAN.
Paste an API key, sign in with an account you already pay for, or download a model and run it entirely on the phone.
OpenAI, Anthropic, Google, DeepSeek, xAI, Ollama, and any OpenAI-compatible endpoint. OpenRouter gets first-class support: auto-detected model capabilities and pricing, plus a fallback model list tried in order when your primary is down, rate-limited, or refuses. Providers that discount cached tokens show cache hits and misses under each reply.
Codex: your ChatGPT plan over OAuth. Grok: SuperGrok or X Premium+ over OAuth. Google sign-in: Gemini through Google Cloud Code Assist with no API key; several accounts round-robin, each showing its remaining daily and weekly quota.
Download a local model (Gemma, Qwen, and more) from HuggingFace search or from storage and run it through llama.cpp (GGUF) or LiteRT, with GPU acceleration where supported. No key, no network, nothing leaves the phone. Pixel 8/9/10 users can also enable Gemini Nano via AICore (currently requires the AICore Beta).
No configuration needed for chat. Tools and the bot are opt-in once the app is open.
Install. Download the latest *-arm64-release.apk (or *-universal-release.apk if unsure) from Releases, allow install from unknown sources, open. Old debug builds must be uninstalled first; the signing changed.
Add a model. Settings → Providers → pick one → paste an API key. Or sign in with a ChatGPT, xAI, or Google account, or download a local model and skip the network entirely.
Turn on what you want. Settings → Assistants → tap your assistant → Local Tools → flip the categories you want enabled.
(Optional) Telegram bot. Get a token from @BotFather, your numeric id from @userinfobot, then say in chat: "Set up the Telegram bot. Token …. My user id …. Set me as default chat. Enable it."
Just talk to it. If you don't turn anything on, the app behaves exactly like vanilla RikkaHub.
# Things to ask, once tools are on: › "Find every PDF on my phone that mentions 'invoice' and read me the first paragraph." › "Every weekday at 9am, summarize my unread WhatsApp into one Telegram message." › "SSH into home-server and ping me if any partition is over 90% full." › "Watch my notifications. If anything from my boss comes in, forward it to Telegram."
# Build the APK yourself $ git clone https://github.com/ExTV/rikkahub-agent.git $ cd rikkahub-agent $ ./gradlew :app:installDebug # Requirements: # - Android SDK 37 # - JDK 17 # - bun + pnpm (for the in-app web UI bundle) # Run unit tests $ ./gradlew :app:testDebugUnitTest
Free, open source, no telemetry. The hard part is deciding what to delegate first.
If something isn't covered here, open an issue on GitHub.
HARDLINE list (wipe everything, reboot, fork bombs, system file destruction, and shell tricks to bypass the rule) is blocked unconditionally. Even if you tell the AI to do one of these, it won't.
*-arm64-release.apk for almost every modern phone, *-x86_64-release.apk for emulators and x86 Chromebooks, and *-universal-release.apk if you don't know which to pick (it bundles both, larger download). Releases are tagged vX.Y.Z-agent.N where vX.Y.Z is the upstream RikkaHub version and N is the agent revision on top. If you still have an old debug build installed, uninstall it first; the signing changed. Google Play Protect may flag the install with a "this app may be harmful" warning since the APKs aren't Play-Store signed; tap "Install anyway", or temporarily turn off "Scan apps with Play Protect" while you install.