Coordination language for AI agents

Write the process down as code.

When several agents hand work to each other — with review gates, retries, and human approval in the middle — you want the process written as code that can run again, and a durable record of what actually happened. WhippleScript is that language.

Pre-1.0 · Apache-2.0 · Rust runtime

ralph.whip
@service
workflow Ralph

agent ralph {
  provider fixture
  profile "repo-writer"
  capacity 1
}

rule begin
  when started
  when ralph is available
=> {
  tell ralph "Do one small useful thing,
       then update the todo list."
}

rule again
  when ralph completed turn
  when ralph is available
=> {
  tell ralph "Do one small useful thing,
       then update the todo list."
}
The core idea

Rules decide. Effects do.

The two concerns are kept separate — so policy stays deterministic and every side effect is a durable, replayable event.

Rules decide

Deterministic policy: what happens next, given the current facts. No I/O, no model calls — the same facts always produce the same decision, and check proves your workflow can always reach complete or fail.

Effects do

Agent turns, typed model decisions, human-review requests, and child workflows are durable effects — executed by workers through providers, with every result recorded as an event you can inspect and replay.

What you get

A workflow you can trust and replay

Typed facts

Declare the facts your process reasons over. The compiler checks reads and writes before anything runs.

Agents & providers

Bind agents to providers and profiles with capacity limits. Swap a real model for the deterministic fixture provider to test.

Durable event store

Every event, fact, and provider run is recorded in an inspectable SQLite store — the process, written down.

Review gates

Human approval and typed decisions are first-class effects, not bolted-on glue between chat transcripts.

Replayable

Deterministic rules over a recorded log mean a run can be explained, resumed, and run again.

One CLI

whip check, dev, and doctor — parse, type-check, run against fixtures, and inspect, in minutes.

Why "WhippleScript"?

A whippletree is the swinging bar on a harness that spreads a single pull across several loads — and balances them as they shift. This does the same for work: one intent, distributed across agents, kept in balance and on the record.