# RikkaHub: A Native Android LLM Client That Switches Providers Mid-Conversation

> RikkaHub is a Kotlin Android app that routes chats across OpenAI, Google, Anthropic and custom endpoints. It is opinionated, AGPL-3.0 licensed, and not built for people who want to fork it into their own product.

**rikkahub/rikkahub** — RikkaHub is an Android APP that supports for multiple LLM providers.

- Repository: https://github.com/rikkahub/rikkahub
- Website: https://rikka-ai.com
- Stars: 7,840 · Forks: 703
- Language: Kotlin
- License: AGPL-3.0
- Published: 2026-08-04 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/rikkahub-rikkahub

## What RikkaHub Solves for Android Users With Several API Keys

Most mobile chat clients assume one backend. You paste one key, and every conversation runs through that vendor. RikkaHub starts from the opposite assumption: the README describes it as "a native Android LLM chat client that supports switching between different providers for conversations." The feature list names custom API, URL and model configuration, and states compatibility with "all OpenAI, Google, Anthropic compatible api." That covers a self-hosted gateway, a relay service, or three vendor keys side by side.

The audience is narrow and specific. You need an Android device, and you need to be comfortable pasting base URLs and keys rather than signing into a vendor account. The README points to a website download and a Google Play listing under the application id me.rerere.rikkahub. There is no iOS build in the README, and no desktop build. The repository does contain a web-ui and web directory, and the feature list mentions "Web access for multi-platform use," but the README does not describe that as a standalone desktop product.

One warning deserves attention. The README states that many forked versions exist and that issues with forks are unrelated to RikkaHub, advising caution "to avoid privacy leaks or excessive permission requests." For an app that holds API keys, that is the single most useful sentence on the page.

## How Provider Switching, Workspace and MCP Fit Together

The stack is visible in the README's technology list. Kotlin with Jetpack Compose for UI, Koin for dependency injection, Room for the database, DataStore for preferences, OkHttp as the HTTP client, kotlinx.serialization for JSON, Coil for images, Navigation 3, and Material You for design. Conversations therefore live in a local Room database, settings live in DataStore, and every provider call goes out through OkHttp. That is a conventional Android architecture, and it explains why provider configuration is a data problem rather than a networking one: the app stores endpoints and keys, and serializes requests per provider.

Two features change the shape of the client more than the provider list does. The first is Workspace, described as "a proot-based Linux agent environment." A proot environment runs a Linux userland without root, inside the app's sandbox. That is a real capability, and it is also the heaviest thing in the app. The second is MCP support, which lets external tool servers expose capabilities to the agent. Around those sit search providers (Exa, Tavily, Zhipu, LinkUp, Brave, Perplexity and others), prompt variables such as model name and time, message branching, a memory feature, AI translation, custom HTTP headers and request bodies, and Silly Tavern character card import.

The custom header and body support is the piece that makes the "all compatible api" claim practical. Relays and self-hosted gateways frequently need an extra header or a non-standard field, and the README lists that as a first-class setting rather than something you patch in.

## Installing RikkaHub and Sending a First Message

The README gives two download paths. The website is marked as recommended, and Google Play is the alternative. There is no build-from-source instruction in the README beyond a note for contributors, so installation means installing a released APK or the Play Store package.

If you install the APK from the website, Android will ask you to allow installation from that source. After the app opens, the first task is adding a provider. The README does not print a configuration example, but it does state that custom API, URL and model values are supported and that OpenAI, Google and Anthropic compatible APIs work. A typical OpenAI-compatible entry therefore needs three values: the base URL of your endpoint, an API key, and a model identifier. The base URL is whatever your provider or relay publishes, not a value this article can supply.

The README does document one sharing mechanism that saves retyping this on a second device:

```text
QR code export and import for providers
```

That is listed verbatim in the feature list. The practical use is to configure one phone, export the provider set as a QR code, and import it on another device instead of re-entering keys by hand. Treat the QR code as a secret: it carries credentials.

After a provider is saved, start a chat and send a message. If the response fails, the likely causes are a wrong base URL path, a model name the endpoint does not serve, or a relay that expects an extra header, which the custom HTTP header setting exists to handle. The README does not document a connectivity diagnostic screen, so debugging happens at the provider level.

## Where RikkaHub Gets in the Way

The contribution rules are the clearest limitation, and they are stated bluntly. The README lists three categories of pull request that will be rejected: translation changes such as adding or updating languages, new features ("this project is opinionated and will not accept pull requests for new features"), and large-scale refactoring or changes generated by AI. If your plan is to add a provider, adjust the UI, or ship a rebranded client, the project has told you in advance that the patch will not land.

Platform coverage is the second constraint. The repository carries web-ui, web, workspace, search, speech, oauth, highlight, videogen and trace-cli directories, which suggests a broader surface than the README describes, but the README's own download section offers only the website and Google Play. Anyone searching for a Windows or desktop build will not find instructions in the README. The same applies to iOS: the primary language is Kotlin and the app is Android-native.

