需要 Python ≥ 3.14,Ubuntu 24.04 自带的 3.12 要用 --python 3.14 让 uv 另装;GitHub CLI 需 ≥ 2.94,Ubuntu 24.04 软件包的 2.45.0 太旧;还需先装好 Pi 及其 provider 并完成 gh auth login,且在 orbi.toml 里设置 source_repos。

orbi
orbi-buildAGPL-3.0活跃维护给 GitHub Issue 打上标签,就能自动完成编码、独立评审、合并 PR 并打版本发布,是可自托管的无人值守软件工厂。
Open-source (AGPL-3.0), self-hostable lights-out software factory for the agent era: label a GitHub Issue, get an independently reviewed, merged PR and a tagged release.
git clone https://github.com/orbi-build/orbi.git && cd orbi
uv tool install --force --reinstall --editable --python python3 .
cp src/orbi/example_config.toml orbi.toml
orbi setup --config orbi.tomlREADME 未说明 GPU 或显存要求;需 Linux(systemd 用户会话)或 macOS(launchd GUI 会话),macOS 尚未在真机验证。
给 GitHub Issue 打标签,自动产出经独立评审并合并的 PR 与发布
给 GitHub Issue 打上标签,就能自动完成编码、独立评审、合并 PR 并打版本发布,是可自托管的无人值守软件工厂。
核心能力
- 用 ai-ready 标签触发任务,GitHub Issues 即任务池
- 在隔离 worktree 中实现、测试并开 PR
- 独立评审会话修复问题后才允许合并
- systemd/launchd 定时器每 5 分钟自动跑一轮
- 全链路共用 run_id,日志与评论可追溯
容易踩的坑
- v0.7.41最新正式版2026-11-08 · 2026-11-08 13:27 UTC
v0.7.41
Changelog
Features
- orbi suggest: the small-task preference is a caller input (--size ), not a built-in rule; already_suggested drops size (Issue #2139; PR #2146)
- prompts/prompt.md: drop Orbi's own MVP boundary (no database/queue/daemon) from the default implementer prompt for delivered repositories (Issue #2142; PR #2149)
- orbi suggest: the #2119 why check matches the engine's input paths, not the word context.json (Issue #2143; PR #2150)
- orbi suggest: already_suggested is scoped to the repository (the batch file records repo) (Issue #2145; PR #2151)
orbi draftaccepts a bare-string question and a question withoutheaderoroptions, returns them as{"question": "..."}objects, and does not validate where the(Recommended)option sits; no code, prompt, tool description or round-document text refers to a hosted page, preselection or an "Other" row added by a page. (Issue #2147; PR #2152)- The engine drafting rules and the write-ai-ready-issue skill agree: the full-form Issue body no longer asks for the commit line at the top, and both state that an Assumptions section appears only when at least one decision was taken. (Issue #2148; PR #2153)
Contributors
- tag:
v0.7.41 - release commit:
fbafd09fe49a20299e96565f100633bca61ae2af - release task: Issue #2144
Scope (verified item by item)
- Issue #2139 closed
- Issue #2140 closed
- Issue #2142 closed
- Issue #2143 closed
- Issue #2145 closed
- Issue #2147 closed
- Issue #2148 closed
Pre-release gates
- no open Issue in milestone 'v0.7.41' carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 5 check(s) all success/neutral/skipped (waited 420s for pending checks)
Tests
- release tests gated by GitHub Actions CI on the release commit fbafd09fe49a20299e96565f100633bca61ae2af (the #268 CI-wait gate; no local test execution)
run_id=24b0a18a
Released by Orbi
- v0.7.402026-11-08 · 2026-11-08 04:48 UTC
查看更新说明
v0.7.40
Changelog
Features
- orbi draft: clarifying questions carry 2–4 options with a recommended one first (restore the hosted design) (Issue #2136; PR #2137)
Contributors
- tag:
v0.7.40 - release commit:
4fed67e82fae28f38a76b148936e00f4b2b8dd72 - release task: Issue #2138
Scope (verified item by item)
- Issue #2136 closed
Pre-release gates
- no open Issue in milestone 'v0.7.40' carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 5 check(s) all success/neutral/skipped (waited 360s for pending checks)
Tests
- release tests gated by GitHub Actions CI on the release commit 4fed67e82fae28f38a76b148936e00f4b2b8dd72 (the #268 CI-wait gate; no local test execution)
run_id=6ebcfd42
Released by Orbi
- v0.7.392026-11-08 · 2026-11-08 01:34 UTC
查看更新说明
v0.7.39
Changelog
Features
- orbi suggest:每条建议带 size,仓库里有有依据的小任务时首轮给一条(十分钟量级) (Issue #2131; PR #2132)
- 写需求:有默认答案的分歧写进 Assumptions 直接开工,不再用「➜ recommended」式提问 (Issue #2133; PR #2134)
Documentation
- docs(workflow): document queueing dependent Issues with GitHub's blocked by (Issue #2127; PR #2129)
- docs(workflow): explain how a delivery triggers the user's CI and how to keep runs down (Issue #2128; PR #2130)
Contributors
- tag:
v0.7.39 - release commit:
bc2ba6014af086060d4b8a4c279e16e831aa1c8f - release task: Issue #2135
Scope (verified item by item)
- Issue #2131 closed
- Issue #2133 closed
Pre-release gates
- no open Issue in milestone 'v0.7.39' carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 5 check(s) all success/neutral/skipped (waited 420s for pending checks)
Tests
- release tests gated by GitHub Actions CI on the release commit bc2ba6014af086060d4b8a4c279e16e831aa1c8f (the #268 CI-wait gate; no local test execution)
run_id=9206c3e2
Released by Orbi
- v0.7.382026-11-06 · 2026-11-06 03:11 UTC
查看更新说明
v0.7.38
Changelog
Features
- Stop writing the ORBI_ACTIVE_MILESTONE Actions variable into delivered repositories (Issue #2123; PR #2124)
Contributors
- tag:
v0.7.38 - release commit:
99c87acfd7be341772979c979fb5a154176bfbd6 - release task: Issue #2126
Scope (verified item by item)
- Issue #2123 closed
Pre-release gates
- no open Issue in milestone 'v0.7.38' carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 5 check(s) all success/neutral/skipped (waited 390s for pending checks)
Tests
- release tests gated by GitHub Actions CI on the release commit 99c87acfd7be341772979c979fb5a154176bfbd6 (the #268 CI-wait gate; no local test execution)
run_id=fb8ffd11
Released by Orbi
- v0.7.372026-11-05 · 2026-11-05 13:44 UTC
查看更新说明
v0.7.37
Changelog
Features
- chore(deps): bump pypa/gh-action-pypi-publish from 1.14.2 to 1.14.3 in /.github/workflows in the github_actions group across 1 directory (PR #2039)
- orbi suggest: a suggestion's why names Orbi's internal context.json (Issue #2119; PR #2122)
Contributors
- tag:
v0.7.37 - release commit:
31c5c07db19deeb12e9931fd240fbadf6aec3a3e - release task: Issue #2121
Scope (verified item by item)
- Issue #2119 closed
Pre-release gates
- no open Issue in milestone 'v0.7.37' carries ai-in-progress / ai-pr-opened / ai-fix-needed
- CI on the release commit: 5 check(s) all success/neutral/skipped (waited 420s for pending checks)
Tests
- release tests gated by GitHub Actions CI on the release commit 31c5c07db19deeb12e9931fd240fbadf6aec3a3e (the #268 CI-wait gate; no local test execution)
run_id=01681452
Released by Orbi
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
English | 简体中文
Orbi
Label a GitHub Issue. Get back a reviewed, merged PR. Release when you decide.
Try Orbi Cloud — 3 merged deliveries free · no server, no credit card required
See one real loop: Issue #1367 → PR #1370 → Release v0.5.47
Orbi is an open-source software dark factory: a software delivery system for GitHub. You define the goal and acceptance criteria in an Issue and label it ai-ready; Orbi implements it in an isolated worktree, runs tests, opens a PR, and takes it through independent review, fixes, and merge. When you request a release, Orbi runs the release gates and publishes the tag and release notes. GitHub Issues are the only state store—no database, queue, or daemon.
Ledger: merged PRs · closed Issues · tagged releases — the repository is the record.
Website https://orbi.build | Documentation https://docs.orbi.build/ | Discussions | Docker GHCR · Docker Hub
Prefer to run it yourself? Follow the Quick start below. Cloud founding members get 50% off forever with the code FOUNDING50 at checkout (6 places).
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 (e.g. Ubuntu 24.04's 3.12): --python 3.14 so uv provisions it
Want just the CLI? It's on PyPI as orbi-cli (requires Python ≥ 3.14; the command stays orbi): uv tool install orbi-cli (older system Python: add --python 3.14 so uv provisions one) or pip install orbi-cli in a Python ≥ 3.14 environment; verify with orbi --version → orbi <version>, 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
# edit orbi.toml: set source_repos = ["OWNER/REPO"] (the repository whose Issues Orbi delivers)
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
The loop, in 35 seconds
Another real delivery, recorded from the live GitHub pages — including the review that rejected the first attempt:
- An issue — a bug, labelled
ai-ready - It writes the code — PR #1023, on a recorded base SHA
- The review says no — one Major finding, naming
src/orbi/release.py:2377and the fix - It fixes itself — more commits, until the checks go green
- It merges — 9 commits, +427/−43, only after the review passed
- A tagged release — v0.5.17, with the Issue and PR in the notes
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.
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 |
| Public contracts (interface inventory, status and progress formats) | Public contracts |
| 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 whole package, so new modules need no reinstall). The checkout root has no orbi.py (it would shadow the installed package); the compatibility entry point is python3 -m orbi.cli, not the formal usage path.
License
Orbi is open source under the GNU AGPL-3.0, with the Sustainable Use License (v1.0) as an alternative. Pick either license.
In practice:
- Run Orbi on your own repositories for free forever—personal or internal company use, at any scale, under either license. Modify it, self-host it, run it across a thousand repositories; no authorization needed.
- You may share it—free of charge for non-commercial purposes under the SUL; under AGPL-3.0, offering a modified Orbi as a network service means publishing your changes.
- Commercial authorization is needed only to sell Orbi itself—hosting it as a service for customers or embedding it in a paid product (SUL); AGPL-3.0 has no such restriction.
Unsure which side your use falls on? Ask in Discussions.
