Cruce Saunders
  • Player card
  • Workshop
  • List
  • Contact
Cruce Saunders
  • Player card
  • Workshop
  • List
  • Contact

Crew and Jev

Sep–Oct 2026AI agentsPrivate, runs on my Mac

The full Crew dashboard: a 'Needs you 2' bar across the top, a blurred list of chats on the left, the session's agent scene in the middle and a task list with owner tags on the right.
The dashboard on my Mac. Other chats and my last message are blurred.
Back to the worldCrew and Jev
  • Player card
  • Workshop
  • List
  • Contact
  • Back to the world
  • Player card
  • Workshop
  • List
  • Contact

Crew and Jev

Crew is the system I built to run my AI agents: the chat I talk to acts as a front desk, and background agents do the work.

On every request, a fast decision model called Jev suggests how to handle it, the front desk sends the work to agents on the right model, rules in code keep it delegating, and a live dashboard shows every agent and everything waiting on me.

It's how I run several builds at once without losing track. Every build since October, this website included, has gone through it.

requests routed in its first 19 days
660660
background agents launched
553553
median time for Jev's routing call
0.35 s0.35 s
commits in the first five days
7777

I built a front desk for my AI agents

Most of what I build, I build by directing AI coding agents: I describe what I want, they write the code, and I review what comes back. By September 2026 I usually had several of those sessions open at once, and two things kept going wrong. The chat I was talking to would disappear into grunt work for minutes at a time, so I couldn't hand it my next idea. And with agents spread across projects, I lost track of who was doing what and what was waiting on me.

Crew fixes both. The chat I talk to becomes a front desk: it stays free to talk, decides how each request should be handled and hands the real work to background agents. It runs inside Claude Code and OpenAI's Codex, its rules now run in Cursor too, and a dashboard on my Mac shows all of it live.

Every request takes the same path

Before the front desk even sees my message, a hook, a small script that runs on every message, sends it to Jev, a small, fast decision model made by TypeSafe. Jev reads how big the work is, how clear, how risky and whether it splits into parallel pieces, and answers in about a third of a second with a default: handle it now, hand it off, plan first or ask me one question.

The front desk makes the final call and works out the specifics. Big or fuzzy work goes to a planner agent that writes a task list. Each task goes to a background agent on the cheapest model that can do it well, from fast, cheap models for lookups up to the strongest ones for hard judgment. Results come back with evidence, pass through checks, and I get a short reply.

How one request moves through Crew

MeFront deskPlanningBackground agentsChecksBack to meJevA fast decision model from TypeSafe. It weighs in at every step in about a third of a second, and the front desk makes the call.Task ledger and stop gateEvery task I give gets one owner. A stop hook won't let the chat end while a task sits unowned, and nothing closes without evidence.MeOne messageFront deskThe chat I talkto. It decides,delegates andstays freePlannerTurns big orfuzzy work into atask listAgents in parallelOwn files, one check each, nosub-agentsScreenshot pagesfastExplain a repostandardFix a tricky bugstrongIndependent buildCodexSummarize a loglocalChecksProof sized to the changeA screenshot or theaffected testsA reviewer for payments,logins and deploysstrongShort replyThe outcome, the evidence andthe one next stepNeeds youOnly realblockersLive dashboardEvery event, drawn liveEvery chat and agentEach task and its ownerThe Needs you barbig orunclearclear work: one brieftasksproofpassesfails: a specific fixblocked on something only I can giveRoute: answer, hand off, plan or ask, from scope,clarity, risk and split. At most three questionsreach me.A model tier per task, whatruns in parallel, and whetherthe plan is overbuiltWatches for drift, stalls and thewrong model, and weighs riskycommandsReview checkpoint: does the evidenceshow what I asked for?Is my objective done? Ifnot, back to work oncelogs every task I giveone owner per taskwaits on meshows every taskMeFront deskPlanningBackground agentsChecksBack to meJevA fast decision model from TypeSafe. It weighs inat every step in about a third of a second, andthe front desk makes the call.Task ledger and stop gateEvery task I give gets one owner. A stop hookwon't let the chat end while a task sits unowned,and nothing closes without evidence.Front desk: logs every task I giveAgents in parallel: one owner per taskNeeds you: waits on meLive dashboard: shows every taskMeOne messageNeeds youOnly realblockersFront deskThe chat I talk to. It decides,delegates and stays freePlannerTurns big or fuzzy work into a task listAgents in parallelOwn files, one check each, no sub-agentsScreenshot pagesfastExplain a repostandardFix a tricky bugstrongIndependent buildCodexSummarize a loglocalChecksProof sized to the changeA screenshot or the affected testsA reviewer for payments, logins anddeploysstrongShort replyThe outcome, the evidence and the onenext stepLive dashboardEvery event, drawn liveEvery chat and agentEach task and its ownerThe Needs you barbig or unclearclear work: one brieftasksproofpassesfails: a specific fixblocked on something onlyI can giveRoute: answer, hand off, plan or ask,from scope, clarity, risk and split. Atmost three questions reach me.A model tier per task, what runs inparallel, and whether the plan isoverbuiltWatches for drift, stalls and the wrongmodel, and weighs risky commandsReview checkpoint: does the evidenceshow what I asked for?Is my objective done? If not, back towork once
Badges show each agent's model: fast, standard, strong, OpenAI's Codex, or a local model on my Mac.Request pathSent backJevTask ledger and stop gate
  • Me: One message
  • Needs you: Only real blockers
  • Front desk: The chat I talk to. It decides, delegates and stays free
  • Planner: Turns big or fuzzy work into a task list
  • Agents in parallel: Own files, one check each, no sub-agents. Screenshot pages (fast); Explain a repo (standard); Fix a tricky bug (strong); Independent build (Codex); Summarize a log (local)
  • Checks: Proof sized to the change. A screenshot or the affected tests; A reviewer for payments, logins and deploys (strong)
  • Short reply: The outcome, the evidence and the one next step
  • Live dashboard: Every event, drawn live. Every chat and agent; Each task and its owner; The Needs you bar
  • Jev: A fast decision model from TypeSafe. It weighs in at every step in about a third of a second, and the front desk makes the call.
  • Jev at Front desk: Route: answer, hand off, plan or ask, from scope, clarity, risk and split. At most three questions reach me.
  • Jev at Planner: A model tier per task, what runs in parallel, and whether the plan is overbuilt
  • Jev at Agents in parallel: Watches for drift, stalls and the wrong model, and weighs risky commands
  • Jev at Checks: Review checkpoint: does the evidence show what I asked for?
  • Jev at Short reply: Is my objective done? If not, back to work once
  • Task ledger and stop gate: Every task I give gets one owner. A stop hook won't let the chat end while a task sits unowned, and nothing closes without evidence.
  • Task ledger and stop gate at Front desk: logs every task I give
  • Task ledger and stop gate at Agents in parallel: one owner per task
  • Task ledger and stop gate at Needs you: waits on me
  • Task ledger and stop gate at Live dashboard: shows every task
  • Me to Front desk
  • Front desk to Planner: big or unclear
  • Front desk to Agents in parallel: clear work: one brief
  • Planner to Agents in parallel: tasks
  • Agents in parallel to Checks: proof
  • Checks to Short reply: passes
  • Checks to Agents in parallel (sent back): fails: a specific fix
  • Agents in parallel to Needs you (sent back): blocked on something only I can give
  • Needs you to Me (sent back)

