Contract-first, reactive software for agent workflows.
Website | Docs | Agent Onboarding | Why / When | Examples | Stdlib | Company as Code | Skill Spec
npx skills add openprose/prose
OpenProse is a programming language for agent workflows.
Write .prose.md contracts with typed inputs, typed outputs, effects, access
rules, and optional execution blocks. OpenProse compiles them into IR, plans
the graph, compares it to prior runs, materializes durable run records through
the local graph VM, and packages the result for search, install, benchmarks,
and hosted execution.
Start Here
- Docs
- Why and When to Use OpenProse
- Public Surface
- Agent Onboarding
- Subagents and Private State
- Curated Examples
- Measurement Harness
- Runtime Confidence Gate
- HTML Diagrams
Try The CLI
The local-first CLI covers authoring, graph inspection, local execution, package checks, install, and runtime confidence:
bun run prose compile examples/north-star/company-signal-brief.prose.md
bun run prose plan examples/north-star/lead-program-designer.prose.md \
--input lead_profile='{"company":"Acme","pain":"manual agent handoffs"}' \
--input brand_context="OpenProse is React for agent outcomes." \
--target-output lead_program_plan
bun run prose graph examples/north-star/release-proposal-dry-run.prose.md \
--input release_candidate="v0.11.0"
bun run prose handoff examples/north-star/company-signal-brief.prose.md \
--input signal_notes="Customer teams want durable agent workflows." \
--input brand_context="OpenProse is React for agent outcomes."
bun run prose run examples/north-star/company-signal-brief.prose.md \
--input signal_notes="Customer teams want durable agent workflows." \
--input brand_context="OpenProse is React for agent outcomes." \
--output company_signal_brief="Hello from the local runtime."
bun run prose status .prose/runs
bun run prose trace .prose/runs/{run-id}
bun run prose package examples
bun run prose publish-check examples --strict
bun run prose install registry://openprose/@openprose/examples@0.1.0/company-signal-brief \
--catalog-root . \
--workspace-root /tmp/openprose-workspace
bun run measure:examples
bun run confidence:runtime
bun run smoke:live-pi
Single components can be exported as one-off handoffs:
bun run prose handoff examples/north-star/company-signal-brief.prose.md \
--input signal_notes="Customer teams want durable agent workflows." \
--input brand_context="OpenProse is React for agent outcomes."
A handoff is one component, one task, and no graph coordination. Reactive graphs run through Pi, with OpenProse coordinating one persisted node session at a time.
Inside a Pi node, openprose_subagent supports private child-session
delegation. Child sessions write under node-private state and return refs to
the parent; only the parent submits declared graph outputs.
Why OpenProse
Use OpenProse when an agent workflow starts to look like software:
- more than one step or role
- reusable enough to deserve a name
- sensitive enough to need effects or approvals
- big enough that provenance and debugging matter
- structured enough that selective recompute is worth it
OpenProse adds:
- a readable contract surface
- a deterministic IR
- typed ports for composition
- effect declarations for safe planning
- runs as universal materialization records
- package metadata for install/search/publish discipline
Runtime Path
.prose.md source
-> compile
-> Prose IR
-> plan / graph / manifest
-> Pi-backed graph VM run materialization
-> package metadata / install / publish-check / search
-> hosted run + graph + approval surfaces
The docs, examples, package system, local runner, and hosted platform all use this same path.
Repository Map
| Path | What it is |
|---|---|
docs/ |
guides for the language, runtime, and package model |
examples/ |
compact examples that exercise the runtime |
packages/std/ |
reusable primitives and standard-library components |
packages/co/ |
company-operating-system starter patterns |
skills/open-prose/ |
the OpenProse agent-skill router and onboarding surface |
rfcs/ |
the design record for the reactive OpenProse architecture |
Local Workflow
Install dependencies:
bun install
Typecheck and test:
bun run typecheck
bun run test
Try the examples:
bun run prose compile examples/north-star/company-signal-brief.prose.md
bun run prose plan examples/north-star/lead-program-designer.prose.md \
--input lead_profile='{"company":"Acme","pain":"manual agent handoffs"}' \
--input brand_context="OpenProse is React for agent outcomes." \
--target-output lead_program_plan
bun run prose graph examples/north-star/release-proposal-dry-run.prose.md \
--input release_candidate="v0.11.0"
Measure package health and reactive behavior:
bun run measure:examples
bun run confidence:runtime
bun run smoke:binary
bun run smoke:cold-start
bun run smoke:agent-onboarding
bun run evidence:launch
bun run smoke:live-pi
Build the distributable CLI:
bun run build:binary
./dist/prose help
The repository root package is marked private because it is the source
workspace, not the install artifact. Run it with bun run prose ... while
developing. The publishable package is generated in dist/ and contains the
compiled prose binary plus its own package metadata.
smoke:live-pi skips by default. Set OPENPROSE_LIVE_PI_SMOKE=1 and
Pi/OpenRouter credentials when you want opt-in model-backed evidence:
OPENPROSE_LIVE_PI_SMOKE=1 \
OPENPROSE_PI_API_KEY="$OPENROUTER_API_KEY" \
bun run smoke:live-pi -- --tier all --run-root .prose/live-pi-runs
Hosted Platform
The hosted platform uses the package, run, graph, approval, and artifact contracts in Public Surface.
Terms
By installing, you agree to the Privacy Policy and Terms of Service.