looptop
v0.1.1
Published
htop for autonomous engineering loops — a live terminal monitor + macOS menu-bar app
Maintainers
Readme
looptop
htop for autonomous engineering loops.
If you run self-hosted autonomous coding loops — launchd jobs that pull tickets,
build/test/verify, and merge green work on a schedule — looptop gives you a
live, at-a-glance view of every loop on your machine: health, accept-rate,
what's running, the last result, and the next run. Plus one-key pause / run.
It comes in two forms that share the same engine:
- a CLI with a live, full-screen TUI (this package), and
- a macOS menu-bar app (download at looptop.dev).
It is loop-agnostic: nothing is hardcoded. Loops are discovered from launchd, and any loop that follows the Loop Standard shows up automatically.
Install
CLI (no install)
bunx looptop # live TUI — the defaultOr install it globally:
bun add -g looptop
looptop # live TUINeeds Bun. The CLI is dependency-free and read-mostly.
Menu-bar app
Download the signed macOS app from looptop.dev. The
app can also install the looptop CLI onto your PATH from its menu.
Usage
looptop live TUI monitor (htop-style) — default
looptop top same as above (explicit)
looptop ls one-shot table of every loop
looptop status <slug> detail for one loop (recent runs, schedule, lock)
looptop tail <slug> follow that loop's log
looptop pause <slug> pause a loop
looptop resume <slug> resume a loop
looptop run <slug> [exec|maintenance] kick a run now
looptop help usageTUI keys
| Key | Action |
|-----|--------|
| ↑ / ↓ (k / j) | move selection |
| ↵ Enter (→ / ←) | expand / collapse the loop's recent history |
| + / - | show more / fewer history events |
| p | pause / resume selected loop |
| e | run exec now |
| m | run maintenance now |
| r | force refresh |
| q / Ctrl-C | quit |
The number of history events (default 8) is configurable with + / - live, or
via the LOOPTOP_HISTORY environment variable.
How it discovers loops
looptop reads the loops registered on your machine via the launchd convention
~/Library/LaunchAgents/ai.<slug>.loop.exec.plist, and each loop's state from
its ~/.<slug>/loop/ directory (state.json, ledger.jsonl) plus an optional
loop.json manifest (see the Loop Standard). No
configuration required — if your loops follow the convention, they show up.
License
See looptop.dev. The menu-bar app is a separate product.
