Skip to content

OpenProse

OpenProse is a portable, markdown-first workflow format for orchestrating AI sessions. In CoderClaw it ships as a plugin that installs an OpenProse skill pack plus a /prose slash command. Programs live in .prose files and can spawn multiple sub-agents with explicit control flow.

Official site: https://www.prose.md

  • Multi-agent research + synthesis with explicit parallelism.
  • Repeatable approval-safe workflows (code review, incident triage, content pipelines).
  • Reusable .prose programs you can run across supported agent runtimes.

Bundled plugins are disabled by default. Enable OpenProse:

Terminal window
coderclaw plugins enable open-prose

Restart the Gateway after enabling the plugin.

Dev/local checkout: coderclaw plugins install ./extensions/open-prose

Related docs: Plugins, Plugin manifest, Skills.

OpenProse registers /prose as a user-invocable skill command. It routes to the OpenProse VM instructions and uses CoderClaw tools under the hood.

Common commands:

/prose help
/prose run <file.prose>
/prose run <handle/slug>
/prose run <https://example.com/file.prose>
/prose compile <file.prose>
/prose examples
/prose update
# Research + synthesis with two agents running in parallel.
input topic: "What should we research?"
agent researcher:
model: sonnet
prompt: "You research thoroughly and cite sources."
agent writer:
model: opus
prompt: "You write a concise summary."
parallel:
findings = session: researcher
prompt: "Research {topic}."
draft = session: writer
prompt: "Summarize {topic}."
session "Merge the findings + draft into a final answer."
context: { findings, draft }

OpenProse keeps state under .prose/ in your workspace:

.prose/
├── .env
├── runs/
│ └── {YYYYMMDD}-{HHMMSS}-{random}/
│ ├── program.prose
│ ├── state.md
│ ├── bindings/
│ └── agents/
└── agents/

User-level persistent agents live at:

~/.prose/agents/

OpenProse supports multiple state backends:

  • filesystem (default): .prose/runs/...
  • in-context: transient, for small programs
  • sqlite (experimental): requires sqlite3 binary
  • postgres (experimental): requires psql and a connection string

Notes:

  • sqlite/postgres are opt-in and experimental.
  • postgres credentials flow into subagent logs; use a dedicated, least-privileged DB.

/prose run <handle/slug> resolves to https://p.prose.md/<handle>/<slug>. Direct URLs are fetched as-is. This uses the web_fetch tool (or exec for POST).

OpenProse programs map to CoderClaw primitives:

OpenProse conceptCoderClaw tool
Spawn session / Task toolsessions_spawn
File read/writeread / write
Web fetchweb_fetch

If your tool allowlist blocks these tools, OpenProse programs will fail. See Skills config.

Treat .prose files like code. Review before running. Use CoderClaw tool allowlists and approval gates to control side effects.

For deterministic, approval-gated workflows, compare with Lobster.