Repository navigation
v0.13.0
dotbrain 0.13.0 brings four more agent runtimes Hermes, OpenCode, Pi, and Cursor and reworks how dotbrain decides which runtimes a machine and a project get. It adds dotbrain detach to remove dotbrain from a runtime, and runtime profiles so global skills and subagents reach a second Claude Code or Codex home.
Upgrade
- Update the CLI and the plugin to 0.13.0 as described in Staying Current.
- Run
dotbrain bootstrap, thendotbrain refresh --all. - Read the breaking changes below, especially if your projects have no
agents:line.
Breaking changes
- Projects without
agents:now follow the machine. A project with noagents:list in itsproject.yamlused to get Claude Code and Codex unconditionally. It now gets the runtimes set up on the machine where you runrefresh: Claude Code and Codex when their CLI is onPATH; Hermes, OpenCode, Pi, and Cursor when dotbrain is set up for them. The same syncedproject.yamlcan therefore wire different runtimes on different machines. To keep the old behavior, setagents: [claude, codex]. An explicit list is used exactly as written, and existing lists are never changed. - Refresh no longer prunes a project's agent workspace whose runtime is not selected. It leaves the folder and its links alone and warns that dotbrain will not link project skills there. Use
dotbrain unwireto remove a checkout's wiring. - Typer 0.26 or newer is required. Typer 0.13 to 0.25 crash when rendering
--helpwith current Click. Installs pinned to an older Typer must upgrade.
New runtimes
dotbrain now delivers its skills and session hooks to Hermes, OpenCode, Pi, and the Cursor CLI, alongside Claude Code and Codex. Each runtime's limits, set-up, update, and removal steps are in the getting-started guide. dotbrain ships no subagents for these runtimes; in run-execution they work as the lead.
First run sets up every working runtime
On a machine's first dotbrain bootstrap, dotbrain finds Hermes, OpenCode, Pi, and Cursor, checks that each one's command actually runs, and sets up the ones that do. In a terminal it lists them and asks once ([Y/n]); without a terminal (install scripts, agents, automation) it sets them up and tells you how to undo it. A runtime that is on PATH but does not run is skipped. Later runs never set up a newly installed runtime on their own; they print the dotbrain bootstrap --runtime <name> command for it. A second machine that clones your private home gets its own first run.
dotbrain detach
dotbrain detach --runtime <name|all> removes dotbrain's own machine-wide delivery from a runtime: the plugin or extension copy, global skill links, and Cursor's hook entries. For Claude Code and Codex it removes the global skill links and prints how to uninstall the marketplace plugin. Detaching opts that runtime out on this machine only; later bootstraps leave it alone until you run dotbrain bootstrap --runtime <name> again. "Detach" now means only this command; unwire removes a checkout's wiring.
Runtime profiles for global skills and subagents
skills/skills.yaml accepts profiles:, a list of extra Claude Code or Codex homes such as ~/.claude-work. Global skills and subagents link into each runtime's default home and every listed profile; a profile missing on a machine is skipped. Existing targets: entries keep working: one equal to the default is ignored, and a custom one is read as a profile with a notice to move it.
Safety
No machine-wide write or delete from bootstrap or detach lands inside a wired project checkout, including through a linked folder below a runtime's home. A refused destination is reported and the other runtimes continue.
Fixes
dotbrain refresh --allskips, instead of failing, projects whose checkout lives on another machine.dotbrain doctor --allno longer expects runtime delivery for projects whose checkout is not on this machine.dotbrain doctorno longer suggests deleting a duplicate skill inside Claude Code's synced account-skills folder; it names the account as the source to change.dotbrain doctorin a project notes when the project declares a runtime that is not set up on this machine.
Changelog
⚠ BREAKING CHANGES
- runtimes: Projects without agents now follow machine setup. Set agents: [claude, codex] to retain the previous runtime selection. Refresh also preserves undeclared workspaces instead of pruning them.
Features
- agents: deliver global subagents to runtime profiles (#53) (60b05e1)
- bootstrap: set up every working runtime on a machine's first run (#55) (a61215b)
- cli: detach dotbrain's machine-wide delivery from a runtime (#54) (bd5df2d)
- cursor: deliver skills and hooks to Cursor CLI (#46) (da024f4)
- deliver skills and hooks to Hermes through a shared runtime description (#41) (d94c532)
- deliver skills and hooks to OpenCode (#42) (0cda5d4)
- pi: deliver dotbrain skills and hooks to Pi (#44) (900749c)
- runtimes: follow machine setup for undeclared projects (#50) (a8e91cd)
- skills: link global skills into runtime profiles (#52) (adcb5a4)
Bug Fixes
- refresh: skip checkouts on another machine in --all (3de1f09)
- housekeeping fixes for doctor, refresh, dependencies, and tests (#49) (d6c865c)
- stop the hook tests opening console windows on Windows (#51) (64dc037)
Documentation
- stop tying Hermes, OpenCode, and Pi to one operating system (479a8e9)
Full changelog: v0.12.0...v0.13.0