Workspace deserves a separate caution. A proot-based Linux environment inside an Android app is a large capability with a large footprint, and the README does not describe its disk usage, its startup cost, or which Linux distributions it can run. If you only want to chat, enabling it buys nothing and costs storage.

Finally, the fork warning cuts both ways. Because forks are common and unsupported, bug reports and behaviour differences you observe may belong to a modified build. Verify the package id before filing anything.

## RikkaHub Compared With a Single-Provider Client

The obvious alternative is a vendor's own mobile app, such as the official ChatGPT or Gemini client. The difference is architectural, not cosmetic. A vendor app authenticates you against one account and one model family; you cannot point it at a relay or a self-hosted endpoint. RikkaHub stores endpoints and keys itself and sends requests through OkHttp, which is why the README can claim compatibility across OpenAI, Google and Anthropic formats. If your work spans several vendors and you want one conversation list, that difference is the whole product. If you only ever use one vendor, the vendor app removes the configuration work entirely and adds account-level features RikkaHub does not have.

A second comparison is with generic multi-provider chat frontends that run in a browser. RikkaHub's advantage is that it is a native Android app with Room-backed local storage, Material You theming and dark mode, plus Android-specific capabilities like QR code export and Silly Tavern character card import. A browser frontend is easier to reach from a laptop but has no proot workspace and no MCP integration on the device. The trade is portability against depth.

Neither comparison makes RikkaHub the right answer by default. It is the better fit when the provider mix is the point and the device is Android.

## Licence, Maintenance and Upgrade Cost

RikkaHub is licensed under the GNU Affero General Public License v3.0. For individual users installing the app, the licence mostly governs what happens if you redistribute it. For anyone embedding RikkaHub in a network service or shipping a modified APK, AGPL-3.0 carries source-disclosure obligations that differ from permissive licences, and the project's rejection of feature pull requests means you would carry those modifications yourself rather than upstreaming them. This is a description of the licence text, not legal advice; read LICENSE and consult a lawyer if you plan to redistribute.

The maintenance signal is concrete. The repository is not archived, and the last push was on 2026-08-28, the same day as release 2.4.15. Releases 2.4.13, 2.4.14 and 2.4.15 landed on 2026-08-26, 2026-08-27 and 2026-08-28 respectively, so the project was cutting builds on consecutive days at that point. The README does not document a release cadence, a support window, or a deprecation policy for older versions.

Upgrade cost is low for users who install through Google Play, which handles updates. It is higher for APK installs from the website, because updating means downloading and installing a new build, and any locally stored provider configuration should be exported first using the QR code feature. The README does not document a migration step between 2.4.x releases, so there is nothing to follow beyond the app's own update path.

## Conclusion

RikkaHub fits Android users who already hold API keys from several providers and want one chat surface with branching, search tools and MCP support. It does not fit anyone who needs iOS, Windows or a desktop build, since the README lists only Android, Google Play and a web access feature. It also does not fit teams that want to ship a modified client: the README states that feature pull requests, translation changes and large AI-generated refactors are rejected, and the AGPL-3.0 licence governs redistribution. Before adopting it, open the app, add one provider, send a message, and confirm the APK you installed came from rikka-ai.com or Google Play rather than a fork.

## FAQ

### How do I use RikkaHub?

Install it from rikka-ai.com or Google Play, then add a provider by entering a base URL, an API key and a model name for an OpenAI, Google or Anthropic compatible endpoint. After the provider is saved, start a chat and send a message. The README lists QR code export and import as a way to move provider settings between devices.

### How does RikkaHub compare with other tools?

The README does not publish a comparison table or name competing clients. What it does state is that RikkaHub is a native Android app supporting custom API, URL and model values across OpenAI, Google and Anthropic compatible endpoints, plus MCP support, search providers and a proot-based Workspace environment. Any comparison beyond those listed capabilities is not documented.

### Is there a RikkaHub web version or desktop app?

The README lists "Web access for multi-platform use" as a feature, and the repository contains web and web-ui directories, but the download section offers only the website APK and Google Play. No Windows, PC or desktop build is documented in the README.

### Is there a RikkaHub iOS version?

The README describes RikkaHub as a native Android app, the primary language is Kotlin, and the only download links given are the website and Google Play. No iOS build is mentioned.

### Where do I download the RikkaHub APK?

The README recommends the website at rikka-ai.com/download, with Google Play as the second option under the package id me.rerere.rikkahub. It also warns that many forked versions exist and that issues with forks are unrelated to RikkaHub.

## Sources

- [Official documentation](https://rikka-ai.com)
- [Official README](https://github.com/rikkahub/rikkahub#readme)
- [Project repository](https://github.com/rikkahub/rikkahub)
- [Release notes](https://github.com/rikkahub/rikkahub/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/rikkahub-rikkahub
