constellation-works/orbit/tree/agent-main/plugin
orbit
持久任务、沙盒并行运行,以及由 PR 门控的 AI 编码代理交付。为 Claude Code 添加 Orbit 的 MCP 工具和工作流 skill。
关于这个 mod
<p align="center"> <a href="https://orbit-cli.com"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/assets/orbit-lockup-on-dark.svg" /> <img src="docs/assets/orbit-lockup-on-light.svg" alt="Orbit" width="340" /> </picture> </a> </p> <h3 align="center">代理编写。Orbit 交付。</h3> <p align="center"> <a href="https://github.com/constellation-works/orbit/releases"><img src="https://img.shields.io/github/v/release/constellation-works/orbit" alt="Release" /></a> <a href="https://www.npmjs.com/package/@orbit-tools/cli"><img src="https://img.shields.io/npm/v/@orbit-tools/cli" alt="npm" /></a> <a href="LICENSE.md"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License: MIT" /></a> <a href="https://orbit-cli.com"><img src="https://img.shields.io/badge/docs-orbit--cli.com-informational" alt="Docs" /></a> </p> <p align="center"> <img src="docs/assets/orbit-demo.gif" alt="Animated tour of the real Orbit dashboard on a live workspace: proposed tasks waiting for your approval, an auto-drain running tasks in parallel while overlapping work waits on file locks, a task's durable record, the run list, a pull-request pipeline run stepping from isolated worktree through implement, commit, review gate, and push to pr_open, the audit log of every tool call, and a scoreboard comparing Codex, Claude, Grok, and Gemini." width="880" /> </p>Orbit 是一个本地优先的编码代理运行时。你可以继续使用 Claude Code、Codex、Cursor、Copilot 或其他受支持的 CLI。Orbit 为它们提供持久任务队列、隔离的沙盒工作树、文件级并行锁、以拉取请求结束的门控流水线,以及记录每一步的审计日志。
原因: 代理已经足够快,规划、审查和可追溯性反而最先被牺牲。六个月后,没人说得清一行代码为什么这样写。Orbit 让这些规范的成本很低,也让你不用再处理文书工作。代理登记任务,Orbit 执行任务,每个提交都带有任务 ID,可以追溯到提示、计划和审查。
- 单一二进制文件,无云端。 状态保存在
~/.orbit和.orbit/中。不会向外联络。 - 带上你自己的代理。 Orbit 驱动你已经完成身份验证的供应商 CLI,从不索要 API 密钥。
- MIT 许可。 没有付费层,也不提供托管服务。
工作原理
$ orbit init # one-time, per machine
$ cd my-repo && orbit workspace init --mcp # per repo; wires Orbit into your agent CLIs
$ orbit web serve # open the Orbit dashboard in your browser
You: The fsProfile lookup is undocumented. Get that fixed.
Agent: orbit.task.add → ORB-1042 · proposed
Filed with acceptance criteria. Approve it and ship?
You: Yes.
Agent: orbit.task.update → ORB-1042 · backlog
orbit.workflow.ship → worktree isolated · file scope locked · plan → execute → review
Pull request opened. ORB-1042 is in review. The diff and the merge are yours.
$ orbit task update ORB-1042 --approve # after you merge: review → done
<sub>示例会话。工具名称是真实的,ID 是占位符。</sub>
对于多个任务,把规范交给代理并让它负责编排。随附的 orbit-orchestrate skill 会把规范拆成任务,在你批准后将它们排队,使用 orbit run auto 并行运行,并诊断失败的运行。
- 没有你的批准,任何任务都不会开始。 新任务会进入
proposed,只有你批准后才会移动到backlog。 - 每次运行都会以拉取请求结束。 Orbit 不会自行合并。合并 PR 和完成任务是两个独立决定,除非你明确传入
--complete。 - 一切都有记录。
orbit task show ORB-1042会重建提示、计划、执行轨迹和审查讨论串,即使过了几个月也一样。
快速开始
你需要: macOS 或 Linux(x64 或 arm64;在 Windows 上请在 WSL2 中运行 Orbit,因为没有原生 Windows 构建:参见 Windows WSL2 指南)、Node 18+、至少一个完成身份验证的代理 CLI;如果需要拉取请求,还要完成身份验证的 gh。
npm install -g @orbit-tools/cli
orbit init # asks for a machine name and a task-ID prefix, links Orbit's skills into your agents, and on Linux prepares the sandbox
然后让代理设置仓库。 在仓库中打开代理,请它*“为这个仓库设置 Orbit”*。随附的 orbit-setup skill 会注册仓库,通过 MCP 连接代理,并运行 orbit doctor,只询问它无法推断的内容,例如拉取请求应指向的分支。完成后启动新的代理会话,让 Orbit 工具加载,然后提出要求:它会登记任务、请求批准、交付任务并报告 PR。使用 orbit web serve 查看全过程。
cd <repo> && orbit workspace init --mcp # add --ship-mode local to skip PRs
orbit doctor
orbit web serve
在首次交付前,审查并提交 workspace init 列出的检出文件。本地交付要求基础检出干净;列表包括 MCP 客户端文件。
orbit doctor 会报告默认路由、系统路由或复杂度路由所选团队缺少哪些 CLI,并在此工作区没有注册 Orbit MCP 客户端时发出警告。它只检查 CLI 是否存在以及注册文件;不会检查供应商登录和 MCP 连接。使用 orbit doctor providers 检查所有执行器定义,包括未被工作流路由选中的供应商。在 Linux 上,参见沙盒就绪状态与发行版覆盖范围。
| 操作 | 运行 |
|---|---|
| 检查任务或运行 | orbit task show <ID> · orbit run show <RUN_ID> |
| 打开控制面板 | orbit web serve(远程:orbit web connect <host>) |
| 选择默认团队(供应商和模型) | orbit config set workflow.default_crew <crew> |
| 升级 | npm install -g @orbit-tools/cli@latest(orbit update --check 会显示新内容) |
每个 MCP 工具都有对应的 CLI。
TASK_ID=$(orbit task add --title "..." --description "..." \
--acceptance-criteria "..." --complexity medium --workspace .)
orbit task update "$TASK_ID" --approve # proposed → backlog
orbit run ship "$TASK_ID" # async; prints a run ID
orbit run show <RUN_ID> # progress and outcome
orbit task update "$TASK_ID" --approve # after merging the PR: review → done
</details>
功能
规划和治理
- 带意图的持久任务。 任务带有验收标准、文件范围、依赖关系和带类型的关联。它们会在
proposed → backlog → in-progress → review → done之间移动,而且状态会跨会话和分支保留。 - 结构化审计日志。 每次工具调用、供应商交互和状态转换都会记录为可追加、可查询的事件,并标记产生它的代理和模型(
orbit audit)。 - 摩擦账本。 如果工作因令人困惑的错误、缺少标志或未记录的约定而比应有的更困难,代理会用
orbit friction add记录下来,而不是悄悄绕过问题。解决摩擦的任务完成时,也会将摩擦关闭。 - 本地搜索。
orbit search使用快速词法搜索(SQLite FTS5)搜索任务和摩擦,不需要下载模型。
并行安全执行
- 隔离的沙盒运行。 每次运行都有自己的 git 工作树,并在 macOS 上通过
sandbox-exec、Linux 上通过 Bubblewrap 运行代理 CLI。在 Linux 上,工作进程还会受到 cgroup 的内存限制。 - 感知冲突的调度。 运行开始前会把任务文件保留为锁,因此重叠工作会排队等待,而不是稍后产生合并冲突。
- 门控流水线。 每次运行都会经历 plan → execute → review,并带有修复预算和失败恢复。依赖关系控制准入;你只需声明一次顺序,队列会强制执行。
- 九个按团队路由的代理 CLI。 Claude Code、Codex、Cursor、Copilot、Grok、Gemini、Antigravity、OpenCode 和 Pi。团队固定供应商、模型和工作强度。按复杂度分层的加权团队池会在这些代理之间分配工作。
无人值守运行
- 有界排空。
orbit run auto --for 4h --concurrency 8会在时间窗口结束前持续交付积压任务。orbit run readiness会预览将要运行的内容而不启动任何任务。也可以让代理运行一次:orbit-orchestrateskill 会准备积压、启动排空,并处理失败的运行。 - 选择性完成。 GitHub 允许后,
--complete会合并 PR,并在确认合并后关闭任务。没有其他设置会启用此功能。 - 持续审查。 已提供的
code-review、qa-sweep和security-review自动任务会读取上次运行以来落地的所有内容,根据实时代码核实发现,并把确认的问题以file:line证据登记为任务。 - 将周期工作作为数据。 计划任务模板位于
.orbit/auto_tasks/*.yaml,一个机器调度器(orbit clock)负责运行例行工作和自动任务。 - 多机器支持。 分布式排空通过持久声明把积压任务分散到多台机器。联邦 MCP 服务器会把本地和 SSH 远程工作区置于同一命名空间。
观察和扩展
- 控制面板(
orbit web serve)。显示任务积压、实时审计流、每个代理的计分板、作业、摩擦和生效配置,并支持行内编辑。 - 插件(
orbit plugin)。插件可以添加自己的工具、作业、例行工作、自动任务、skill 和 CLI 命令。插件在明确的权限授予下以沙盒方式运行,orbit plugin scaffold会生成起始模板。 - 代理 skill。 Orbit 随附三个 skill:
orbit(日常任务工作)、orbit-orchestrate(积压和调度)以及orbit-setup(机器和仓库配置)。orbit init会将它们链接到你的代理中。
你可以一次采用一项。任务层和审计日志从第一天就能工作;并行排空、自动任务和插件则在你需要时启用。
代理插件
如果不安装 PATH 上的 CLI,仍想让单个代理使用 Orbit 的 MCP 工具和 skill,可以添加插件。它会启动固定版本的 npm CLI。控制面板和跨代理工作区设置仍需要安装 CLI。
# Claude Code
/plugin marketplace add constellation-works/orbit
/plugin install orbit
# Codex CLI
codex plugin marketplace add constellation-works/orbit --ref agent-main
codex plugin add orbit@orbit
# Cursor (local plugin from a checkout)
mkdir -p ~/.cursor/plugins/local && ln -sfn "$(pwd)/plugin" ~/.cursor/plugins/local/orbit
想要有人带你完成设置?请代理*“为这个仓库设置 Orbit”*,随附的 orbit-setup skill 会接手后续工作。
Claude Code 桌面版
在 Claude Code 中,插件还会带来 Orbit mod:提示上方的一条带状区域,显示工作区的运行中、阻塞和审查数量;Orbit 面板则提供任务板、会预检并追踪 orbit run ship 的交付视图,以及轨道地图。使用 /orbit-board、/orbit-ship 和 /orbit-map 打开它们。检出目录是副本时,将插件的 ownerHost 选项设置为所有者的 SSH 主机。参见 plugin/hooks/mod。
Codex 桌面版
你需要 Node.js 18+(包括 npx)以及位于 PATH 上的 Codex CLI。
-
在终端注册 Orbit marketplace:
codex plugin marketplace add constellation-works/orbit --ref agent-main -
重启桌面应用。打开 Plugins Directory,选择 Orbit marketplace,然后安装 Orbit。
-
在仓库中开始新的聊天,并询问:“为这个仓库设置 Orbit”。
参见 [官方 marketplace 设置指南](https://developers.openai.com/plugins/build/plugins#add-a-marketplace-from-th
安装
请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。
claude plugin marketplace add constellation-works/orbit claude plugin install orbit
原文 / README
Orbit is a local-first runtime for coding agents. You keep using Claude Code, Codex, Cursor, Copilot, or any of the other supported CLIs. Orbit gives them a durable task queue, isolated sandboxed worktrees, file-level locks for parallel runs, a gated pipeline that ends in a pull request, and an audit log of every step.
Why: agents are fast enough that planning, review, and traceability are the first things to go. Six months later nobody can say why a line was written. Orbit makes those disciplines cheap and keeps you out of the clerical work. The agent files the task, Orbit runs it, and every commit carries a task ID you can trace back to the prompt, the plan, and the review.
- Single binary, no cloud. State lives in
~/.orbitand.orbit/. Nothing phones home. - Bring your own agents. Orbit drives the provider CLIs you already have authenticated, and never asks for API keys.
- MIT licensed. No paid tier, no hosted offering.
How it works
$ orbit init # one-time, per machine
$ cd my-repo && orbit workspace init --mcp # per repo; wires Orbit into your agent CLIs
$ orbit web serve # open the Orbit dashboard in your browser
You: The fsProfile lookup is undocumented. Get that fixed.
Agent: orbit.task.add → ORB-1042 · proposed
Filed with acceptance criteria. Approve it and ship?
You: Yes.
Agent: orbit.task.update → ORB-1042 · backlog
orbit.workflow.ship → worktree isolated · file scope locked · plan → execute → review
Pull request opened. ORB-1042 is in review. The diff and the merge are yours.
$ orbit task update ORB-1042 --approve # after you merge: review → done
<sub>Illustrative session. The tool names are real, and the IDs are placeholders.</sub>
For more than one task, hand your agent a spec and ask it to orchestrate. The bundled orbit-orchestrate skill splits the spec into tasks, queues them once you approve, runs them in parallel with orbit run auto, and diagnoses any run that fails.
- Nothing starts without you. New tasks land in
proposed, and only your approval moves them tobacklog. - Every run ends at a pull request. Orbit never merges on its own. Merging the PR and completing the task are separate decisions, unless you explicitly pass
--complete. - Everything is on the record.
orbit task show ORB-1042reconstructs the prompt, plan, execution trace, and review thread, even months later.
Quick start
You need: macOS or Linux (x64 or arm64; on Windows, run Orbit inside WSL2, as there is no native Windows build: see the Windows WSL2 guide), Node 18+, at least one authenticated agent CLI, plus gh authenticated if you want pull requests.
npm install -g @orbit-tools/cli
orbit init # asks for a machine name and a task-ID prefix, links Orbit's skills into your agents, and on Linux prepares the sandbox
Then let your agent set up the repo. Open your agent in the repository and ask it to "set up Orbit for this repo". The bundled orbit-setup skill registers the repo, connects your agent over MCP, and runs orbit doctor, asking only for what it can't infer, such as the branch pull requests should target. Start a fresh agent session when it finishes so the Orbit tools load, then ask for something: it files the task, asks for approval, ships it, and reports the PR. Watch it all with orbit web serve.
cd <repo> && orbit workspace init --mcp # add --ship-mode local to skip PRs
orbit doctor
orbit web serve
Review and commit the checkout files listed by workspace init before the first ship. Local delivery requires a clean base checkout; the list includes MCP client files.
orbit doctor reports missing CLIs for crews selected by the default, system,
or complexity routing and warns when no Orbit MCP client is registered for this
workspace. It checks CLI presence and registration files only; provider sign-in
and MCP connectivity are not checked. Use orbit doctor providers to inspect
all executor definitions, including providers not selected by workflow routing.
On Linux, see sandbox readiness and distro coverage.
| To… | Run |
|---|---|
| Inspect a task or run | orbit task show <ID> · orbit run show <RUN_ID> |
| Open the dashboard | orbit web serve (remote: orbit web connect <host>) |
| Pick the default crew (provider and model) | orbit config set workflow.default_crew <crew> |
| Upgrade | npm install -g @orbit-tools/cli@latest (orbit update --check shows what's new) |
Every MCP tool has a CLI twin.
TASK_ID=$(orbit task add --title "..." --description "..." \
--acceptance-criteria "..." --complexity medium --workspace .)
orbit task update "$TASK_ID" --approve # proposed → backlog
orbit run ship "$TASK_ID" # async; prints a run ID
orbit run show <RUN_ID> # progress and outcome
orbit task update "$TASK_ID" --approve # after merging the PR: review → done
</details>
Features
Plan and govern
- Durable tasks with intent. Tasks carry acceptance criteria, a file scope, dependencies, and typed relations. They move through
proposed → backlog → in-progress → review → done, and that state survives sessions and branches. - Structured audit log. Every tool call, provider exchange, and state transition is recorded as an append-only, queryable event tagged with the agent and model that produced it (
orbit audit). - Friction ledger. When the work was harder than it should have been, whether from a confusing error, a missing flag, or an undocumented convention, the agent records it with
orbit friction addinstead of quietly working around it. A task that resolves the friction closes it on completion. - Local search.
orbit searchruns fast lexical search (SQLite FTS5) over tasks and frictions. It needs no model download.
Execute safely in parallel
- Isolated, sandboxed runs. Each run gets its own git worktree and runs its agent CLI under
sandbox-execon macOS or Bubblewrap on Linux. On Linux, worker runs are also memory-bounded in a cgroup. - Conflict-aware scheduling. Runs reserve their task's files as locks before starting, so overlapping work waits in line instead of producing merge conflicts later.
- Gated pipeline. Each run goes plan → execute → review, with repair budgets and failure recovery. Dependencies gate admission, so you declare the order once and the queue enforces it.
- Nine agent CLIs, routed by crews. Claude Code, Codex, Cursor, Copilot, Grok, Gemini, Antigravity, OpenCode, and Pi. Crews pin a provider, model, and effort level. Complexity-tiered, weighted crew pools spread the work across them.
Run unattended
- Bounded drains.
orbit run auto --for 4h --concurrency 8ships the backlog until the time window closes.orbit run readinesspreviews what would run without starting anything. Or ask your agent to run one: theorbit-orchestrateskill prepares the backlog, starts the drain, and works through failed runs. - Opt-in completion.
--completemerges PRs once GitHub allows it and closes tasks after the merge is verified. Nothing else turns this on. - Continuous review. The shipped
code-review,qa-sweep, andsecurity-reviewauto-tasks read everything that landed since their last run, verify findings against live code, and file confirmed ones as tasks withfile:lineevidence. - Recurring work as data. Scheduled task templates live in
.orbit/auto_tasks/*.yaml, and one machine scheduler (orbit clock) runs routines and auto-tasks. - Multi-machine. A distributed drain spreads a backlog across machines through durable claims. A federated MCP server puts local and SSH-remote workspaces under one namespace.
Observe and extend
- Dashboard (
orbit web serve). Shows the task backlog, live audit feed, per-agent scoreboard, jobs, frictions, and effective config, with inline editing. - Plugins (
orbit plugin). A plugin can add its own tools, jobs, routines, auto-tasks, skills, and CLI commands. Plugins run sandboxed under explicit permission grants, andorbit plugin scaffoldgenerates a starter. - Agent skills. Three skills ship with Orbit:
orbit(everyday task work),orbit-orchestrate(backlog and dispatch), andorbit-setup(machine and repo configuration).orbit initlinks them into your agents.
You can adopt these one at a time. The task layer and audit log work from day one. Parallel drains, auto-tasks, and plugins switch on when you want them.
Agent plugins
To give a single agent Orbit's MCP tools and skills without installing the CLI on PATH, add the plugin. It launches the pinned npm CLI. The dashboard and cross-agent workspace setup still need the CLI install.
# Claude Code
/plugin marketplace add constellation-works/orbit
/plugin install orbit
# Codex CLI
codex plugin marketplace add constellation-works/orbit --ref agent-main
codex plugin add orbit@orbit
# Cursor (local plugin from a checkout)
mkdir -p ~/.cursor/plugins/local && ln -sfn "$(pwd)/plugin" ~/.cursor/plugins/local/orbit
Want to be walked through setup? Ask your agent to "set up Orbit for this repo", and the bundled orbit-setup skill takes it from there.
Claude Code desktop
In Claude Code the plugin also brings the Orbit mod: a band above the prompt with the workspace's running, blocked, and review counts, and an Orbit pane with a task board, a ship view that preflights and tracks orbit run ship, and an orbital map. Open them with /orbit-board, /orbit-ship, and /orbit-map. When the checkout is a replica, set the plugin's ownerHost option to the owner's SSH host. See plugin/hooks/mod.
Codex desktop
You need Node.js 18+ (including npx) and the Codex CLI on PATH.
-
Register the Orbit marketplace from a terminal:
codex plugin marketplace add constellation-works/orbit --ref agent-main -
Restart the desktop app. Open the Plugins Directory, choose the Orbit marketplace, and install Orbit.
-
Start a new chat in your repo and ask: "set up Orbit for this repo".
See the official marketplace setup guide.
MCP and authority
orbit workspace init --mcp registers orbit mcp serve --operator with your agent CLIs. That operator session is the only one that can dispatch workflows, resume runs, or run commands. Agents launched by Orbit get an agent-only surface. Authority is enforced when a tool is called, not by hiding tools, so every session sees the same tools/list. Use orbit mcp init alone for an agent-only registration, or orbit mcp init --federated to put several machines under one namespace (details).
Where state lives
| Path | Holds |
|---|---|
| ~/.orbit/ | Machine state: task bundles, orbit.db (audit, runs, routines, frictions), workspace registry, shipped resources, skills, config.toml |
| <repo>/.orbit/ | Workspace state: identity, local config overrides, auto-tasks, routines, worktrees, and logs. Gitignored, and safe to delete for a clean slate. |
Backups, stuck runs, database recovery, and upgrades are covered in the runbooks.
Learn more
- orbit-cli.com: guides, concepts, and the full CLI and config reference
- docs/CONFIG.md: crews, pools, base branch, sandbox
- docs/POSITIONING.md: what Orbit is for, and what it deliberately isn't
- ARCHITECTURE.md and design docs
- CHANGELOG.md: Orbit is pre-1.0, and breaking changes ship in minor releases
Contributing
Pull requests are welcome, from typo fixes to new executors. Small fixes can go straight to a PR, and bigger changes start with an issue. See CONTRIBUTING.md to get set up.
License
其他同名作品
- orbitjamubc · ★ 0

