A client for omp, on machines you own.

ompanion drives the oh-my-pi coding agent over SSH, from your desktop, phone and tablet. No account, and no daemon on the machine.

Runs on macOS · Windows · Linux · iOS · Android

The ompanion window on macOS: two machines with their projects and sessions in the sidebar, a finished task in the chat with its test run and answer, and the task's plan beside it.

Features

Drive omp from any screen.

Every step of a session as it happens, from whichever device is in your hand.

Chat

Watch the turn, then fold it away.

Replies stream in with every tool call. A quiet line counts the wait until the first word, and a finished turn folds into one line: time, tool calls, files edited.

~/code/api-server · dev-box Done

Add rate limiting to the upload endpoint so one client cannot exhaust the put path, then run the tests.

Worked for 19s · 11 tool calls · 2 files edited

Done. The upload route spends a token before it reads the body.

src/lib/rate-limit.ts
token bucket per client, 60 a minute
src/routes/upload.ts
allowance() guard, 429 with Retry-After
const decision = allowance(request);
if (!decision.allowed) {
  tooManyRequests(response, decision.retryAfterSeconds);
  return;
}

Machines

Every machine you own.

  • This computer Local
  • build-server SSH
  • dev-box SSH via bastion
  • studio Tailscale

This computer on desktop, any SSH host, hosts behind a chain of jump hosts, and Tailscale peers.

Sessions

Lock the phone.
The turn keeps going.

Sessions run detached on the machine. A dropped connection or a closed app does not stop the turn; the app reconnects and catches up.

Where it runs

The work happens on your machine.

The app talks SSH to your machine. omp runs there and calls the AI providers configured there, with your own accounts. Nothing passes through a server of ours.

  1. This device ompanion SSHto
  2. Jump hosts if you use them SSHto
  3. Your machine omp runs here APIto
  4. AI providers the ones you set up

Privacy

No account.
No daemon.
No telemetry.

Stock omp on the machine, plus a small companion extension the app uploads. No sign-up, no analytics, no crash reporting.

Privacy policy

Approvals

Answer tool calls in the chat.

Approvals, questions from the ask tool and extension dialogs, inline. On a session open on several devices, the first answer settles it everywhere.

An approval card in the app: Allow bash? Smoke-testing the staging deploy, the command sh scripts/smoke.sh, and the buttons Approve and Deny.

Tree

Branch from any message.

Reset to a message or branch into a new session. The replies left behind stay in the session tree.

Around the chat

The rest of omp, a tap away.

Dock

  • Agent Hub
  • Todos
  • Session tree
  • Files and git diffs
  • Terminal

Settings

  • omp settings
  • Model roles
  • Providers
  • MCP servers
  • Plugins
  • Skills
  • Stats
  • Usage limits

Platforms

One app, five platforms.

macOS, Windows, Linux, iOS and Android. Wide windows show machines, chat and dock side by side; narrow ones show one screen at a time.

Download

In the stores, or yours to build.

iPhone, iPad, Android and Windows install from their stores. The macOS and Linux files, and a Windows zip, are on the latest GitHub release, or build from source.

Google Play

Join the closed test first.

Google Play shows ompanion only to its testers until the app is public. With the Google account you use on Play:

  1. Join the edde-testers group.
  2. Become a tester on Google Play's test page.
  3. Install ompanion from Google Play.
Open Google Play