Open Source
Open Source

2,007 stars on your phone, but no free commercial use

omnimind-ai/OmniBot is an on-device AI agent that runs directly on Android handsets, built with native Kotlin and Flutter plus a React and TypeScript WebUI, and aimed at a full loop of understanding, deciding, acting and reporting back rather than being another chat shell. A 2026-09-23 GitHub snapshot shows 2,007 stars, 144 forks, Dart as the primary language, created 2026-03-18, last pushed 2026-09-23 and 27 open issues, figures that are a same-day cross-section and change daily. Its capabilities cover Skills, an Alpine environment that runs Linux on the phone, a browser, MCP and Android system-level tools, plus scheduled tasks, alarms, calendar and audio control, short and long-term memory, and file, workspace, browser and terminal access. Three technical highlights stand out: on-device unity, where the app runs on the phone without a computer as host; a real command-line workspace from Alpine, the terminal and ReTerminal; and the Remote Codex bridge, which after running the bridge on a computer lets the phone scan a code to borrow that machine's Codex execution. Onboarding means configuring an AI provider and scene models in settings, where Memory embedding strictly requires an embedding model and other scenes are best served by multimodal or vision models, with a local service defaulting to port 8899. The licence section carries the most weight: it uses segmented dual licensing, under which AGPL v3 is free only for non-commercial or personal, educational and research use and explicitly bars use by any organization, while commercial use, or avoiding AGPL's source-disclosure duty, requires signing a commercial licence first. The article fixes three conclusions: it cannot be called simply AGPL open source, it cannot be described as free for commercial use, and organizations are outside the free scope even for research. It also notes that GitHub's licence field reports NOASSERTION and cannot be trusted, so the findings come from the LICENSE file itself, and it draws a clear boundary with the site's earlier phone-harness piece, since that one is an iPhone driven by a Mac harness while this is Android-native on-device, differing in platform, architecture and licence.

Published September 23, 20269 min read
<!-- omnibot-resource | open-source | 2,007 stars on your phone, but no free commercial use -->

Last month this site tore down a phone agent on the iPhone side: phone-harness, where Claude Code on a Mac drives a real iPhone and the Mac is the whole transport layer. This time we take the other side, where no computer is the host because the agent lives inside your Android phone. The project is omnimind-ai/OmniBot. Its README calls itself OpenOmniBot in several places while the repository is named OmniBot, an inconsistency we report as-is.

Its one-line definition: an on-device AI agent running directly on Android, combining chat, agent tools, a local workspace, and system integration in one app. But the first thing to read is not the capability list. It is the license, which is what most secondhand summaries get wrong.

Repo Facts: 2,007 Stars, and It Was Still Committing That Day

Every number below comes from the GitHub API, snapshot taken 2026-09-23. Stars, forks, and issue counts move daily, so read this as a same-day cross-section rather than a standing conclusion, and treat no star count as proof of quality.

ItemMeasured value (GitHub API snapshot, 2026-09-23)
Repositoryomnimind-ai/OmniBot (README calls itself OpenOmniBot in several places)
Stars2,007
Forks144
Primary languageDart
Created2026-03-18
Last push2026-09-23
Open issues27
GitHub API license fieldNOASSERTION (unreliable, see the license section)
Websitehttps://omnibot.omnimind.com.cn
Sibling projectomnimind-ai/ViaVera (iOS and macOS)

The primary language reads Dart because the Flutter UI dominates by line count; the stack is really Kotlin, Flutter, and a React and TypeScript WebUI.

What It Actually Is: An On-Device Agent, Not Another Chat Box

