Model or dataset
Mobile-Artificial-Intelligence/maid avatar
Mobile-Artificial-Intelligence/maid

Maid: an Android front end for llama.cpp and remote LLM APIs

Maid is a free and open source application for interfacing with llama.cpp models locally, and with Anthropic, DeepSeek, Ollama, Mistral and OpenAI models remotely.

2,707 stars291 forksTypeScriptMIT

At a glance

What is it?
Maid is a React Native Android app that runs GGUF models on-device through llama.cpp and also connects to hosted providers with your own API key. The trade-off is a mobile-only build and a thin manual.
Who is it for?
Adopt Maid if you want one Android app that covers both on-device GGUF inference through llama.cpp and hosted providers such as Anthropic or OpenAI under a single MIT licence. Do not adopt it if you need iOS, a desktop client, or a documented rollback path for the optional Supabase sync, because the README covers none of those.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 16 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

The gap Maid fills: one Android client for local and hosted models

Most chat clients pick a side. They either talk to a hosted API or they wrap a local runtime, and switching between the two means switching apps and losing the conversation. Maid is built around the opposite assumption. The README describes it as an application for interfacing with llama.cpp models locally and with API Route, Anthropic, DaoXE, DeepSeek, Mistral, Novita, Ollama, llmman, OrcaRouter and OpenAI models remotely. That list mixes cloud vendors with Ollama and llmman, which are typically self-hosted, so the app is not strictly a cloud client or a local one.

The audience follows from that. Maid targets Android users who want to carry a GGUF model on the device and fall back to a hosted provider when the local model is not good enough for a task, or the reverse. It is not aimed at teams serving inference to many users, and it is not a desktop tool. The repository is TypeScript, built with React Native and Expo, and the package name in the Google Play link is com.danemadsen.maid.

How Maid routes a request: llama.cpp on-device versus provider SDKs

The dependency list in package.json shows the architecture more clearly than the README does. Maid ships @anthropic-ai/sdk and @mistralai/mistralai as direct dependencies, which means remote providers are reached through vendor SDKs rather than a generic HTTP shim. Local inference goes through llama.cpp against GGUF files, and the README states that local inference requires no internet connection.

The app also carries models.json at the repository root. That file backs the one-tap download feature: the README says you can browse and download curated Hugging Face models such as Qwen, Phi, LFM and TinyLlama from inside the app. So there are two paths to a model. You pick one from the curated list, or you load any GGUF file from local storage. Generation parameters are set per session: temperature, top-p, top-k and context length are named in the feature list, along with a global system prompt for the assistant persona.

Conversation state is local by default. Chats can be created, renamed, deleted, exported and imported as JSON. Account sync is described as optional and uses Supabase, with a supabase/ directory present in the repository. The privacy policy and terms are separate files at the root, which is worth noting because sync is the one feature that moves chat history off the device.

Installing Maid on Android and running a first local model

The README does not give an install command for end users. It points to GitHub releases and to Google Play, so the normal path is to install the published APK or the Play listing rather than build from source. Building is documented for people who want to compile the app themselves.

Start by cloning the repository and installing dependencies with Yarn, exactly as the README specifies:

bash
git clone https://github.com/Mobile-Artificial-Intelligence/maid.git
yarn install

To produce a release APK, the README gives a single script. The output lands in the release directory under the Android app module:

bash
yarn build-android

The README states that the resulting APK is located in android/app/build/outputs/apk/release. There are also build-android-debug and build-android-bundle scripts in package.json, and a prebuild script that runs expo prebuild --platform android --clean. If you are contributing rather than installing, the test suite runs with yarn test, which maps to jest --ci --detectOpenHandles --runInBand --forceExit.

Once the app is open, the first real use is to pick a model. Either download one from the curated Hugging Face list, or load a GGUF file you already have on the device. Then open a session and adjust temperature, top-p, top-k and context length for that session. Context length is the setting to watch first, because it is the one most likely to exceed what a phone can hold in memory.

Where Maid stops being the right tool

The clearest limitation is platform. The README says Maid is built using React Native and is available for Android. There is an ios script in package.json, but the README makes no claim of an iOS release, and the manual is distributed as a PDF from the releases page rather than as browsable documentation. If you need iOS or a desktop client, this is the wrong project regardless of how well the local inference works.

