Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
205 lines
6.4 KiB
Markdown
205 lines
6.4 KiB
Markdown
---
|
|
title: "OpenProse"
|
|
sidebarTitle: "OpenProse"
|
|
summary: "OpenProse is a markdown-first workflow format for multi-agent AI sessions. In OpenClaw it ships as a plugin with a /prose slash command and a skill pack."
|
|
read_when:
|
|
- You want to run or write .prose workflow files
|
|
- You want to enable the OpenProse plugin
|
|
- You need to understand how OpenProse maps to OpenClaw primitives
|
|
---
|
|
|
|
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 and a `/prose` slash command. Programs live in `.prose` files and can
|
|
spawn multiple sub-agents with explicit control flow.
|
|
|
|
<CardGroup cols={3}>
|
|
<Card title="Install" icon="download" href="#install">
|
|
Enable the OpenProse plugin and restart the Gateway.
|
|
</Card>
|
|
<Card title="Run a program" icon="play" href="#slash-command">
|
|
Use `/prose run` to execute a `.prose` file or remote program.
|
|
</Card>
|
|
<Card title="Write programs" icon="pencil" href="#example-parallel-research-and-synthesis">
|
|
Author multi-agent workflows with parallel and sequential steps.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
## Install
|
|
|
|
<Steps>
|
|
<Step title="Enable the plugin">
|
|
OpenProse is bundled but disabled by default. Enable it:
|
|
|
|
```bash
|
|
openclaw plugins enable open-prose
|
|
```
|
|
|
|
</Step>
|
|
<Step title="Restart the Gateway">
|
|
```bash
|
|
openclaw gateway restart
|
|
```
|
|
</Step>
|
|
<Step title="Verify">
|
|
```bash
|
|
openclaw plugins list | grep prose
|
|
```
|
|
|
|
You should see `open-prose` as enabled. The `/prose` skill command is now
|
|
available in chat.
|
|
|
|
</Step>
|
|
</Steps>
|
|
|
|
From a repo checkout you can install the plugin directly:
|
|
`openclaw plugins install ./extensions/open-prose`
|
|
|
|
## Slash command
|
|
|
|
OpenProse registers `/prose` as a user-invocable skill command:
|
|
|
|
```text
|
|
/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
|
|
```
|
|
|
|
`/prose run <handle/slug>` resolves to `https://p.prose.md/<handle>/<slug>`.
|
|
Direct URLs are fetched as-is using the `web_fetch` tool.
|
|
|
|
Top-level remote runs are explicit. Remote imports inside a `.prose` program are
|
|
transitive code dependencies: before OpenProse fetches any remote `use` target,
|
|
it shows the resolved import list and requires the operator to reply exactly
|
|
`approve remote prose imports` for that run.
|
|
|
|
## What it can do
|
|
|
|
- Multi-agent research and synthesis with explicit parallelism.
|
|
- Repeatable, approval-safe workflows (code review, incident triage, content pipelines).
|
|
- Reusable `.prose` programs you can run across supported agent runtimes.
|
|
|
|
## Example: parallel research and synthesis
|
|
|
|
```prose
|
|
# 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 }
|
|
```
|
|
|
|
## OpenClaw runtime mapping
|
|
|
|
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` (`exec` + curl when POST is needed) |
|
|
|
|
<Warning>
|
|
If your tool allowlist blocks `sessions_spawn`, `read`, `write`, or
|
|
`web_fetch`, OpenProse programs will fail. Check your
|
|
[tools allowlist config](/gateway/config-tools).
|
|
</Warning>
|
|
|
|
## File locations
|
|
|
|
OpenProse keeps state under `.prose/` in your workspace:
|
|
|
|
```text
|
|
.prose/
|
|
├── .env # config (key=value), e.g. OPENPROSE_POSTGRES_URL
|
|
├── runs/
|
|
│ └── {YYYYMMDD}-{HHMMSS}-{random}/
|
|
│ ├── program.prose # copy of the running program
|
|
│ ├── state.md # execution state
|
|
│ ├── bindings/
|
|
│ ├── imports/ # nested remote program runs
|
|
│ └── agents/
|
|
└── agents/ # project-scoped persistent agents
|
|
```
|
|
|
|
User-level persistent agents (shared across projects) live at:
|
|
|
|
```text
|
|
~/.prose/agents/
|
|
```
|
|
|
|
## State backends
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="filesystem (default)">
|
|
State is written to `.prose/runs/...` in the workspace. No extra
|
|
dependencies required.
|
|
</Accordion>
|
|
<Accordion title="in-context">
|
|
Transient state kept in the context window; select with `--in-context`.
|
|
Suitable for small, short-lived programs.
|
|
</Accordion>
|
|
<Accordion title="sqlite (experimental)">
|
|
Select with `--state=sqlite`. Requires the `sqlite3` binary on `PATH`
|
|
(falls back to filesystem when missing); state lands in
|
|
`.prose/runs/{id}/state.db`.
|
|
</Accordion>
|
|
<Accordion title="postgres (experimental)">
|
|
Select with `--state=postgres`. Requires `psql` and a connection string in
|
|
`OPENPROSE_POSTGRES_URL` (set it in `.prose/.env`).
|
|
|
|
<Warning>
|
|
Postgres credentials flow into sub-agent logs. Use a dedicated,
|
|
least-privileged database.
|
|
</Warning>
|
|
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## Security
|
|
|
|
Treat `.prose` files like code. Review them before running, including remote
|
|
`use` imports. Top-level `/prose run https://...` requests are explicit, but
|
|
transitive remote imports require per-run approval before they are fetched or
|
|
executed. Use OpenClaw tool allowlists and approval gates to control side
|
|
effects. For deterministic, approval-gated workflows, compare with
|
|
[Lobster](/tools/lobster).
|
|
|
|
## Related
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Skills reference" href="/tools/skills" icon="puzzle-piece">
|
|
How OpenProse's skill pack loads and what gates apply.
|
|
</Card>
|
|
<Card title="Subagents" href="/tools/subagents" icon="users">
|
|
OpenClaw's native multi-agent coordination layer.
|
|
</Card>
|
|
<Card title="Text-to-speech" href="/tools/tts" icon="volume-high">
|
|
Add audio output to your workflows.
|
|
</Card>
|
|
<Card title="Slash commands" href="/tools/slash-commands" icon="terminal">
|
|
All available chat commands including /prose.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
Official site: [https://www.prose.md](https://www.prose.md)
|