Open-source project
SilentCoderHere/aihub avatar
SilentCoderHere/aihub

AI Hub puts several AI chat services in one Android tab bar

All-in-one Kotlin app that aggregates multiple AI assistants in a single tabbed interface, featuring webview integration, Material Design 3, and persistent session management.

531 stars51 forksKotlinGPL-3.0

At a glance

What is it?
AI Hub is a Kotlin Android app that opens several AI assistants as webviews inside one tabbed interface with dynamic colors and automatic dark and light mode, keeps conversations across restarts and blocks trackers by default. The service catalogue lives in a separate configuration repository, and the app ships under GPL-3.0.
Who is it for?
AI Hub suits Android users who juggle several AI assistants and want their logins and conversations in one place, and it does not suit teams that need offline models, direct API access or a desktop workflow.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One tab bar instead of a folder of chat apps

Every hosted AI assistant lives on the web, and every one of them asks you to keep a tab open. AI Hub is a Kotlin Android application that gathers those web destinations into a single tabbed interface so you can move between assistants the way you move between browser tabs, without leaving one app and losing your place in another.

The scope is deliberately a shell rather than a client. The repository description calls it an all-in-one app that aggregates multiple AI assistants in a single tabbed interface, and the feature list spells out the parts: webview integration, dynamic colors with an automatic dark and light mode, and persistent session management. There is no API key management, no model selection and no local inference here.

Who it is for is fairly specific. The people who benefit are Android users who regularly switch between a coding assistant and a general chat assistant, and who would rather keep a single history of tabs than juggle a browser and a home screen shortcut. The app is distributed as an APK through F-Droid, OpenAPK, Obtainium and GitHub releases, so it is aimed at users willing to sideload, and the F-Droid package identifier is com.foss.aihub.

The trade-off in the design is that the assistant is only as good as its web interface. AI Hub does not add model access, it adds a container.

Tabs that keep their state, and services you can switch off

The tabbed browsing feature is the core of the product, and the README describes it as persistent sessions with background support. In practice that means switching to another assistant and back does not reload the page, and the conversation you were in the middle of is still there. The same idea appears in the persistent conversations feature, which is described as conversations that survive app restarts.

The second mechanism is customization of the tab list itself. The README states that you can reorder, hide or disable any AI assistant, which means the set of tabs is a user preference rather than a fixed list baked into the binary. For someone who uses two assistants daily and has no interest in the other six, that is a meaningful control, and it also keeps the app from showing services that have no place in a particular workflow.

Two smaller features are worth noting because they hint at how the webview layer is tuned. Adjustable font size lets you read long answers on a small screen, which matters for text-heavy chat output, and the tracking and connection blocking described later works at the domain level across the whole app rather than per tab. The README also advertises dynamic colors and automatic dark and light mode, which is the dynamic color behaviour the README lists, along with a stated goal of being lightweight and optimized for smooth scrolling.

The service catalogue is data, not code

The number of assistants in the app is not something you learn by reading the Kotlin source. The README carries a badge whose image is generated by querying a JSON file in a different repository, and the query it sends looks for the length of an ai_services array.

html
  <a href="https://silentcoderhere.github.io/aihub-config-data/">

The configuration repository is published separately, at a GitHub Pages address, which suggests the service list is fetched as data rather than compiled into the application. The practical consequence is a clean split of concerns: adding a service, or adjusting the list, is a data change in aihub-config-data, and it does not necessarily require a new version of the Android app.

That design has a second effect worth considering. The list of what the app can open is defined outside the app, so a stale or wrong entry there changes behaviour for every user who updates their list, and the app code has no say in it. The README does not document how the app behaves when the remote list is unreachable, whether it falls back to a bundled copy or simply shows fewer tabs. If the service list is important to your workflow, that fallback is worth checking on a device with no network before you rely on it.

Ad blocking by hosts list, kept fresh by a GitHub Action

The privacy story has two parts, and they are different in kind. The first is data collection, and the README is unusually direct about it: AI Hub is fully open-source and collects absolutely nothing, with no analytics, no telemetry, no crash reporters and no tracking, and it never asks for or stores a name, an email or any identifying data. The claim is backed by the source being public, so the README says you can audit it or build it yourself.

The second part is active blocking. By default the app blocks ads and trackers using the StevenBlack hosts list, and the domain list is parsed and extracted automatically through a GitHub Action so it stays current with minimal overhead. That is a sensible way to keep a blocklist fresh without shipping app updates.

The limitation is that a hosts list is a blunt instrument applied to every tab. It is a domain list, so any service that depends on a domain the list covers can break in a way that looks like a bug in the app, and the README does not document a per-service allow or exception mechanism, nor does it describe what the user sees when a page fails to load because of it. The disclaimer also notes that the app is not affiliated with, endorsed by, or connected to any AI company whose services are reachable inside it, so a service that misbehaves is not the app's to fix.

Getting the APK, and what the repository does not tell you

