- What is OpenProse?
- OpenProse is a declarative language for standing AI work. Programs are Markdown contracts (*.prose.md) that declare what should stay true; the system works out how much model work it takes to keep it that way. It installs as a skill, so any Prose Complete agent can author and run contracts, and we ship a deterministic harness we recommend for running them.
- How is this a VM?
- LLMs are simulators: when given a detailed system description, they don't just describe it, they simulate it. The prose.md spec describes a VM with enough fidelity that reading it induces simulation. But simulation with sufficient fidelity is implementation: each session spawns a real subagent, outputs are real artifacts. The simulation is the execution.
- How is the managed cloud different from the open-source version?
- The open source version is the language: install as a skill, write .md programs, run them in Claude Code, Codex, OpenCode, Amp, or any "Prose Complete" harness. Free, MIT-licensed. The managed cloud runs those same programs on our infrastructure: on a schedule, on events, with durable traces, signed receipts, and guarded trigger endpoints. Cloud is early access today. You write programs with the OSS; request access to run them at scale without you in the loop.
- How do I install it?
- Run: npx skills add openprose/prose. This installs the OpenProse skill in your AI coding assistant. No other dependencies required.
- What systems support it?
- Claude Code, OpenCode, Amp, Codex, or any other "Prose Complete" harness. The language defines an abstract host interface: any "Prose Complete" harness that supports file IO and subagent spawning can execute Prose programs.
- Does this lock me into Claude?
- No. OpenProse programs are framework-agnostic: the language defines an abstract host interface (spawn_session, read_file, write_file, ask_user) that any Prose Complete harness implements. A program written for Claude Code runs on Codex, OpenCode, or Amp without modification. Declarative programs get cheaper and smarter as models improve; you don't refactor every time the landscape shifts.
- What are contracts?
- Contracts are the declarations in a *.prose.md file. A responsibility declares ### Requires (what it subscribes to) and ### Maintains (the truth it keeps); a function declares ### Parameters and ### Returns. They serve as types for AI programs, and Forme reads them at compile time to wire the topology.
- What is Forme?
- Forme is the compile phase. It semantically matches each ### Requires to the ### Maintains that satisfies it and emits the wired topology the runtime follows. Intelligent at compile, dumb at run: the model work happens once, ahead of time, not on every execution.
- Why Markdown, not YAML or a custom .prose syntax?
- Human understanding is the bottleneck. YAML is precise but alien. A custom syntax needs a parser and fights the model's training. Markdown is what your team already writes, what the model already reads, and what already diffs, reviews, and documents itself in every tool you use. OpenProse structures Markdown with contracts; it doesn't replace the medium.
- Why not just plain English?
- English is already an agent framework; we're structuring it, not replacing it. Plain English doesn't distinguish sequential from parallel, doesn't specify retry counts, doesn't scope variables. OpenProse uses English exactly where ambiguity is a feature, and structure everywhere else.
- How is this different from SKILL.md or AGENTS.md?
- Same substrate: Markdown. Different purpose. Anthropic's SKILL.md packages a single capability for a model; an AGENTS.md gives agents instructions for working in a repository. An OpenProse program specifies a composition: responsibilities wired together by contract, each with declared inputs, the truth it maintains, and invariants. OpenProse doesn't replace SKILL.md; the language itself installs as a skill.
- Why not LangChain, CrewAI, or AutoGen?
- Those are libraries that orchestrate agents from outside. OpenProse runs inside the agent session: the session itself is the runtime. This means zero external dependencies and portability across any AI assistant.
- How does this compare to BAML, DSPy, or similar?
- Those require a harness outside the model to execute orchestration. OpenProse pushes the orchestration down into the model itself: your harness is the runtime, your Markdown is the program. Different layer of the stack.
- How does a team share and version OpenProse programs?
- Programs are Markdown files: version them in git like any other source. Dependencies resolve git-natively by host/owner/repo/path ref, pinned in a prose.lock, and prose install clones them into a local deps/ cache. Runtime still reads pinned Markdown snapshots from disk, so review remains reading diffs and lockfiles, not trusting a hidden service.
- What happens when a Prose program fails?
- Every run writes a durable trace under .agents/prose/runs/{id}/: the compiled topology, snapshots of the program and its sources, workspace artifacts, declared bindings, and a running vm.log.md. Responsibilities also persist a world-model and a signed receipt ledger. Debugging is diffing those files. A responsibility or function can declare ### Strategies for judgment calls and edge cases and ### Invariants for what must hold. Tests (kind: test) are .prose.md files with fixtures and natural-language expectations.
- Is OpenProse deterministic?
- The language isn't deterministic; it's unambiguous. A capable model reading an unambiguous contract implements the requested call flow faithfully, and the language never adds fallbacks or type systems to replace the model's judgment. Determinism lives in the harness: its reconciler decides skip or render, records receipts, and runs exactly what the contract declared, without ever deciding meaning itself.