← Home
ProjectPersonal tool · 2026

RomainOS Command Center

An agent loop that proposes maintenance work on my repositories and is allowed to merge almost none of it.

2 / 282candidate actions auto-merged; 208 went through human review
ElectronReact 19SQLiteAnthropic SDKmacOS
The Command Center home screen: an "Autopilot armed, 07:00" line reporting 0 merged, 2 in review and 0 failed on the last run, a kill-switch button on the right, then the queue of items to handle where each agent proposal carries its risk level and its approve and reject buttons.
01

Context

I run several projects in parallel, plus an Obsidian vault. Every morning, the question that costs time is which of the repositories needs me.

02

Write access

An agent that can open a repository, propose a fix and merge it is easy to build. The hard part is letting it run: an agent that gets it wrong while holding write access damages work, and nobody notices until the following week.

03

The review queue

The Command Center runs locally, with no server and no public URL. It scans the monitored repositories and the Obsidian vault, ranks them by an attention score, and routes every agent-proposed action into a review queue with gates, an audit log and a kill switch. Nearly all of them stop at human review, and everything lands in the log.

Autonomy is scoped in policy to the Command Center’s own repository. Every other monitored repository is proposal-only, so a bad agent decision can only damage my own tooling. The degraded path is stated outright: every failure falls back to review, never to merge.

04

Seven weeks of logs

Running. 59 autopilot runs, one of which failed. The rest of the queue I handled by hand, one proposal at a time.

05

Why I capped it

I built the autonomous loop, then stopped it from doing almost anything. What is allowed through without me is a short, closed list: documentation drift, lint errors (three at most), patch or minor dependency updates (two at most). Everything else waits.

The logs keep every decision, line by line, which makes that restraint checkable without taking my word for it.

Highlights

  • 41 proposals rejected and 37 approved out of the 89 queued
  • A hard cap of 5 actions per run, 71 deferred over seven weeks
  • Kill switch checked on 4,070 executions, per the audit log
The takeaway

Every failure falls back to review, never to merge. It is written in the policy and checkable in the log: 2 auto-merges out of 282 candidate actions.

More work