There is no build command in the README, so installation is a download rather than a compile. The README links a set of sources, and the first one is the F-Droid listing under the package identifier com.foss.aihub.

html
  <a href="https://f-droid.org/packages/com.foss.aihub">

The other routes are an OpenAPK listing, the GitHub releases page, and an Obtainium entry that points at the GitHub repository so you can track the release channel from the app. The Obtainium link is worth a look if you want to follow releases automatically, and it encodes a preference for the newest release with a fallback to older ones.

The repository itself is a Gradle project with build.gradle.kts, settings.gradle.kts, gradle.properties, a gradle directory and the gradlew wrapper script, alongside an app/ directory and a fastlane/ directory holding release metadata and store images. The README does not give the commands to assemble a debug or release build, and it does not describe how the signing configuration works, so building from source means reading the Gradle files yourself. The fastlane directory and the translation platform referenced in the README (Weblate) suggest a release process that handles store metadata and localization, but the steps are not spelled out for contributors.

One maintainer, a public roadmap of services, and a copyleft licence

AI Hub is released under the GNU General Public License v3.0, and the README points at the full licence file. The practical consequence for anyone who modifies the app and distributes the result is the standard copyleft requirement: the source of the distributed work has to be made available under the same licence. Read the LICENSE file for the actual terms rather than relying on a summary, and note that the terms apply to a distributed build of the app, not to your conversations inside it.

The maintenance picture is mixed in a specific way. The repository is not archived, and the last push to main was on 2026-10-19, so the code is moving. The releases tell the same story with dates: v3.0.1 on 2026-09-06, v3.0.0 on 2026-06-26 and v2.3.1 on 2026-05-01, so the project has shipped three versions in a few months. The README describes the project as independent, open-source, developed and maintained by an individual with community help, and the credits name a single original idea and a single icon designer.

A single-maintainer project is a real consideration for anyone planning to depend on it, since the bus factor of a personal Android app is one person, and the same applies to the service list in the companion configuration repository. The upside of the arrangement is visibility: the whole thing is auditable, which is what the privacy claims in the README depend on.

When a webview aggregator is the wrong tool

The limitations come from the architecture rather than from the code quality. Because each tab is a webview running the service's own site, the app inherits that site's constraints: it needs a network connection, it depends on the service supporting the way the app loads it, and logins stay with the service rather than with the app. Anything a service changes about its web interface, such as a redesign that breaks embedded viewing, shows up in the app as a problem the app cannot fix.

The privacy boundary is the same shape. The zero-collection claim covers AI Hub itself, its analytics and its telemetry. What the services do with the conversations you have inside their own web pages sits outside the app and outside the audit, and the README says outright that the project has no relationship with any of the AI providers. If your requirement is that prompt text never reaches a third party, an aggregator cannot satisfy it, because the aggregator is the third party path.

There is also a hard limit on what you can automate. The app gives you tabs, ordering and visibility, and its own documented customization. It does not document an API, a command line interface or a headless mode, so using AI Hub as a backend for a script is out of scope. And for a developer who wants a model in a terminal, a native client with direct API access is a different and better tool, because a tabbed webview adds a layer without removing the need for an account.

Editorial conclusion

AI Hub suits Android users who juggle several AI assistants and want their logins and conversations in one place, and it does not suit teams that need offline models, direct API access or a desktop workflow. Before installing, check that the services you use appear in the aihub-config-data list that feeds the app, and read the GPL-3.0 LICENSE file if you intend to modify or redistribute the APK, since the newest release is v3.0.1 from 2026-09-06 while the last push to main was on 2026-10-19.

Frequently asked questions

How do I install AI Hub on Android?

The README points to four download routes: the F-Droid listing for package com.foss.aihub, an OpenAPK listing, the GitHub releases page and an Obtainium entry for tracking releases. The repository also contains a Gradle wrapper and build files, but the README does not document build commands.

Does AI Hub collect any data about its users?

The README states that AI Hub collects absolutely nothing, with no analytics, telemetry, crash reporters or tracking, and never asks for or stores a name, an email or other identifying data. It points out that the source is public so the claim can be audited.

How does AI Hub block ads and trackers?

By default it blocks ads and trackers using the StevenBlack hosts list, and the domain list is parsed and extracted automatically by a GitHub Action so it stays current. The README does not describe a way to allow a specific blocked domain for one service.

How are the AI services in AI Hub configured?

The service list comes from a JSON file in a separate configuration repository, aihub-config-data, and the README badge queries the length of its ai_services array. The app repository itself holds the Kotlin code, and the README does not say what the app does when that remote list cannot be fetched.

What licence is AI Hub released under?

It is released under the GNU General Public License v3.0, with the full text in the LICENSE file at the repository root. The README also notes the project is not affiliated with or endorsed by any of the AI companies whose services it can open.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. SilentCoderHere/aihub on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/silentcoderhere-aihub.svg)](https://hysenlabs.com/projects/silentcoderhere-aihub)

Was this useful?