| summary | OpenProse: .prose workflows, slash commands, and state in OpenClaw | |||
|---|---|---|---|---|
| read_when |
|
|||
| title | OpenProse |
OpenProse is a portable, markdown-first workflow format for orchestrating AI sessions. In OpenClaw 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
.proseprograms you can run across supported agent runtimes.
Bundled plugins are disabled by default. Enable OpenProse:
openclaw plugins enable open-proseRestart the Gateway after enabling the plugin.
Dev/local checkout: openclaw 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 OpenClaw 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
sqlite3binary - postgres (experimental): requires
psqland 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 OpenClaw primitives:
| OpenProse concept | OpenClaw tool |
|---|---|
| Spawn session / Task tool | sessions_spawn |
| File read/write | read / write |
| Web fetch | web_fetch |
If your tool allowlist blocks these tools, OpenProse programs will fail. See Skills config.
Treat .prose files like code. Review before running. Use OpenClaw tool allowlists and approval gates to control side effects.
For deterministic, approval-gated workflows, compare with Lobster.