# How we run a crew of AI agents on one subscription without ever hitting the wall

A pace line for a flat-rate AI plan: launch while you're under it, wait when you're over, and never let the five-hour window stop work mid-task. The rule our crew runs on every launch, how it was tuned on real incidents, and the free tool that applies it.

*Figure: Four agents queue at a gate. Beside it stand two tubes: a tall one for the week with a marker labelled pace line, and a short one for the five-hour window with a red cap. The first agent asks, the gate shows LAUNCH, the arm lifts and it goes through to work, and its work drops into both tubes. The second does the same, and the week's level rises above the pace line. The third gets WAIT and stands. A few hours later the pace line has risen past the level and the five-hour tube has emptied, so the gate shows LAUNCH again and the third agent goes through.* Every agent asks before it launches. Under the pace line the gate says LAUNCH; over it, WAIT until the line catches up. The levels are illustrative.

Every morning a crew of named AI agents starts work on this machine: a lead, writers, builders, reviewers, researchers. They share one flat-rate Claude plan. Before any of them starts another agent, it asks one question and gets one word back: LAUNCH or WAIT.

![A terminal showing a real gate reading: LAUNCH; week 62% used against a pace line of 65.3%, 73% of the week gone; the five-hour window at 4% of a 70% cap; burn 0.67% per hour against a sustainable 0.61%.](/images/paceline/gate-2026-10-18.png)
*A real reading from our crew's gate at 12:50 on 2026-10-18. paceline is its public version.*

A flat plan has two limits, and they fail in opposite ways. Hit the five-hour window and every agent stops mid-task. Leave the week underused and the hours you paid for vanish at the reset. The gate holds both at once. How do you pace a week you can't see ahead? Why does the obvious rule break every Monday? And how many agents can one plan really carry?

## The pace line

Picture a line that starts at zero when the weekly allowance resets and climbs evenly to 90% by the next reset. Over the line, the gate says WAIT until the line catches up. Under it, the plan is going unused, so it says LAUNCH.

The five-hour window gets a hard cap at 70%. An agent that hits the real limit stops in the middle of its work, so the gate stops launching well before that.

The gate also measures the crew's burn rate over the last few hours and turns it into a capacity figure: how many agents the week can afford to run continuously. In the reading above, the crew was burning slightly faster than the week could sustain, and the gate still said LAUNCH, because the week was under its line.

*Figure: A clock shuttle slides along a rail marked with the seven days of the week. A cord tied to it runs over three pulleys and lifts a marker, the pace line, up a tall tube that holds the week's usage, so the line rises evenly as time passes. Usage pours into the tube in lumps. Each time a lump lifts it over the line, a word above flips from LAUNCH to WAIT, and back to LAUNCH once the line climbs past. It stops at the real reading: 73% of the week gone, the line at 65.3%, 62% used, LAUNCH. A small tube for the five-hour window fills and empties beside it, always under its red cap at 70%.* The pace line is pulled by the clock, not by usage, and reaches 90% at the next reset. The end is our real reading from 12:50 today. The lumps along the way are illustrative.

## Tuned on real incidents

At 12:12 one Saturday morning, an agent started a batch of 943 requests. It used 45 points of the five-hour window in one burst, from 3% to 48%, and put the week 7 points over its pace line, at 53% against 46%. The gate told every agent on the machine to wait until 1:56 that afternoon. The lesson went straight into the design: a loop that fans out calls runs the gate between batches, not only before it starts.

*Figure: Two panels, each with a hopper of 943 requests above two tubes: the five-hour window and the week. On the left, the agent asks the gate once, gets LAUNCH, and opens the valve. All 943 pour out in one stream while the gate still shows LAUNCH. The five-hour window goes from 3% to 48%, and the week ends at 53% used against a line of 46%. Then the gate says WAIT until 1:56 pm. On the right, the agent asks between batches. Two short batches go in, the week reaches its line, the next ask gets WAIT, and the rest of the requests stay in the hopper.* The real incident, left: the loop asked once and the 943 requests ate the five-hour window. The fix, right: ask between batches, so the gate can stop the loop partway. The right panel's levels are illustrative.

The first-day rule took two tries. Right after a reset the line sits near zero, so a few percent of use reads as "over" and the gate would hold everyone back for no reason. Mackenzie's first call:

> Yea, I guess let's update the global CLAUDE.md that for the first day after a reset, we ignore the weekly pace and follow the first 5-hour window's pace.
>
> Mackenzie, 2026-10-13 13:07

We set the exception to five hours. That afternoon an agent hit WAIT with four hours to go, and its cache only lasts an hour, so reloading its context would have cost more than the wait saved.

> thing is that 20:20 is like... 4 hours away. Your cache window is 1 hour. If I release you, there is so much context to load back in... so... can we revert that 5 hour rule to be 24 hours again <3
>
> Mackenzie, 2026-10-13 16:32

So for the first 24 hours after a reset, the gate follows only the five-hour cap.

*Figure: Two timelines of the first day after a weekly reset, each with an agent holding its work and an hourglass for its one-hour cache. Top, the first try: the gate ignores the pace line for 5 hours. When the clock passes 5 hours, the gate says WAIT with 4 hours to go, the hourglass runs out and the agent's pages fall: cache lost. Bottom, the second try: the exception runs 24 hours, the clock passes the 5 hour mark still inside it, the gate keeps saying LAUNCH and the agent keeps its work.* Mackenzie's two calls, a few hours apart on 2026-10-13. A 5 hour exception left an agent waiting 4 hours on a 1 hour cache; 24 hours holds.

## What this says about how we work

We run our own operations on agents every day, and we treat their costs as an engineering problem, not a bill to worry about. When a rule earns its place, we measure it on real incidents, tune it until it holds, and then publish it as a tool anyone can install. The same discipline goes into anything we build for someone else.

*Figure: The lab stands at a bench with a small model of the gate and slides it through a gauge labelled real incidents, with two lamps: 943 burst and first day. The first time, the burst lamp lights red and the model comes back. The lab adds a part, and on the next pass the burst lamp holds but the first-day lamp lights red. The lab adds another part. On the third pass both lamps hold, the model drops into a box labelled paceline, and the box slides to a second person at the other end: anyone can install it.* How we work: run the rule against real incidents, tune one thing at a time until every lamp holds, then give it away.

## Take it

paceline is free and MIT-licensed. It reads the usage figures Claude Code already passes to its status line, so setup is two steps:

```bash
cargo install --git https://github.com/mackenziebowes/paceline
```

```json
{ "statusLine": { "type": "command", "command": "paceline statusline" } }
```

Then give your lead agent one line: "Before you launch an agent, run `paceline gate`. On WAIT, don't launch." Exit codes make it easy to script (0 LAUNCH, 1 WAIT, 2 no fresh reading), and every default is a flag: the weekly target, the five-hour cap and the first-day window.

*Figure: A box drops onto empty ground: cargo install. It opens, and a gate rises out of it. A lead agent standing beside it asks paceline gate. The gate says LAUNCH, the arm lifts and a new agent appears past it. The lead asks again, the gate says WAIT, and nothing else starts.* Install it, then give your lead one line: ask paceline gate before every launch. The exit codes are 0 for LAUNCH, 1 for WAIT and 2 when there is no fresh reading.

If you run a crew of agents on one plan, I'd like to hear what your burn line says: mackenzie@mackenziebowes.com or [@_mackenziebowes](https://x.com/_mackenziebowes).

---

Published 2026-10-18. Web page: https://www.mackenziebowes.com/posts/how-we-run-a-crew-of-ai-agents-on-one-subscription
