Every repo · every agent · one command
Know what's going on in every repo.
With agents working across dozens of repositories, nobody knows what's uncommitted, what's unpushed, or whether an agent could wreck a default branch. repothing is a CLI that answers all of it, and the place every git chore ends up.
Act I
By hand, across every repo.
Three agents worked overnight across a couple of dozen repositories. Before you trust any of it, you need to know what they left behind.
01 · What changed?
A loop, and a lot of reading.
git status in every folder, then reading down a wall of paths to spot which repos have something in them.
02 · Is it pushed?
Then, is any of it pushed?
A clean folder isn't a safe one. Commits that were never pushed, on a branch an agent made at 3am, live on one disk.
03 · Could it break main?
Then, could an agent break main?
An agent's credential is yours, so it can force-push or delete anything you can. Protection is a settings page, one repository at a time.
04 · What needs me?
Then, which pull requests need you?
One list per repository, and working out for each one whether it's waiting on you, on CI, or on the agent that opened it.
That was four repositories, of twenty-two.
- commands
- 5
- repositories checked by hand
- 6
- things you'd have missed
- 3
- protected from the agents
- 1
Here's the same morning, with repothing.
Act II
The repothing way.
One CLI, one command per chore. These are the real commands and the real shape of what they print.
01 · check
Everything unsaved, in one table.
Every repository under a root: branch, unpushed commits, uncommitted and untracked files, and why it needs you. It exits non-zero when anything does, so it can run as a watchdog.
02 · lock
Every repo, protected from its agents.
The hardening is declared once: no force pushes and no deletions on the default branch or tags, and changes land as pull requests. lock dry-runs by default and says plainly when it can't.
03 · prs
The review queue, across everything.
Every open pull request in one list, ordered by what needs you first, and a flag when one branch carries two of them. It never merges or approves anything.
04 · And the next chore
Where every git chore ends up.
It's a prototype, and it grows the same way: each chore that's tedious or easy to get wrong by clicking becomes one more boring, dry-run-first command.
Act III
How it holds up.
Three habits keep a tool like this safe to run across everything you own.
-
1
Dry-run by default
Anything that changes something reports first and acts only with
--execute. Read-only commands stay read-only. -
2
A watchdog, not a chore
checkexits non-zero when work is at risk, so it can run on a timer and complain, instead of waiting for you to remember it. -
3
Honest about limits
Where the plan or the platform refuses, it says "cannot" and why. A repository the policy covers but can't protect is the finding, not a footnote.
| Question | By hand | repothing |
|---|---|---|
| What's uncommitted or unpushed? | a loop and a lot of reading | check |
| Can an agent break main? | a settings page per repo | lock |
| What needs my review? | a list per repo | prs |
| A new repository | starts unprotected | covered on the next lock |
Running agents across your repos?
Tell me which chores eat your mornings. repothing is where they go.