English | 简体中文
Orbi
Orbi is a local AI development Worker: put work in a GitHub Issue, and it automatically claims the Issue, starts Pi in an isolated worktree to develop and test it, creates a PR, and then passes it through independent review and merge gates. GitHub Issues and labels are the only state store—there is no database, queue, or daemon.
- Website https://orbi.build | Documentation https://docs.orbi.build/ (the repository's
docs/is the single source of truth; the Chinese entry point isdocs/zh/) | Updates @xqliu - Join the first group of contributors: if you are stuck on the environment, model integration, or workflow, we can help you run your first Issue. The problems you encounter become Issues to prioritize.
Why Orbi
- GitHub Issues are the task pool: the
ai-readylabel dispatches work, and the delivery record (comments, PRs, and CI) is complete by default, with no second task system; - Fully automated: a user scheduler timer (systemd on Linux, launchd on macOS) triggers a tick every 5 minutes. Normal operation needs no status command, polling, or supervision;
- Independent review + merge gates: after a PR opens, an independent review session reviews it and fixes findings in the same session. Only the reviewed head can merge, and AI never merges or pushes protected branches;
- Fail fast: command errors fail immediately and leave the evidence in the logs. The Issue is marked
ai-blockedfor a human decision, with no silent fallback; - Observable end to end: every journal log and GitHub progress comment carries the same
run_id, so the complete timeline can be reconstructed with one grep.
Quick start
git clone https://github.com/orbi-build/orbi.git && cd orbi
uv tool install --force --reinstall --editable --python python3 . # compatible system Python (>= 3.14, e.g. Fedora 43 / current Arch); older system Python (e.g. Ubuntu 24.04 ships 3.12): --python 3.14 so uv provisions it
Want just the CLI? Published on PyPI as orbi-cli (release 0.5.7, requires Python ≥ 3.14; the installed command stays orbi): uv tool install orbi-cli (on an older system Python, e.g. Ubuntu 24.04's 3.12, add --python 3.14 so uv provisions a compatible interpreter) or pip install orbi-cli inside an activated Python ≥ 3.14 environment; verify with orbi --version → orbi 0.5.7, uninstall with uv tool uninstall orbi-cli. To run Orbi itself, use the one-line installer at the top of Getting started — it creates the editable install Orbi's deployment drives.
Ready check (before setup)
uv:uv --version; Pi and its provider:pi --version, thenpi --print "reply with the single word: ok"- GitHub CLI ≥ 2.94 (official repository — Ubuntu 24.04's package 2.45.0 is too old): run
gh auth loginonce, then verifygh auth status - Linux — systemd user session:
systemctl --user status - macOS — launchd GUI session:
launchctl print gui/$(id -u)(not yet verified on real hardware; reports welcome)
Choose the mode in Getting started: bootstrap uses this checkout as repo_dir; External single-repo mode uses it as deploy_home and a foreign repository as repo_dir.
cp src/orbi/example_config.toml orbi.toml
orbi setup --config orbi.toml # 4. run one-time setup (checks prior gh auth, labels, scheduler units (systemd/launchd), and checkout; idempotent)
PYTHONPATH=src python3 -m orbi.runner --config orbi.toml # 5. manually run one tick (for initial verification; the timer schedules normal runs)
orbi doctor --config orbi.toml # 6. verify deployment health
What it does
GitHub Issue (ai-ready)
→ Claim: create a feature branch + isolated worktree (from the frozen origin/main SHA)
→ Pi development: plan → implement → test → verify
→ Commit delivery (the Agent stops at the commit)
→ Runner closeout: sync the latest base, push, and create a PR (body includes Fixes #N)
→ Independent review (fixes in the same session) → merge gate → merge
- Each task gets its own run: the branch, worktree, logs, and PR are all associated with the same
run_id; retries create a new run and preserve the old evidence unchanged; - Failures are classified clearly: recoverable failures return to the same PR for continued fixes, while unrecoverable failures mark the Issue
ai-blockedfor a human; - Supports
orbi addfor dispatching work,statusfor viewing the queue,sessionfor following the Pi session,install-unitsfor idempotently installing the scheduler units (systemd on Linux, launchd on macOS), anddoctorfor read-only diagnostics.
Documentation
| Topic | Entry point |
|---|---|
| Documentation home | https://docs.orbi.build/ |
| Getting started (prerequisites, configuration, first run, smoke test) | Getting started |
| One-time setup (labels, units, transport migration) | One-time setup |
| Workflow (state chain, labels, P0, Epic, Release) | Workflow |
| Operations (timer, journal, unit drift, recovery) | Operations |
| Testing, coverage gates, and remote CI | Testing |
| Contributing (Issue granularity, KISS/LEAN, PR flow) | Contributing |
| Chinese documentation | docs/zh/ |
Development and contribution
See the development contract in AGENTS.md, and Contributing for dispatching Issues, reporting bugs, and submitting PRs. Runtime code lives in the src/orbi/ package (Issue #168 src layout; the editable finder maps the entire package directory, so new modules need no reinstall). The checkout root has no orbi.py (to avoid shadowing the installed package); the direct-execution compatibility entry point is python3 -m orbi.cli, not the formal usage path.
License
This project is fair-code, released under the Sustainable Use License (v1.0). See the complete text in LICENSE.md at the repository root.
In practice:
- Run Orbi on your own repositories for free forever—for personal use and internal company use alike, at any scale. You can modify the code, self-host it, and run it across a thousand repositories without requesting authorization.
- You may share it, provided that it is free and used for non-commercial purposes.
- Commercial authorization is required only when you sell Orbi itself—for example, hosting it as a service for customers or embedding it in a paid product.
If you are unsure which side your use falls on, ask in Discussions; we will give you a clear answer.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orbi_cli-0.5.7.tar.gz.
File metadata
- Download URL: orbi_cli-0.5.7.tar.gz
- Upload date:
- Size: 877.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f93e43fbcf4a917e32cfe2f0bf49c8b14df3daa51edfc40fd75b75809d68f58
|
|
| MD5 |
bd585392df73648b3884ed121f20dde0
|
|
| BLAKE2b-256 |
ede4cb0dd064f430f8c17004aaabd070b45864d407b2e2f322d3b5d0d8cd9c23
|
Provenance
The following attestation bundles were made for orbi_cli-0.5.7.tar.gz:
Publisher:
publish.yml on orbi-build/orbi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orbi_cli-0.5.7.tar.gz -
Subject digest:
0f93e43fbcf4a917e32cfe2f0bf49c8b14df3daa51edfc40fd75b75809d68f58 - Sigstore transparency entry: 2841504654
- Sigstore integration time:
-
Permalink:
orbi-build/orbi@d8732ed52be876ac156e02eeb240e79ef32e62c0 -
Branch / Tag:
refs/tags/v0.5.7 - Owner: https://github.com/orbi-build
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8732ed52be876ac156e02eeb240e79ef32e62c0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file orbi_cli-0.5.7-py3-none-any.whl.
File metadata
- Download URL: orbi_cli-0.5.7-py3-none-any.whl
- Upload date:
- Size: 307.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41f5832686d9c542e575c10a26e9e8f22c33c5c9f30e894b5729cb94f06353ce
|
|
| MD5 |
0633e55e8bc446548c25827bc4e13415
|
|
| BLAKE2b-256 |
605b1dfea7ab07964b5c6917ee644d5ee89ec901816f5132bfe75c3f91a291a0
|
Provenance
The following attestation bundles were made for orbi_cli-0.5.7-py3-none-any.whl:
Publisher:
publish.yml on orbi-build/orbi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orbi_cli-0.5.7-py3-none-any.whl -
Subject digest:
41f5832686d9c542e575c10a26e9e8f22c33c5c9f30e894b5729cb94f06353ce - Sigstore transparency entry: 2841504670
- Sigstore integration time:
-
Permalink:
orbi-build/orbi@d8732ed52be876ac156e02eeb240e79ef32e62c0 -
Branch / Tag:
refs/tags/v0.5.7 - Owner: https://github.com/orbi-build
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8732ed52be876ac156e02eeb240e79ef32e62c0 -
Trigger Event:
push
-
Statement type: