Open source · Built for Android

Tell it once.
Walk away.

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.

Android 8+ / ARM64 · x86_64 / AGPLv3 / No telemetry
80+
device tools
19
search engines
3
approval layers
0
telemetry

One sentence. Your phone takes it from there.

Each of these is a one-line setup. The phone runs them in the background while you live your life.

"Every weekday at 9am, summarize my unread WhatsApp into one Telegram message.
"If my home server's disk fills up, ping me.
"Watch my notifications. If anything from my boss comes in, forward it to Telegram. Quietly ignore the rest.
"Find the PDF on my phone that mentions 'invoice' and read me the first paragraph.
"Take a screenshot every 30 minutes for the next 4 hours so I can see what I actually did all afternoon.
"Use Termux to build me a webpage listing everything you can do, then open it in my browser.
"When I plug in headphones at home WiFi after 7pm, start my evening playlist.
"Open my router's admin page, sign in with the saved password, and tell me which devices are eating the most bandwidth right now.
"Spin up two researches in parallel: one finds the cheapest one-way flight to Tokyo this month, the other lists hotels in Shibuya under $100. Tell me when both finish.

Everything an agent should have.

Every capability below ships off by default and stays off until you turn it on.

Control your phone

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.

In-app browser

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.

Workflows

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.

Schedule anything

"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.

Web search, no key needed

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 Linux workspace and a real shell

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.

SSH from your pocket

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.

Telegram bot

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.

Find & manage files

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.

Music + media

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.

Skills

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.

Sub-agents

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.

MCP servers

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.

Notification watcher

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.

Doctor

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.

External triggers

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.

Safety in three layers

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.

Bring any model. Or none at all.

Paste an API key, sign in with an account you already pay for, or download a model and run it entirely on the phone.

Cloud APIs

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.

Sign in with an account

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.

Fair warning: the Google sign-in reaches Google's services through a client Google did not approve, and Google's terms allow accounts to be suspended or terminated for that. The app shows this warning prominently before you enable it. Use a throwaway account, never one tied to your email, photos, or work.

Fully on-device

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).

Up and running in under a minute.

No configuration needed for chat. Tools and the bot are opt-in once the app is open.

1

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.

2

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.

3

Turn on what you want. Settings → Assistants → tap your assistant → Local Tools → flip the categories you want enabled.

4

(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."

5

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

Put your phone to work.

Free, open source, no telemetry. The hard part is deciding what to delegate first.

Common questions

If something isn't covered here, open an issue on GitHub.

Does this require root?
No. RikkaHub Agent uses standard Android permissions and accessibility-service APIs. No root, no Magisk, no custom ROM. Some advanced tools (notification listener, screen automation) need a one-tap permission grant in Settings; everything else is runtime permissions.
Is my data sent anywhere?
Only to the LLM provider you pick, and the app ships zero analytics or telemetry. If you run a downloaded local model (llama.cpp or LiteRT) or AICore on a Pixel 8/9/10, inference is fully on-device and nothing leaves the phone. Passwords and API keys are never written to log files. Cloud backups skip your saved server credentials and Telegram bot token.
What LLM providers work?
Cloud APIs: OpenAI, Anthropic, Google, DeepSeek, OpenRouter (first-class, with fallback models), xAI, Ollama, and any OpenAI-compatible endpoint (Groq, Mistral, vLLM, LM Studio, etc.). Account sign-ins: Codex (ChatGPT plan), Grok (SuperGrok or X Premium+), and a Google account sign-in for Gemini. On-device: downloaded GGUF/LiteRT models, or Gemini Nano via AICore on Pixel 8/9/10+.
What is the Google account sign-in, and is it risky?
It signs in with a Google account and generates through Google Cloud Code Assist, so you get Gemini without an API key, with several accounts used round-robin and per-account quota bars. It is risky: the requests reach Google through a client Google did not approve, and Google's terms allow them to suspend or terminate accounts for that, with no appeal path built for this case. The app shows this warning prominently before you can enable the provider. If you use it, use a throwaway account you can afford to lose.
How are dangerous tools handled?
Three layers, strictest last. (1) Every tool category starts off; you flip on only what you want, per assistant. (2) Consequential tools (SSH commands, file deletes, app launches, sending messages) prompt you before running, with Allow once / this chat / always / Deny; anything you "Always Allow" is listed under Settings → Tool approvals and can be revoked any time. (3) A short 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.
Do scheduled jobs survive reboot or battery saver?
Yes. Jobs are persisted and restored after reboot, and the cron service runs as a foreground service so Doze and battery saver don't kill it. Each job stores its prompt + assistant + trigger, so behavior is reproducible across runs.
How is this different from vanilla RikkaHub?
Upstream RikkaHub is a beautiful native LLM chat client. This fork keeps that UI and adds the agent layer: 80+ device tools, an in-app browser the AI drives, AI-authored workflows, scheduled jobs, sub-agents, keyless web search, the skills system (Markdown plus JavaScript), a Linux workspace with Termux, SSH, the Telegram bot, music + media controls, the notification watcher, file manager, screen automation, on-device LLMs, account sign-in providers, the Doctor diagnostic menu, and the three-layer approval gate. If you don't enable any of the new features, the app behaves exactly like vanilla RikkaHub.
Is this affiliated with the upstream RikkaHub team?
No. This is an independent fork. All credit for the chat client, provider abstraction, and UI design goes to Re-ovo and the upstream contributors. Issues with the agent layer should be filed here, not upstream.
What do the APKs in Releases mean?
Each release ships three release-signed APKs: *-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.
What languages does the interface ship in?
English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Arabic. The app follows your system language and falls back to English. Right-to-left languages render correctly in chat, and code blocks stay left-to-right.
License?
AGPLv3, inherited from upstream. See the LICENSE file for the full text and the upstream segmented dual-licensing terms.