Jev advises at six points, and the front desk decides

Routing is only Jev's first call. When the front desk writes a plan, Jev suggests a model tier for each task, whether it can run in parallel and how to verify it, and flags plans that are overbuilt. While agents work, an audit watches for drift, stalls and models that are too weak or too strong, and speaks up only when it's confident. Before a risky shell command runs, a safety check weighs the harm against the chance I asked for it. Before a chat goes idle, a completion check asks whether my objective is actually done and sends the front desk back to work once if it isn't.

Each call costs a fraction of a cent. Jev only advises, so if it's ever down, Crew carries on without it.

Rules in code keep the front desk free

Telling a model to delegate isn't enough; left alone, it drifts back into doing the work itself. So Crew's rules live in hooks that run on every prompt and tool call, in milliseconds. On a hand-off turn, the front desk gets about four quick lookups to write a good brief, and then further work is refused until it launches an agent. Any turn gets one hard stop at eight tool calls. Agents never launch other agents. Workers run only on my Claude and ChatGPT subscriptions, never on metered API keys.

The rules grow from what goes wrong. After one agent killed processes by name and restarted Chrome, Slack and my other apps, killing by pattern became something the guard refuses every time.

One look shows me everything

Hooks write every prompt, tool call and agent result to one event log on my Mac, and a local dashboard draws it as it happens. A small adapter translates Claude Code's and Codex's events into one format, so the same rules and the same dashboard work in both, and a native Swift panel brings the dashboard up over my other windows with one shortcut. The dashboard at the top of this page is one session from a night I spent building this website; here is what each part of it does.

  1. One session in the Crew dashboard: a pixel-art figure labeled You, a main agent, and five worker agents, each with a name and a live status line such as 'Screenshotting levels in browser'.
    1

    Step 1: The request becomes a team

    I asked for a plan for this site. The front desk split it into 26 tasks and launched five agents at once: one curating my best photos, two reading my repos to explain my builds, one reviewing image crops and one screenshotting pages. Each agent is a small figure with a name taken from its brief and a live status line, and when one finishes it moves to a Finished shelf with its result and cost.

    My message to the front desk is blurred.

  2. The dashboard's task panel: a legend for done, in progress, not started, needs you and blocked, then this website's tasks, each tagged with the agent that owns it.
    2

    Step 2: Every task has one owner

    A tracker reads each message I send, splits it into separate asks and gives each one an owner, tagged on the task. Blocked tasks say what they're waiting on, so I can tell at a glance what's moving, what's done and what's stuck.

  3. The dashboard's Needs you bar with two items for the Crawft website rebuild: approve the preview and legal wording before deploying, and sign in to Crawft to capture the activity hour view.
    3

    Step 3: Only real blockers reach me

    A task becomes mine only when the AI can't move without me, like a login or a call on legal wording. Those land in the Needs you bar with one line that says exactly what to do, and the front desk tells me about each one once instead of repeating it every reply.

One session in the Crew dashboard: a pixel-art figure labeled You, a main agent, and five worker agents, each with a name and a live status line such as 'Screenshotting levels in browser'.

My message to the front desk is blurred.

The dashboard's task panel: a legend for done, in progress, not started, needs you and blocked, then this website's tasks, each tagged with the agent that owns it.
The dashboard's Needs you bar with two items for the Crawft website rebuild: approve the preview and legal wording before deploying, and sign in to Crawft to capture the activity hour view.

I run all my building through it

In its first 19 days Crew routed 660 of my requests across 95 chat sessions. It ran the work on Crawft's dashboards, the LiDAR-scanned replica of my school, the design of my Grok Bots company and this website.

When more of my work moved into Cursor, I carried the same rules over as a default workflow: every task I give goes into a ledger with an owner, and a stop hook won't let the agent end its turn while a task sits unowned or closes without evidence. On demand, a review skill called crew-tune reads the logs and brings me proposals backed by numbers, and nothing changes until I approve it.

The dashboard live, while agents work.

More builds

  • WebApex SATSep–Oct 2026
  • Mac appTaskGo!Feb–May 2026

Back to the workshop