gitwtfhub

wtf is omni?

stevancarlon/omni — explained in plain English

Analysis updated 2026-05-18

8KotlinAudience · developerComplexity · 4/5LicenseSetup · hard

TL;DR

An experimental Android app that sees your screen and taps, types, and navigates on your behalf using a self-hosted backend and your own AI provider key.

Mindmap

mindmap
  root((Omni))
    What it does
      Reads phone screen
      Taps and types for you
      Uses Accessibility API
    Tech stack
      Kotlin Android app
      Elixir Phoenix backend
      PostgreSQL
    Use cases
      Automate phone tasks
      Self-host an AI agent
      Voice-driven commands
    Audience
      Developers
      AI agent tinkerers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Self-host an Android agent that can operate apps on your phone through simple commands.

REASON 2

Experiment with computer-use style automation on Android using your own AI provider key.

REASON 3

Build voice or text driven workflows that navigate other apps via the Accessibility service.

REASON 4

Learn how an Elixir backend can coordinate an on-device AI agent over a local connection.

What's in the stack?

KotlinElixirPhoenixPostgreSQLDocker

How it stacks up

stevancarlon/omniandroid-hacker/wechatchatroomhelperotonielpv/sonylivemonitor
Stars888
LanguageKotlinKotlinKotlin
Last pushed2019-12-09
MaintenanceDormant
Setup difficultyhardhardhard
Complexity4/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires Android Studio, Elixir/Erlang, Docker, USB debugging, and an AI provider API key all configured together.

Use freely, including commercial use, but you cannot use the project's name or logo to imply your build is officially made or endorsed.

Wtf does this do

Omni is an experimental Android app that can look at your phone's screen and control it for you, tapping, typing, swiping, opening apps, and adjusting to whatever appears on screen as it works toward a goal you give it. It does this using Android's built-in Accessibility API, the same system that lets screen readers and other assistive tools interact with apps on your behalf. The project has two parts. One is a native Android app written in Kotlin, and the other is a self-hostable backend server written in Elixir using the Phoenix framework. In this community version, you run your own backend and supply your own AI provider key rather than relying on the project's own hosted service, so there is no need for Google sign-in, Google Play, Aptoide, Stripe, or any store subscription. To set it up, you need an Android 10 or newer phone or emulator with USB debugging turned on, Android Studio with a specific SDK and JDK version, Elixir and Erlang, Docker for running a PostgreSQL database, and an API key from one supported AI provider such as Gemini, Groq, OpenAI, or Anthropic. After cloning the project, you configure your chosen API key in an environment file, start the backend with Docker and Elixir's build tools, then build and install the Android app onto your connected phone, forwarding the backend's port over USB. Once installed, you open the app, grant it microphone and Accessibility permissions, and can then give it simple spoken or typed commands to try. The README is direct about safety limits. Because Omni can read your screen and control other apps, it warns against using it to automate passwords, banking, payments, or other sensitive login flows, and notes that its built in safeguard for sensitive apps is a helper, not a full security guarantee. It is described as alpha software, not distributed through Google Play, with a separate privacy document worth reading before using it with real data. Omni is released under the Apache License 2.0, which allows free use including commercial use, though the project's name and logo cannot be used to suggest an unofficial build is made or endorsed by the original project.

Yoink these prompts

Prompt 1
Walk me through setting up the Omni backend locally with Docker and a Gemini API key.
Prompt 2
Explain how Omni uses Android's Accessibility API to control the phone screen.
Prompt 3
Show me how to build and install the Omni community Android app using Gradle.
Prompt 4
What are the safety limits mentioned in Omni's README around passwords and banking apps?

Frequently asked questions

wtf is omni?

An experimental Android app that sees your screen and taps, types, and navigates on your behalf using a self-hosted backend and your own AI provider key.

What language is omni written in?

Mainly Kotlin. The stack also includes Kotlin, Elixir, Phoenix.

What license does omni use?

Use freely, including commercial use, but you cannot use the project's name or logo to imply your build is officially made or endorsed.

How hard is omni to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is omni for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.