View on GitHub

Workcell

A FIFO queue for the Macs, phones, GPUs, and rigs that coding agents share.

What’s it for?

Agents are easy to multiply. Hardware is not. Two builds can target the same Mac; two tests can reset the same phone; two jobs can claim the same GPU. One command can change the resource underneath another, and a green check may belong to the wrong run.

Workcell gives each resource a first-in, first-out queue. One command owns it. Callers using --wait line up in order; callers without it receive a busy result immediately. When the owner exits, the next waiting command starts automatically. Jobs for other resources keep moving.

Use it only for a named resource that concurrent commands can corrupt, reset, replace, or validate against the wrong state. A project wrapper should own the keys. Workcell rejects same-key recursion and inverted nested acquisition instead of waiting forever.

Resource queue example

Pause the queue example to read a state, or restart it and announce the release and automatic handoff.

Agent A is running. Agents B and C are waiting in FIFO order. Agent D is running on a different resource.

Three agents share one Mac in FIFO order. A GPU job runs at the same time.

Install and use

curl -fsSL https://workcell-137.pages.dev/install.sh | sh

or tell your agent

install https://workcell-137.pages.dev/llms.txt

Prefer the project wrapper. For direct use with an established resource key:

workcell run macos-xcode --wait --json -- xcodebuild test
  • macos-xcode is the resource key.Matching keys take turns; different keys run independently.
  • --wait waits in line until the command can run.Omit it to return immediately when the resource is busy.
  • --json returns structured output.Includes the owner, queue position, log path, and a command for waiting.