moa is short for My Own Agent. Also a very large bird that could not fly, and did not need to.
Let Moa run
A coding agent that lives on the machine where your code is: repos, toolchain, running processes. It keeps working while you're away, and you steer it from a browser, a terminal, or your phone.
Runs on the plan you already pay for: Claude Pro/Max or ChatGPT Plus/Pro via OAuth, or plain API keys. No middleman, no second bill.
the point
The machine stays put.
You don't have to.
Terminal agents stop when the terminal goes away. Moa's sessions live on the server, not in a tab or an SSH connection. Start at your desk, close the laptop, pick the same session up on your phone: see what it's doing, answer a permission prompt, change direction, or stop it.
The README was written on a phone, three laptop-free weeks in, during full days of real development work.
a normal day
Real work needs the real machine
Straight from the README: what Moa does in a working day, with the tools already on your host.
AGENTS.md.
my own agent
Why own it
Moa talks to Anthropic or OpenAI directly from your machine, with the Claude Pro/Max or ChatGPT Plus/Pro subscription you already pay for, or an API key. No hosted middleman, no second bill.
Stays on your machine
- Repository, dependencies, credentials
- Session history & project memory
- Running processes and environments
- The access boundary: localhost, Tailscale, or your own proxy
Goes to your provider
- Prompts and the code the model needs
- Tool results relevant to the task
- …and nothing passes through anyone else.
before you expose a port
Self-hosted means you choose the boundary
moa serve binds to localhost and does not enable authentication by
default. Anyone who can reach an unauthenticated port can control its agents. Keep it
on localhost or a private network like Tailscale, set a token on top of that boundary, and read
the security docs
before exposing anything.
Self-hosted does not mean offline: prompts and the code the model needs go to the provider you configure. Everything else stays home.
Let Moa run.
One binary from Releases. Open a browser, hand it a task, close the laptop.