Your terminal wasn't built for agents. Until now.
A native macOS command center for running AI coding agents in parallel.
Download
Β·
Watch Demo
Β·
Website
Β·
brew install --cask onevcat/tap/prowl
Prefer to learn the agentic way instead of scrolling? Hand this prompt to your coding agent (Claude Code, Codex, β¦) or any AI assistant β it reads Prowl's full documentation and gives you a tailored introduction:
Read Prowl's documentation and introduce it to me.
Prowl is a native macOS command center for running many AI coding agents in parallel. Its full manual lives here:
https://raw.githubusercontent.com/onevcat/Prowl/refs/heads/main/docs/README.md
Fetch that index and read it (it links to an overview and per-feature manuals in the same docs/ folder β read the relevant ones). Then:
1. Briefly tell me what Prowl is and why it's worth my time.
2. Based on what you know about how I work, suggest 3β4 Prowl features that would genuinely help me, each with a one-line "how".
3. Then answer my follow-up questions, consulting the matching doc.
Reply in my preferred language.
Already installed Prowl? Your agent can read the same docs straight from the app bundle β choose Help β Ask Agent About Prowl in the app to copy a version localized to your language.
You're not just typing commands anymore β you're orchestrating Claude Code, Codex, and friends across repos, branches, and ideas. Prowl is the terminal built for that.
Three agents running, one just finished β where? Canvas gives you a bird's-eye view where every card is a live, interactive terminal, not a screenshot. Finished tasks light up the moment they complete, and you can broadcast a single command to every agent at once.
Every worktree becomes a vertical spine stacked on the side, with its tabs nested underneath. Flip through your stack from the keyboard β βββ / βββ cycles books Β· βββ / βββ cycles tabs β so when you've got six agents in flight, you triage them one keystroke at a time, never losing your place.
Pin swift build, npm test, or claude -p "review this diff" to a button and bind it to βB. Set it up once per repo and stop typing the same thing every day. Pair with claude -p / codex exec to turn your terminal into a daily AI-powered assistant.
Your agent needs to run a test, read the output, and decide what's next. Prowl ships with a prowl CLI so both you and your agents can control the terminal programmatically:
prowl list # discover panes & their status
prowl send "npm test" --capture # execute & capture output in one shot
prowl read # read screen content on demand
prowl key <keystroke> # send keystrokes programmaticallyTeach your agent when and how to drive Prowl by installing the bundled prowl-cli skill with skills: npx skills add onevcat/Prowl --skill prowl-cli.
- Full Native β powered by libghostty. No Electron, no web views. CJK-safe out of the box.
- Vertical Tabs β repos, branches, and worktrees in a sidebar. Never lose context.
- Git Worktree first-class β spin up a parallel branch for a new agent in one click.
- Agent Reminder β macOS notification the moment an agent finishes.
- Auto-updates β Sparkle keeps you on the latest release.
Download: Prowl.dmg (notarized)
Homebrew:
brew install --cask onevcat/tap/prowlmacOS 26.0+
A personal fork of Supacode, built on The Composable Architecture and libghostty, maintained for daily use. Requires mise for dev tooling.
make build-ghostty-xcframework # Build GhosttyKit from Zig source
make build-app # Build the macOS app (Debug)
make run-app # Build, launch, and stream logs
make install-dev-build # Build Debug and install to /Applications
make install-release # Build Release, sign locally, install to /Applicationsmake check # Format changed Swift files, then run swift-format lint + SwiftLint
make format-changed # Format changed Swift files only
make format # Full-tree Swift format cleanup
make lint # SwiftLint only
make test # Run app/unit tests
make log-stream # Stream app logs (subsystem: com.onevcat.prowl)make build-cli # Build `prowl` CLI via SwiftPM
make test-cli-smoke # Quick CLI smoke checks
make test-cli-integration # End-to-end CLI socket integration testsmake ensure-ghostty # Fast SHA check (auto-run by build-app/test)
make sync-ghostty # Force rebuild + clear DerivedDataDay-to-day releases are driven by the release Claude Code skill defined in .claude/skills/release/SKILL.md. It wraps two scripts you can also run directly:
./doc-onevcat/scripts/release-notes.sh <VERSION> # Generate user-facing notes β build/release-notes.md
./doc-onevcat/scripts/release.sh <VERSION> # Bump, build, sign, notarize, DMG, appcast, GitHub Release, Prowl-Site updateThe skill walks the flow interactively: verify branch & tree state, confirm the version, review the generated notes, then run release.sh. All fork releases are notarized.