The second constraint is memory. GGUF models are loaded into the device's RAM, and the README does not publish a device compatibility list or minimum memory requirement. A model that runs comfortably on a recent flagship may fail to load on a mid-range phone, and the app's own documentation does not tell you where that line falls. You find out by trying, which is a poor way to plan an adoption.

Third, sync is optional but the README does not document rollback. If you register and push chat history to Supabase, there is no described procedure for removing that data or reverting to a purely local state. The privacy policy file exists, but the README itself is silent on the mechanics. Treat the account feature as one-way until you have read that policy. Finally, the README carries an explicit disclaimer that Maid is distributed under the MIT licence without warranty and is not affiliated with Hugging Face, Meta, Mistral AI, OpenAI, Google, Microsoft or any other company providing a compatible model.

Maid versus a plain Ollama client on the same phone

The nearest alternative for many users is a client that talks only to a remote or self-hosted Ollama endpoint. The difference is where the weights live. An Ollama client assumes a server somewhere else holds the model and does the inference, so the phone is a thin terminal and the quality ceiling is set by whatever machine runs Ollama. Maid can do that too, since Ollama is in its provider list, but it also runs GGUF models directly through llama.cpp with no server at all.

That changes the failure modes rather than removing them. A server-backed client fails when the network or the host is down, and it needs someone to keep that host running. Maid's local path fails when the model does not fit in memory, and it drains battery during generation because the phone is doing the compute. The upside is that a local session works with no internet, which the README lists as a feature of local inference. The downside is that you are now responsible for picking a model small enough for your hardware, and Maid gives you a curated list rather than a compatibility guarantee.

Licence, maintenance and what an upgrade costs

Maid is MIT licensed, which permits commercial use, modification and redistribution provided the licence and copyright notice are retained. The disclaimer states the software comes without warranty of any kind. That is a permissive arrangement, but it also means nobody is contractually on the hook if a model misbehaves. The signing section of the README publishes MD5, SHA-1 and SHA-256 fingerprints for both the signing key and the upload key. Those fingerprints exist so you can verify that an APK came from the same key as previous releases, and they are the practical way to check an unofficial mirror.

The repository has not been archived, and the last push was on 2026-09-14, three days before this writing. The most recent tagged release is v3.0.0 from 2026-03-10, following v2.0.7 in April 2025 and v2.0.6 a week earlier. The gap between the 2.0.7 tag and the 3.0.0 tag is roughly eleven months, so the project's release cadence is not fast. Upgrade cost sits mostly on the model side rather than the app side: changing the GGUF file means re-downloading weights, and the README does not describe any migration path for chat history between versions beyond the JSON export and import feature.

Editorial conclusion

Adopt Maid if you want one Android app that covers both on-device GGUF inference through llama.cpp and hosted providers such as Anthropic or OpenAI under a single MIT licence. Do not adopt it if you need iOS, a desktop client, or a documented rollback path for the optional Supabase sync, because the README covers none of those. Before committing, verify the release APK signature against the SHA-256 fingerprint published in the README, and confirm that the GGUF model you intend to run fits the memory of your specific device.

Frequently asked questions

Where is the AI located on my phone when I use Maid?

If you use local inference, the model file lives on the device as a GGUF file and llama.cpp runs it there, which is why the README says local inference needs no internet. If you use a remote provider, the model stays on that provider's servers and Maid only sends the conversation.

Which are the top AI apps for Android?

No ranking is published for AI apps, so there is no basis for a list here. Maid itself is available for Android through GitHub releases and Google Play under the package name com.danemadsen.maid, and it is MIT licensed with no telemetry and no ads according to the README.

How do I use artificial intelligence on a mobile device with Maid?

Install the app from GitHub releases or Google Play, then either download a curated Hugging Face model from inside the app or load a GGUF file from local storage. After that, open a session and tune temperature, top-p, top-k and context length for that session.

Official sources

  1. Issues
  2. License: MIT
  3. Mobile-Artificial-Intelligence/maid on GitHub
  4. README
  5. Releases
For maintainers

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/mobile-artificial-intelligence-maid.svg)](https://hysenlabs.com/projects/mobile-artificial-intelligence-maid)
Community notes

Community notes