Zero runtime dependencies

taskflow

Declarative agent orchestration.

Describe multi-step coding-agent work as a DAG, verify it before a token is spent, and return only the final result to your context window.

review-changes.json
1{
2 "name": "review-changes",
3 "concurrency": 4,
4 "phases": [
5 {
6 "id": "discover",
7 "type": "agent",
8 "agent": "scout",
9 "output": "json",
10 "task": "List changed source files under src/. Output ONLY a JSON array of {path} objects."
11 },
12 {
13 "id": "review-each",
14 "type": "map",
15 "over": "{steps.discover.json}",
16 "as": "file",
17 "agent": "security-reviewer",
18 "dependsOn": ["discover"],
19 "task": "Review {file.path} for security risks. Return one paragraph."
20 },
21 {
22 "id": "summarize",
23 "type": "reduce",
24 "from": ["review-each"],
25 "agent": "writer",
26 "dependsOn": ["review-each"],
27 "final": true,
28 "task": "Combine these reviews into one prioritized risk summary."
29 }
30 ]
31}

A complete review flow: discover files, fan out reviews, then summarize.

From a JSON file to isolated subagents

Describe, verify, execute, and return — all in one pipeline.

Write a DAG

A single JSON file declares phases and dependencies.

Verify first

Static checks catch cycles and budget issues before any tokens are spent.

Fan out

Map, parallel, and tournament phases run isolated subagents.

Gate & reduce

Quality gates and reduce phases aggregate results.

Final output

Only the last phase returns to your host context.

By the numbers

4 hosts

Pi, Codex, Claude Code, OpenCode

10 phase types

agent, map, gate, reduce, and more

0 runtime deps

No production dependencies

Cross-session resume

Pick up where you left off

Built for real agent workflows

Declarative DAGs

Define phases, dependencies, and fan-out as data. The runtime turns your graph into isolated subagent calls.

Context Isolation

Intermediate transcripts stay inside the runtime. Only the final phase reaches your conversation.

Cross-Session Resume

Paused or failed runs pick up where they left off. Cached phases skip automatically on re-run.

Declarative vs imperative

Why declare your agent workflows as data instead of scripting them?

AspectDeclarativeImperative
Verifiable before tokens
DAG checked for cycles, dead ends, and budget before any model call.
Bugs surface at runtime, after you have already paid.
Context cost
Only the final output returns to your context.
Every transcript floods the host conversation.
Resume after failure
Cached phases auto-skip on re-run.
Start over from the beginning.
Reusability
Save, version, and call by name.
Copy-paste scripts between runs.

What early users say

We turned a 50-file security review from a context-window disaster into a 10-minute taskflow.

Platform Engineer, Series B startup

Cross-session resume alone saved us hours. A run dies at the summary step and we just continue it.

Staff Engineer, AI infrastructure

The tournament phase consistently beats our single-shot headline and release-note drafts.

Developer Advocate, open-source tooling

Ready to declare your first DAG?

Install on Pi or Codex and run a multi-phase workflow in minutes.