Frizz

Frizz

An opinionated agent console for extreme productivity.

Frizz runs many Claude Code and Codex agents at once from one browser tab. Every agent that needs you becomes a card in one queue.

$ npx frizz
The Frizz board: the project rail down the left, the composer and the queue of threads beside it, and on the right a card where an agent asks a question with lettered options, with its snooze clock and done check in the card's header.

Frizz is for you if

The queue

A worker runs until it reaches something only you can settle, then asks a question with lettered options. One keystroke answers it. Nothing shows up just to be dismissed.

A question card: 'Should the settings store use SQLite or a JSON file?' with two lettered options, A tagged RECOMMENDED, and a row for typing something else.

Projects

Every directory you run it in becomes a project with its own board, all on one server. The home page lists them, and the rail down the left switches between them.

The Frizz home page: a rail of project icons down the left, and four project cards with home-relative paths, plus an Add a project card.

Goal

Give a thread a standing goal. Frizz sends it as a prompt every time the thread rests, on a clock you set, or both, until you switch it off or the agent says it is done.

The goal panel open above a queue card's prompt box: a goal saying to keep going until the test suite is green, sent at every rest and every 30 minutes.

Snooze

Park a card for an hour, until tomorrow morning, or until a date you pick. Attach a follow-up prompt and the thread wakes up already working on it.

The snooze menu open from the alarm clock in a queue card's header, offering 1 hour, tomorrow at 9am, 1 day, 3 days, 1 week, and a custom time and prompt.

GitHub

Pick issues and pull requests from the composer, and each becomes its own thread. Workers read issues, diffs, and CI on their own. They never comment, label, or merge unless you ask.

The GitHub picker listing open issues from colinhacks/zod, three of them checked.

What it is not

Remote access

Frizz binds 127.0.0.1. To reach a board from a phone or another machine, press R in the terminal running it and pick how:

  Reach this board from anywhere

  ❯ frizz.sh name
    Cloudflare Tunnel
    Tailscale
    Something else
    Off                 (current)

The walkthrough checks what each one needs before it accepts your answer, and the choice is remembered, so a plain npx frizz serves it from then on.

Whichever you pick, Frizz does the authenticating — a tunnel or proxy only adds TLS and a hostname. Every request and every socket has to carry a session, and a device that has not redeemed a single-use sign-in link is refused no matter what sits in front. Press L for a fresh link. npx frizz --sessions lists the devices holding one; --sign-out revokes a device you no longer have.

Docs