Self-hosted · GitHub Issue to release
A self-hosted coding agent that ships the release
On your machine, with your model, to a tagged release. Install the runner, connect a model, label one Issue ai-ready. Orbi writes the change, opens a PR, survives an independent review, and the milestone ends as a tagged GitHub Release.
RUNS WHERE YOUR CODE LIVES
What running it on your own machine takes
A Python runner, a model it can reach, and GitHub access. The commands below are the ones the getting-started guide uses.
curl -LsSf https://raw.githubusercontent.com/orbi-build/orbi/main/install.sh | bashNeeds Python 3.14, uv, git, gh, and a systemd user session (launchd on macOS). Node ≥ 22.19 is the one prerequisite it does not install.
- 01 · INSTALLInstall the runner
The script provisions Python 3.14 with uv and installs the Pi CLI.
orbi setupchecks the prerequisites; it never installs system packages orghfor you. - 02 · MODELConnect a model
Any OpenAI-compatible API works: copy a template into
.orbi/pi-providers.jsonand select the provider inorbi.toml(DeepSeek ships as a template). A ChatGPT/Codex subscription works too: run/login codexinside an interactivepisession. - 03 · GITHUBGive it GitHub access
GitHub CLI 2.94 or newer, authenticated. Issues, labels, PRs and merges all go through it;
gh auth statustells you where you stand. - 04 · FIRST RELEASERun one tick and watch a release happen
Label an Issue
ai-ready. One tick resumes an open PR or claims a single Issue, p0 first, then bugs, then features. The timer does the same every five minutes.
mkdir -p .orbi
printf '%s\n' 'DEEPSEEK_API_KEY=replace-me' > .orbi/env
chmod 600 .orbi/envThe key never goes into the provider JSON. It lives in the env file, which the systemd unit loads at service start.
pi --print "reply with the single word: ok"
PYTHONPATH=src python3 -m orbi.runner --config orbi.toml
systemctl --user list-timers 'orbi@*.timer'One real call proves the model endpoint. One tick claims at most one Issue. The list shows the timers doing it every five minutes.
TWO WAYS TO RUN IT
Self-hosted or Cloud
Same delivery line. The difference is who runs the machine and who pays for the model.
| Self-hosted | Orbi Cloud | |
|---|---|---|
| Runs on | Your machine, under a systemd user timer (launchd on macOS). | Orbi's infrastructure. Sign in with GitHub and connect a repo. |
| You set up | The install script, orbi setup, one model provider. | Nothing. Each connected repo runs under its own Unix user. |
| Model | Your own: any OpenAI-compatible API, or a Codex subscription login. | Included with the plan. |
| What it costs | Orbi is free under AGPL-3.0; you pay your provider. Measured across 20 merged PRs: median $0.125 off-peak at DeepSeek list prices. | First 3 merged deliveries free, no card. Solo: US$29/month, 100M tokens. Pro: US$79/month, 300M tokens. |
| When the quota is gone | There is no Orbi-side quota; your provider keeps billing per use. | New deliveries pause. Nothing overbills. |
Comparing managed agents instead? Orbi vs Devin, measured line by line.
FAQ
Before you install it
Where does my data live?
On your own machine. Config sits in orbi.toml, keys in the gitignored .orbi/ state directory, task worktrees under .worktrees/, logs in your user journal. GitHub holds the Issues, PRs and releases.
Can I use a local model?
Yes. The providers guide ships a Local Qwen template (local-qwen.json, Qwen3.8-27B), and any OpenAI-compatible endpoint fits the same slot.
How do I stop it?
Pause the timer: systemctl --user disable --now orbi@1.timer, once per enabled timer. Nothing is deleted; re-enable to resume. Full removal steps are in Operations.
What does one Issue get?
A PR with its evidence, an independent review that can repair the branch, a merge of only the reviewed head, then the tag and GitHub Release. The whole line is on Issue to release.
How does it compare with Devin?
Setup, pricing and the delivery line, compared side by side: Orbi vs Devin.
YOUR MACHINE, YOUR RELEASE
Own the machine. Keep the release.
Label the next Issue ai-ready and watch it come back as a tagged release.