OmniBot calls itself an on-device AI agent, and the argument sits in those two words. Its difference from a cloud SaaS agent is that the execution loop, not just the inference, happens on the phone. It has its own workspace, terminal, and file permissions instead of forwarding your instructions to some server. Not a consumer app, not a cloud SaaS, not an iOS solution (that is sibling project ViaVera's domain), it is a local agent runtime that ships execution capability inside an Android phone.

The README draws a line against ordinary AI chat: what it cares about is not a single round of question and answer, but the full loop from understanding to decision to execution to feedback. OmniBot claims to absorb execution and feedback too, not just understanding and decision. That makes it necessarily a permission-heavy application, since tapping, screen reading, and system control require accessibility and system-level permissions - the inherent cost of the approach, which we return to below.

Core Capabilities: Four Groups

An extensible tool ecosystem. Skills, an Alpine environment, browser access, MCP, and Android system-level tools. The heaviest item is the Alpine environment: not a simulated terminal pane, but genuine Alpine Linux running on the phone. With Skills and MCP as extension channels, the toolkit can be injected from outside instead of hardcoded at build time.

System-level abilities. Scheduled tasks, alarms, calendar creation, query and update, and audio playback control. The README is precise about division of labor: scheduled tasks execute subagent flows, while alarms are reminder-only. Hand a complete task to a subagent and it executes like a full agent.

A memory system. Short-term and long-term memory with embedding support. Long-term memory is embedded into local storage, the precondition for keeping data on device.

Productivity tools. Read and write files, browse the workspace, use the browser, and access the terminal - not phone-app abilities but something close to a miniature workstation: a filesystem, a working directory, a browser, and a shell.

Three Technical Highlights

One: on-device integration, so the phone needs no computer as host. This is the sharpest divide from most phone automation schemes, which are in substance "a computer runs the agent, the phone is the peripheral" - phone-harness being the archetype. OmniBot inverts that: orchestration, system abilities, MCP, and foreground services all execute on the phone. The upside is needing neither the same LAN nor a powered-on computer; the downside is that the phone's performance, battery, and background survival policy become the bottlenecks.

Two: Alpine plus terminal plus ReTerminal gives the phone a real command-line workspace. The architecture listing includes a ReTerminal/core/ module for embedded terminal components, acknowledging RohitKushvaha01/ReTerminal upstream. The point is not the novelty of typing commands on a phone; it is that the agent's work surface and the human's work surface are unified. The agent works in the same filesystem you can open at any moment. Auditability is the most solid advantage a local agent holds over a cloud one.

Three: the Remote Codex bridge, which pipes a computer's Codex into the phone. On a computer where the Codex CLI is installed and logged in, start the bridge.

bash
npx @thuocean/codex-bridge

Choose the LAN address and token mode in the terminal UI, then scan the QR code from the app's Codex settings. Nothing reruns Codex on the phone; the bridge attaches the computer's existing execution capability to the phone as a front end.

The bridge runs over the LAN and authenticates through a token mode, fitting my-computer-plus-my-phone on one trusted network, not the public internet. Mapping it outward hangs a computer's code execution capability on an address others can reach, and it is not worth it.

Getting It Running: From Settings to Skills

  1. From the left sidebar's settings page, configure AI capabilities and the provider, then the scenario models.
  2. Memory embedding must use an embedding model, with no substitute; other scenarios prefer multimodal or vision-capable models.
  3. The Alpine environment usually initializes automatically at startup and is manageable from settings; no manual Linux install.
  4. Skills: send a skills repo link to the assistant and let it install. The README recommends https://github.com/OpenMinis/MinisSkills.

Two more details. The app exposes a local service under Settings, Local Service, giving an address and a Token, with a default port of 8899 (use the address the app actually shows); WebUI development points VITE_WEBCHAT_PROXY_TARGET at the device's LAN address. The module layout reads fastest straight from the official listing:

text
OpenOmniBot/
├── app/                        # Android host app: entry point, agent orchestration, system abilities, MCP, services
├── ui/                         # Flutter Android UI: chat, settings, tasks, and memory
├── webchat/                    # React + TypeScript WebUI; Vite builds the static bundle packaged by Android
├── baselib/                    # Shared core libraries: database, storage, networking, model config, permissions
├── assists/                    # Shared task lifecycle and chat/model coordination
├── uikit/                      # Native overlay UI: floating ball, overlay panels, half-screen surfaces
└── ReTerminal/core/            # Embedded terminal experience modules

To build it you need Flutter SDK 3.47.2+, JDK 17+, Node.js 20.19+ or 22.12+, and pnpm 10.28.0 (the last two for the WebUI). The main build and install command is:

bash
./gradlew :app:installDevelopStandardDebug -Ptarget=lib/main_standard.dart

The version bar is not low: with Flutter 3.47 and JDK 17, an unaligned toolchain stalls at flutter pub get. This is held to an engineering project's standard, not download-an-APK-and-play.

The License Red Line: AGPL v3 Covers Non-Commercial Only, and Commercial Use Requires a Signed License

OmniBot is not a "just use it" open-source project. The repository-root LICENSE (592 characters) states that the project uses Segmented Dual Licensing.

The open-source side is GNU AGPL v3, free only under specific conditions: the use case is non-commercial, or the use is for personal, educational, or research purposes, and in that case use by any organization is prohibited. An organization doing research does not qualify, and inside AGPL v3 you still carry the source-code obligation.

The commercial side is a Commercial License, signed in advance. Two triggers apply, either sufficient: use for commercial purposes (any service or product that directly or indirectly generates commercial benefit), or a wish to avoid the AGPL v3 source-code disclosure obligation. So a company wanting internal use without publishing its own modifications still needs a license. The application entry point is https://omnimind.com.cn, and the maintainers reserve the right to update the licensing policy through official channels.

A decision table makes it clearer:

Your use caseInside the free scope?What you need to do
Personal use, non-commercialYesComply with AGPL v3 obligations
Personal study, teaching, researchYesComply with AGPL v3 obligations
Internal use by an organization, even for researchNo (use by any organization is prohibited)Sign a commercial license
A product or service generating commercial benefit, directly or indirectlyNoSign a commercial license
Keeping your changes closed to avoid AGPL disclosureNoSign a commercial license

Three conclusions matter. First, do not compress it into "AGPL open-source software" and stop there; everything outside the AGPL preconditions belongs to the commercial license. Second, do not call it free for commercial use, since a signed license is a direct requirement of the text. Third, an organization is outside the free scope even when doing research.

One detail trips up automated compliance checks: the GitHub API's license field is NOASSERTION, and that value is unreliable, since the recognizer could not map this license onto an SPDX identifier. Any tool screening licenses from API fields fails here; the LICENSE text is the authority.

Our Take: The Phone Turns From Client Into Execution Host

OmniBot's claim compresses into one sentence: it turns the phone from a client into an execution host, and the value lies in keeping data and execution local. Files, workspace, memory embeddings, and terminal operations stay on one device, without handing data to a cloud service just to use an agent. That is the one irreplaceable argument for on-device.

The costs are equally clear. The first is highly concentrated permissions: reading and writing files, calling a terminal, controlling calendar and audio, and operating the interface all demand substantial system permissions, including accessibility and system-level abilities - inherent to any on-device design. The question is whether you will hand those permissions to an application, and if uncertain, start on a spare phone. The second is that running an agent on a phone has not been validated at scale for stability: Android background survival policies, vendor battery management, and the treatment of foreground services all affect whether long tasks finish. 2,007 stars and 27 open issues show an active project, not one proven across the device fleet. Test it on a secondary device; do not drop it into production.

The division of labor with our earlier article matters: our phone-harness teardown of 2026-08-22 covers an iPhone driven by a Mac harness, with the computer as host. This article covers a native on-device Android agent, with the phone as host. Different platform, architecture, and licensing; read them side by side.

DimensionOmniBotphone-harness
Target platformAndroidiPhone (Android via adb also supported)
HostThe phone itself, fully on-deviceMac, the entire transport layer
Key dependenciesAlpine environment, terminal, MCP, on-device permissionsiPhone Mirroring, OCR, CGEvent / adb
LicensingSegmented dual licensing (AGPL v3 non-commercial only, commercial use requires a signed license)MIT
Snapshot date2026-09-232026-08-22

To place this class of capability against its peers, compare our five-way comparison of mobile GUI agents. For movement upstream in models and platforms, Alibaba's Qwen Intelligence release covers another thread. And to turn an Android phone into an agent host yourself, walk through our SOP for running an agent on Android.

Closing thought: OmniBot proves that a phone can serve as an agent's host. It does not prove that phone agents are mature enough to use casually. The first is a capability claim, the second an engineering claim, and between them sits your own acceptance testing.

FAQ

Q1: Is OmniBot free and open source? Can I use it commercially? A1: It uses segmented dual licensing. The free scope covers non-commercial use or personal, educational, and research purposes only, and use by any organization is prohibited. Commercial use, or avoiding the AGPL v3 disclosure obligation, requires a signed license in advance (omnimind.com.cn).

Q2: Can I trust the license label on the GitHub page? A2: No. The API's license field is NOASSERTION, because this license is not in the recognizer's identifier set. Use the repository-root LICENSE (592 characters).

Q3: Is this the same kind of thing as phone-harness? A3: No. phone-harness has an iPhone driven by a harness on a Mac, with the computer as host; OmniBot is a native on-device Android agent running on the phone. Platform, architecture, and licensing all differ.

Q4: Is phone compute enough, and why is the Remote Codex bridge needed? A4: They are complementary. On-device handles orchestration, the workspace, the terminal, and system abilities; the Codex bridge attaches a Codex CLI already installed and logged in on a computer, over the LAN with token mode and a QR code. Keep it on the trusted LAN.

Q5: For a local setup, where does it usually get stuck? A5: Two places. Model configuration, where Memory embedding must use an embedding model while other scenarios prefer multimodal or vision models. And the environment: Flutter SDK 3.47.2+, JDK 17+, plus Node 20.19+ or 22.12+ and pnpm 10.28.0.


Sources

Based on the README and LICENSE texts as of 2026-09-23; star counts are a same-day API snapshot and change daily.

This article is AI-assisted and human-edited. Last updated: 2026-09-23

FAQ

Is OmniBot free and open source? Can I use it commercially?
It uses **segmented dual licensing**. The free scope covers non-commercial use or personal, educational, and research purposes only, and use by any organization is prohibited. Commercial use, or avoiding the AGPL v3 disclosure obligation, requires a signed license in advance (omnimind.com.cn).
Can I trust the license label on the GitHub page?
No. The API's license field is NOASSERTION, because this license is not in the recognizer's identifier set. Use the repository-root `LICENSE` (592 characters).
Is this the same kind of thing as phone-harness?
No. phone-harness has an iPhone driven by a harness on a Mac, with the computer as host; OmniBot is a native on-device Android agent running on the phone. Platform, architecture, and licensing all differ.
Is phone compute enough, and why is the Remote Codex bridge needed?
They are complementary. On-device handles orchestration, the workspace, the terminal, and system abilities; the Codex bridge attaches a Codex CLI already installed and logged in on a computer, over the LAN with token mode and a QR code. Keep it on the trusted LAN.
For a local setup, where does it usually get stuck?
Two places. Model configuration, where `Memory embedding` must use an embedding model while other scenarios prefer multimodal or vision models. And the environment: Flutter SDK 3.47.2+, JDK 17+, plus Node 20.19+ or 22.12+ and pnpm 10.28.0.

Related

Open Source

Skip the agent loop: 12,078 stars for an open AI workspace

krillinai/OpenCreator is an open-source AI creation workbench and Skills collection maintained by the krillinai team (formerly KrillinAI), released under the permissive Apache-2.0 license and usable commercially and self-hosted. As of a 2026-09-22 GitHub snapshot it shows 12,078 stars, 1,222 forks, TypeScript as primary language, created 2024-12-17, last pushed 2026-09-21 and 31 open issues, figures that are a same-day snapshot rather than a lasting level. Its defining design choice is local-first: project data, attachments and logs stay on your machine by default (SQLite and the file system, with Codex sessions and config in CODEX_HOME), the Daemon listens only on 127.0.0.1 with Bearer tokens required for every endpoint except health checks, HTML preview disables scripts and navigation by default, and the desktop package enables ASAR integrity checks and Cookie encryption. The pivotal architectural judgment is that it does not rebuild the Agent loop but uses Codex CLI directly as the execution engine, wrapping it with three layers, a local Runtime, a visual workbench and a desktop host, so the agent loop, sessions, reasoning, tool calls, Skills and MCP all come from Codex; the upside is not maintaining a second engine, inheriting Codex's capabilities and using Codex-native configuration for Skills and MCP, while the cost is a hard dependency on the Codex ecosystem, a capability ceiling set by Codex, and available models depending on your local Codex and AI service settings. The README's prose says ten creation tools while its own table lists twelve rows, ten available and two in development (Auto Clips and Digital Avatar), plus seven built-in video-production Skills (KrillinAI CLI, Subtitle, TTS, Landscape and Portrait Render, Cover, Pipeline Plan). It is worth stating that a Skill in the repository is not auto-installed nor are external services bundled, and that it is not an open-source replacement for JianYing since its core is Agent plus creation tools plus Skill orchestration without a multi-track timeline editor.

Sep 22, 20268 min read
Open Source

French-to-English Only, 1,519 Stars: Why Hibiki Matters in 2026

Kyutai's kyutai-labs/hibiki is an open streaming speech translation model (1,519 stars, 119 forks, primary language Rust, created 2025-02-04, last push 2026-09-09, 11 open issues, per the 2026-09-21 GitHub API) that reuses Moshi's multistream architecture. It is decoder-only and models source and target speech jointly, emitting text and audio tokens at a constant 12.5Hz; the 2B variant uses 16 RVQ channels per stream and the 1B uses 8 for on-device use, trained on sequences up to 120 seconds with a 40-second inference context, described in arXiv 2502.03382. Its real highlight is training: word-aligned same-speaker data does not exist at scale, so the team uses contextual alignment, a weakly supervised method leveraging the off-the-shelf MADLAD translation system for word matching, under the rule that a word appears in the target only once predictable from the source, applied by inserting silences or synthesizing with a voice-controlled, alignment-aware TTS. Inference relies only on simple temperature sampling and is therefore compatible with batching, while voice fidelity is tuned through the CFG coefficient, default 1 and typically 3, with excessive values hurting translation. Limits are stated plainly: French to English only today, weights under CC-BY 4.0 requiring attribution, code split MIT for Python and the web client plus Apache-2.0 for the Rust backend, and a core implementation shared with Moshi so both repositories must be read.

Sep 21, 20268 min read
Open Source

MiniMax Opens Its Deck: mcode, the Terminal Agent You Can Audit

MiniMax open-sourced mcode, its terminal coding agent: repository MiniMax-AI/minimax-code (1,443 stars, 159 forks, TypeScript, MIT, created 2026-06-01, last push 2026-09-20, per the 2026-09-20 GitHub API), pitched as continuously unlocking model capability through excellent harness design. The core claim: the coding-agent battlefield has moved from the model to the harness, where permissions, sandboxing and auditability decide whether enterprises dare to use it. Three entry points (interactive TUI, headless mcode exec, ACP), BYOK to OpenAI and Anthropic compatible APIs, plus MCP, skills, parallel subagents and AGENTS.md. The vendor reports a 76.7 percent FrontierHarness pass rate at a 4 minute 33 second median. A cold look: 1,443 stars is still early and plugin-ecosystem depth is unproven, but for regulated industries auditability can outweigh a few points of pass rate.

Sep 20, 20268 min read