targets main
GitHub-native merge movement
Keep the whole
convoy moving.
Caravan is a deterministic merge queue for people and agents. It turns pull-request topology into a safe, visible chain—without inventing another database.
- Source of truth
- GitHub
- Queue state
- PR topology
- Agent surface
- CLI · JSON · MCP
HEAD IS CLEAR → ROLL
One chain. Exact evidence.
No mystery state.
01 / The topology is the queue
Nothing hiding
behind GitHub.
A caravan is simply a linear chain of open pull requests. Every member carries the caravan label; each PR targets the branch ahead of it. The head alone targets the default branch and holds squash auto-merge.
targets feature/42
targets feature/43
02 / The operating loop
Mechanical work rolls.
Judgment stops.
Every tick rediscovers GitHub state. Caravan advances what it can prove, then returns a typed, resumable decision whenever semantics need a person or agent.
- 01
Discover
Read branches, labels, checks, bases, and exact revisions fresh from GitHub.
- 02
Prove
Validate graph shape, mechanical compatibility, CI, and cross-convoy safety.
- 03
Move
Keep auto-merge on the head, advance merged chains, and preserve ordering.
- 04
Hand off judgment
Conflict or failed CI? Return exact evidence and safe next commands—never guess.
cara loop --once --json03 / Evidence over optimism
Safe by construction.
Legible by default.
Mechanical compatibility
Non-mutating merge proofs use exact head and base revisions. No history rewrite just to test a theory.
Typed decisions
Human output stays concise while JSON and MCP receive stable errors, evidence, and resumable commands.
Idempotent recovery
Interrupted operations resume from rediscovered GitHub state—not a fragile local cursor.
Canonical events
A bounded, secret-free journal records transitions and hook receipts in shared Git metadata.
Three equal surfaces
The human CLI, stable JSON envelopes, and MCP tools all route through one typed library path.
Force is still proof
Known CI failures may be accepted, but conflicts, stale revisions, and permissions are never bypassed.
04 / Command map
From first PR
to open road.
cara checkProve the current PR can travel.
cara newLead a convoy—or cara join a tail.
cara syncAdvance safe work and expose decisions.
cara statusSee the entire fleet and its evidence.
Built for agent traffic
Caravan ×
Cacophony
Caravan owns bounded GitHub queue mechanics. Cacophony listens to typed hooks, sends the right specialist to a decision point, and schedules another sync. Authority stays crisp: Caravan never pretends to be the agent runtime.
Explore Cacophonyhooks:
sync_failed:
command: ./scripts/dispatch-agent
timeout_secs: 30
blocking: false
# exact evidence enters on stdin
# the next tick starts fresh
05 / Join the convoy
Ready to roll?
Build from source today. Release archives include checksums and support bounded self-update on Linux and Apple silicon.
git clone https://github.com/harryaskham/caravan.gitcd caravan && nix developcargo build --release