服务起没起来,不用再猜。

oberth 是 Git worktree 的运行事实层:一份清单说清该跑什么,一条命令回答是不是真在跑、没跑为什么。人和 coding agent 读同一份事实。

oberth status · 示例项目 hello-worktree

hello-worktree · main

api      running   :21730   health 200
worker   running   no port

2 services · manifest oberth.yaml

跑完,才算数。

80 次真实 agent 运行:8 个十服务栈场景 × 2 种方式 × 5 次重复,同一 agent、同一二进制。左列为带 oberth,右列为只用 agent。

8/8 场景轮次更少;越界操作 0/0。

真实 agent 运行结果对比
指标带 oberth只用 agent
完成任务40/40100%29/4072.5%
轮次中位5P95 109P95 17
用时中位45s69s

测量于 2026-11-04。单一 agent、单一模型、内部夹具;每格 5 次,P95 只作方向性证据。 本次运行 方法与原始数据

四个 worktree,四个猜测。

端口靠猜 3000 in use,失败靠翻日志 exit 1,没人说得清哪个服务真的在跑 worker · no port。

你确认清单,引擎回答事实。

从确认清单到启动服务,再到读回事实,只有一条链。

你确认该跑什么。

清单由人确认,agent 只能起草;运行归属跟着起它的 worktree。

按依赖顺序起。

up 先跑 prepare,再按 depends_on 启动,并等待真实就绪。

看清三件事。

进程、监听和健康是分开的事实;没有端口不等于没在跑。

回到失败现场。

logs 读服务自己的输出和退出原因,不重新拼一条系统命令。

oberth.yaml · 示例项目 hello-worktree

name: hello-worktree
services:
  - name: api
    cmd: python3 -u api.py
    port: auto
    health: /health
  - name: worker
    cmd: python3 -u worker.py
    depends_on: [api]
    env:
      API_URL: ${api.url}

oberth up --wait · 示例项目 hello-worktree

api      started   :21730   ready
worker   started   no port

oberth status · 示例项目 hello-worktree

api      running   :21730   health 200
worker   running   no port

oberth logs worker --once · 示例项目 hello-worktree

worker: API health=200
worker: API health=200
worker: API health=200

六条命令,一个闭环。

从状态到日志,人读表格,agent 读 --json;同一份契约,不用另记一套。

一个服务,四种事实。

不是一张整机端口表;只回答这个 worktree 声明的服务。

进程

running

worker 没有端口,也靠运行记录确认。

端口

21730 auto

auto 端口由引擎分配,跟着服务显示。

健康

200 /health

进程活着,不等于健康。

退出

none

失败会留下原因、退出码和日志。

无端口

worker · running

没有监听,不等于没在跑。

安装引擎。

从源码构建,或下载对应平台的发布包。发布包只含引擎与 adapter。

构建不会安装软件或启动日常服务。mage install 会写入安装目录并修改 PATH。

从源码构建

git clone https://github.com/SheathedSharp/option-berth.git
cd option-berth
brew install go mage
mage buildEngine
./bin/oberth version --json

一条命令安装

脚本解析最新发布,按平台下载并核对 SHA256,装到 ~/.local/bin;固定版本加 --version。

curl -fsSL https://raw.githubusercontent.com/SheathedSharp/option-berth/main/install.sh | sh

Windows 用 PowerShell:irm .../install.ps1 | iex。完整服务场景在 macOS/Linux 验证;Windows 是独立原生构建与冒烟,不等于完整的生命周期支持。

查看最新引擎发布 安装、升级与卸载

边界写在前面。

它有图形界面吗?

界面是独立的 macOS 客户端,不在这个仓库,也不随引擎发布。

会接管整台机器的端口吗?

不会。它只回答当前 worktree 声明的服务;machine: 依赖只读,起停不碰它们。

会写我的 Git 吗?

产品的 Git 操作只读。清单由人确认,agent 可以起草,但不能代替你采纳。

没有端口就是没在运行吗?

不是。无端口 worker 通过运行记录观察;进程、监听和健康是分开的事实。

Windows 支持到什么程度?

有原生构建、冒烟和部分事实/持久化检查;完整服务场景只在 macOS/Linux 验证。

需要模型账号或云端吗?

不需要。引擎本地运行,不内置模型推理,也没有云端同步。

怎么让 coding agent 学会用它?

skill 是独立仓库,用 npx skills add SheathedSharp/option-berth-skill -g 装到本机已安装的 agent;Claude Code 也可走插件市场。引擎不会替你装。

能和 Conductor、Cursor、Claude Code、Codex 一起用吗?

能。在它们自己的 setup / cleanup 脚本或外层 wrapper 里调用 oberth;引擎不安装 hooks、不改它们的配置。配方见页脚“接入工具”。

给下一份代码,一个泊位。

引擎、macOS 客户端与 coding agent skill 各自发版,共用同一条事实链。