Tool · Started Sep 2026
Grimoire
A desktop app for running several coding agents at once, each with a brief, a budget, and a leash.
- Status
- BUILDINGI'm building it now.
- Role
- Designer, developer
- Stack
- Tauri, Rust, React, TypeScript, xterm.js, PixiJS

Grimoire is a desktop app I'm building for working with several coding agents at once. It wraps real CLI agents like Claude Code in their own terminals and gives each one a name, a brief, a budget, and a workspace. Nothing an agent does outside its workspace happens until I approve it by hand, and that rule is enforced in Rust, not asked for nicely in a prompt. It runs locally for one person, with no accounts and no telemetry.
On this page
What it is
A study for working with several coding agents at once. Each agent is a familiar: a markdown file with its instructions and its budget in it. Drop a file in and a familiar appears, edit it and the change arrives without a restart, and break it and it tells you what's wrong instead of vanishing. You give one a commission, it queues, and when you summon it a real agent CLI starts in its own terminal with that brief.
It's a local app for one person. There are no accounts, no telemetry, and no network calls of its own, only whatever the agent CLIs make themselves.
The seal
A familiar stops before every tool call, and if its file doesn't already allow what it's about to do, it waits for my answer. It really waits, blocked on a local socket, instead of being asked to behave in a prompt. Deleting anything outside its workspace, force-pushing, and touching anything with .env, .ssh, credentials, or .git/config in its path always ask, at every autonomy level, because that list lives in code. I've tested a brief that tells a familiar to ignore the seal against a live engine, and it gets nowhere.
Nothing runs away
Every commission is metered on tokens, turns, and minutes. At 80% of whichever budget is tightest, the familiar is told to wrap up. At the line, its file decides whether it keeps going, stops and asks for more, or gets stopped. Separately, and deaf to what the file says, anything past two hundred tool calls or past the spend cap is stopped no matter what. A familiar that's gone quiet for ten minutes gets flagged for me to look at, and never killed on my behalf.
Work that happens without you
A standing ward is a schedule, a prompt, and a familiar: a morning brief, a weekly tidy, a nightly check. It fires with the window closed, because closing the window doesn't quit. Grimoire sits in the menu bar and the scheduler keeps ticking.

Where it's at
Phase 7 of 10. There are preview builds for Apple Silicon and Intel Macs and for Windows, unsigned for now. The screens here come from its browser preview, which runs the real interface against sample familiars.
More pictures

Questions about this one? Email me.