服务起没起来,不用再猜。
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
四个 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
边界写在前面。
它有图形界面吗?
界面是独立的 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、不改它们的配置。配方见页脚“接入工具”。