A new kind of language for a new kind of computer
> /plugin marketplace add openprose/prose> /plugin install open-prose@openprose
Repo: openprose/prose
What's inside
OpenProse is a declarative language for standing AI work. Instead of scripting a sequence of instructions and hoping the run lands where you wanted, you declare the world as it should be: an ideal world state, written as familiar structured Markdown contracts (*.prose.md). You say what must stay true, and the system works out how much model work it takes to keep it that way. When order, loops, or exact choreography genuinely matter, optional imperative ProseScript plans drop in. Declarative by default, imperative where you want the control.
This is the oldest good idea in software, pointed at agents. SQL, Terraform, Kubernetes, React: you declare the desired state, and a reconciler is responsible for making reality match it. A thermostat is the one-sentence version. You set the temperature you want and it holds the room there; you never tell it when to fire.
OpenProse is a language, not a platform. The contracts are plain files that run on any Prose-Complete agent harness (any agent host that can spawn sessions, read and write files, and call tools): the language ships as a Skill your coding agent runs directly, and Reactor, built in this repo, is the deterministic runtime we recommend as the fast path.
Two on-ramps, one language: install the skill to author and run contracts inside your agent session (this section), or jump to Reactor for the deterministic runtime and its keyless proof. Same contracts either way; you can do both.
The fastest way to touch the language is the skill:
npx skills add openprose/prose
That installs OpenProse into any Prose-Complete coding agent (Claude Code, Codex CLI, OpenCode, and friends). From there, point your agent at a contract and say prose run <file>: the session itself embodies the VM; there is no separate binary. The examples/ directory is the tour; start small and read the contract before you run it.
Your first contract is a Markdown file away: kind: responsibility frontmatter, a ### Goal that states what should stay true, and the sections below. The skill teaches your agent the rest.
You author Responsibilities, standing goals written as Markdown contracts. This is where the declaration becomes concrete:
### Maintains is the world-model schema: what truth this node keeps current, which fields are material (and so move the fingerprint, the content hash the runtime compares to decide whether work reruns) vs immaterial, optional #### facets that split the truth into independently-subscribable parts, and the postconditions a render must satisfy before it may commit.### Requires names the upstream facets this node subscribes to. Forme (the wiring layer) matches Requires.<facet> ↔ Maintains.<facet> and draws the subscription edge. Structure is subscription; the graph wires itself from the contracts.### Continuity declares the wake source: input-driven by default, self-driven on a freshness cadence, or external-driven (a gateway turning an ingress event into an edge).Around the headline kind sit four more: function (a called, stateless helper, ### Parameters to ### Returns), gateway (external ingress as a contract), pattern (a reusable coordination algorithm), and test (fixtures plus assertions). Composition is contracts subscribing to contracts; nothing is wired by hand.
The deep truth lives in the skill (skills/open-prose/) and the spec (spec/): the vocabulary, the section grammar, the execution semantics. This page is the door, not the manual.
Coming from OpenProse (v0.14 or earlier)? Read this first.
The Intelligent-React overhaul (
runtime_contract 1 → 2) is a breaking vocabulary change. The headlines:
- The judge loop is retired wholesale. The old judge → verdict → pressure → fulfillment loop is gone, replaced by a deterministic reconciler: a render runs only when a node's subscribed input fingerprints or its own contract fingerprint move. There is no LLM in the wake/commit decision.
- Kinds renamed/deleted.
kind: serviceis renamed tokind: function(### Parameters→### Returns);kind: systemis deleted (composition is now intra-node ProseScriptcallor cross-node subscription, wired by Forme);kind: responsibilityis reshaped into a mounted DAG node that gains### Requires+### Maintains.### Ensuresis renamed to### Maintains(now the world-model schema, not just an output list);### Criteria/### Memory/### Fulfillmentfold in.- Old ledgers are abandoned, not migrated. Existing runtime data (old
ReceiptV0ledgers, the policy registry, bundledruns//state//dist/) is greenfield: there is no data migrator. Only your source text upgrades. Re-run from a clean state-dir.- Upgrade your source with a dry run first.
prose upgrade --dry-run(a prose skill command, run inside an OpenProse session, not the reactor CLI) inspects your files and reports the concrete migration plan without editing: mechanical rewrites where safe, surfaced as manual-review diagnostics where judgment is needed (e.g. asystem/### Wiringflatten-or-split). Run it beforeprose upgrade.
The contracts in this repo are harness-agnostic: OpenProse Markdown runs on any Prose-Complete agent host (a fresh git clone is a first-class experience). The contract is the public artifact; the deployment's secrets and data stay private. A contract and its trail can leave for any compliant host with no lost meaning. OpenProse stays free, MIT, and portable, forever.
Reactor, below, is the harness built to run that contract well. We strongly encourage authoring your OpenProse with Reactor; the language never requires it.
Declare the world as it should be; Reactor keeps it true.
Reactor (@openprose/reactor) is the deterministic runtime for OpenProse. It holds a composed world-model (your declared truth, on disk), watches the world for change, and re-renders only the declared facets whose inputs actually moved (memoized agent sessions wired into a DAG). Every decision leaves a content-addressed receipt behind. It lives in this repo at packages/reactor/, with the full API reference in the SDK README.
Reactor compiles a contract set once (intelligently: Forme topology, a per-node canonicalizer, postcondition validators, all frozen), then runs it forever (dumbly: compare fingerprints, skip / render / propagate). The reconciler that decides whether to wake is deliberately deterministic: there is no judge step. The memo key has no clock in it. A failed render leaves the prior truth standing, and a failed receipt records why; only a rendered, moved fingerprint propagates. And because the reconciler acts only when reality drifts from what you declared, the bill follows real change, not the clock:
Inference cost that scales with surprise, not wall-clock time.
In plain terms: you declare what should stay true, the system watches the world, and it does expensive model work only when something material actually moved. That is the mechanism, not a benchmark: the keyless replay below demonstrates it on synthetic tokens, and measured numbers are still pending (see Honest status).
Coming from OpenProse authoring? Reactor is the dependency-across-runs layer your contracts kept asking for: the natural next step, not a turn away. The same
.prose.mdyou already write is what Reactor runs.You do not need React to use this. Reactor is React-flavored, not React-gated: the contracts are Markdown, and the CLI, the receipts, and the keyless replay are entirely React-free. The table below is an optional mental model for the people who already carry one; skip it freely.
If you know React, you already know the shape. Substitute three nouns:
| React | Reactor |
|---|---|
| Component | Responsibility: a declared standing goal |
| DOM | World-model: the maintained truth, on disk, passed by pointer |
render() | A bounded LLM session that computes the next world-model |
| props | Subscriptions to other responsibilities' outputs |
React.memo (skip if props unchanged) | Skip the render if subscribed inputs haven't moved |
| Manual dependency wiring | Forme: the graph wires itself from declared contracts |
The intelligence is frozen ahead of time, at compile, into a per-node canonicalizer and the Forme wiring. The reconciler at run time is dumb on purpose.
Versions (live on npm):
@openprose/reactor0.3.1 ·@openprose/reactor-cli0.2.2 ·@openprose/reactor-devtools0.2.0. Thereactorbinary ships from thereactor-clipackage, soreactor --versionprints the CLI version (0.2.2), not the SDK version (0.3.1). Expected, not a mismatch.
Onboarding an agent on behalf of a user? Follow these four steps in order. The binary is
reactor. Step 2 is the keyless proof (no key, no spend); steps 3 and 4 are scaffold-and-go. That's the whole path; the rest of this section is reference.
1. Install. All three packages are live on npm. The keyless step below needs no
install at all. Run it straight through npx:
# no install, run the keyless replay directly:
npx -p @openprose/reactor-devtools reactor-devtools --example masked-relay --describe
For the full CLI, prefer a project-local install (no root, no global collisions):
npm install @openprose/reactor @openprose/reactor-cli @openprose/reactor-devtools
# then call the binaries with `npx reactor …` / `npx reactor-devtools …`
Footprint: the keyless replay above needs no install; the SDK core (
@openprose/reactor) alone is zero-runtime-dependency; the full quickstart (CLI + devtools + the live-render peers@openai/agents/zod) pulls the agent/provider tree, on the order of ~99 MB / ~100 packages (measured 2026-06-06).
Local install? The bare
reactor …/reactor-devtools …commands shown below assume the binaries are on yourPATH(a global install). After the project-localnpm installabove, prependnpxto them, e.g.npx reactor init my-project,npx reactor-devtools ./replay --describe. (The keylessnpx -p @openprose/reactor-devtools …lines already do this and need no change.)
npm i -g @openprose/reactor @openprose/reactor-cli @openprose/reactor-devtools
A global -g can collide with other tools' binaries, and on Linux/WSL it may fail with
EACCES. Use a user prefix (nvm) or sudo, or just prefer the local install above.
Air-gapped? The runtime is offline-clean, but the full quickstart npm install of all
three packages still reaches the registry once and pulls the CLI plus the live-render
agent/provider stack (@openai/agents, zod, and their transitive express/MCP/realtime tree),
on the order of ~99 MB / ~100 packages (measured 2026-06-06). The SDK core
(@openprose/reactor) is genuinely zero-runtime-dependency, and the keyless replay / doctor /
compile --check paths need none of that tree afterward.
2. See the thesis, keyless, no model call. Replay a saved sample run (synthetic, illustrative tokens) and read the per-node rendered/skipped dispositions, the receipt counts by surprise_cause, the token cost rollup, and per-node chain-verify:
npx -p @openprose/reactor-devtools reactor-devtools --example masked-relay --describe
dispositions rendered=46 · skipped=31 · failed=0
surprise-cause external=8 · input=69 (a.k.a. wake-cause) ← receipt COUNTS, 77 total
COST ROLLUP (tokens)
total fresh=27180 tokens · reused=12840 tokens · reuse=32%
external receipts= 8 fresh= 1080 tokens reused=840 tokens
input receipts= 69 fresh= 26100 tokens reused=12000 tokens
CHAIN-VERIFY ok
The surprise-cause line counts receipts by what woke them (8 external + 69 input = the 77 total receipts); the cost rollup below it is the actual token spend: fresh tokens are what each surprise cost, reused is what memoization saved (32% of the would-be tokens). That's "cost scales with surprise", checkable, with no key and no spend. Frames where a memo-skip happened show as skipped moved[—] fresh 0.
Prefer the browser? Drop
--describe:reactor-devtools --example masked-relayboots an animated DAG viewer at a localhost URL: nodes flash on render, dim-pulse on memo-skip, with a live cost meter.
3. Scaffold and inspect, keyless. Everything here runs offline:
# local install? prepend: npx reactor … (see the "Local install?" note above)
reactor init my-project && cd my-project
reactor doctor # what's present + the exact fix for anything missing
reactor compile --check; echo "exit=$?" # offline; exits 1 if the contract set is STALE (CI-wireable)
Author your OpenProse contracts as *.prose.md files under the scaffold's src/, a kind: responsibility per standing goal (its ### Maintains / ### Requires / ### Continuity), optional gateways for ingress, optional functions for stateless helpers. reactor compile runs Forme over them.
4. Go live (needs a model key). These steps reach the model surface: set OPENROUTER_API_KEY and the two optional peers; a keyless reader can stop at step 3.
npm i -g @openai/agents zod # the two optional live peers
reactor compile # Forme wires the DAG; freezes per-node canonicalizers
reactor serve --http 8080 # drive the scaffold's static gateway to a real receipt
reactor-devtools .reactor --describe # replay YOUR live run's ledger
Use
reactor serve(notreactor run) to drive a scaffold's static gateway:serveingests its seeded items;runis for graphs whose connectors emit on their own.
Reactor is a real SDK you plug into your own stack, not a closed product. The public API is a curated front door: import { reactor } from "@openprose/reactor". One call takes a directory of .prose.md contracts all the way to a booted, reconciling reactor and hands back one typed Reactor handle.
import { reactor } from "@openprose/reactor";
// Compile ./my-project, assemble a durable reactor over ./state, boot to a fixpoint
// (cold nodes render once; warm nodes memo-skip), hand back a live handle.
const { reactor: r } = await reactor("./my-project", { directory: "./state" });
console.log(r.ledger.all().length); // the receipt trail
await r.ingest("source", { wake: { source: "external", refs: [] } });
That's the front door. The deeper surface lives behind six reasoned subpaths: . (the facade + the vocabulary a driver needs), /agents (the full @openai/agents escape hatch, every render knob passes through), /adapters (the substrate + record/replay injection seam), /run and /run/types (the offline boundary), and /internals (the engine room). The full API reference is the SDK README and the docs site; this page just opens the door.
The examples in skills/open-prose/examples/ are the tour of the language: each carries its contract source and a README with its standing goal and DAG sketch. The thirteen below are replayable keyless, driving the real reconciler at zero model spend, through two paths: the six marked with * ship bundled inside reactor-devtools and replay by name from any directory (no clone needed), and the full thirteen are exercised by the repo's offline example corpus at tests/open-prose/examples/, six of which ship a committed, chain-verifiable replay/ state-dir you can open directly. (Two of the thirteen, masked-relay and tamper-forge, share a byte-identical ledger: tamper-forge is an audit lens over the masked-relay receipts, so the set is twelve distinct datasets plus one honest tamper-evidence lens, not thirteen unrelated ledgers.)
| Example | What it shows | Domain |
|---|---|---|
surprise-cost * | memoized skip → surprise-render when the memo key moves | the core thesis |
renewal-risk | a standing responsibility re-checking only the accounts that moved | SaaS / finance |
inbox-triage * | diamond fan-in + failure isolation | email / ops |
monorepo-ci * | hub fan-out blast radius; a failing test blocks the merge gate | dev tooling / CI |
research-tree * | recursive propagation up a tree, branch-memoized | research |
masked-relay * | peer-blind fan-out with deterministic masked projections | competitive intel |
agent-observatory * | many cheap watchers → batched synthesis | agent ops |
tamper-forge | attack a real ledger; watch chain-verify catch it (and where it honestly can't) | audit / security |
oblique-weave | hidden-context adversarial roles | product strategy |
github-star-enricher | per-entity fan-out + shared receipts + a human gate | growth / GTM |
implementation-pipeline | fixed wide fan-out with per-facet lane wake | software delivery |
forme-fixpoint | the topology as a responsibility (the self-wiring bootstrap) | meta |
basic-unit-suite | the 13 micro-mechanics, one by one | substrate |
Run any starred example, keyless, from anywhere (no clone, no install):
npx -p @openprose/reactor-devtools reactor-devtools --example surprise-cost --describe
Or open a committed replay directly (from a clone of this repo):
reactor-devtools tests/open-prose/examples/renewal-risk/replay --describe # the render/skip/cost trail
reactor --state-dir tests/open-prose/examples/renewal-risk/replay receipts # the per-node ledger (list | verify | cost)
Installed from npm, not a repo clone? The skill and its example contracts ship inside the SDK tarball at
node_modules/@openprose/reactor/skill/open-prose/examples/<name>/(note:skill, singular, in the tarball;skills, plural, in the repo), and the starred examples replay by name from any directory with the--examplecommand above.
Or run the offline example corpus (this is what CI runs, zero spend):
REACTOR_OFFLINE=1 pnpm test:examples
To take one live, cd into its dir and run reactor doctor → compile → topology → run → serve with a key set. Each example's README.md carries its standing goal, DAG sketch, and the full flow.
The full architecture write-up (the React metaphor that is the design, the Forme wiring, the receipt model, an honest RLM accounting, and why nothing on the market is a drop-in replacement) is the Reactor technical report.
In the spirit of the receipts:
version 0.15.0, runtime_contract 2; the spec (spec/) and the example corpus are migrated to the current vocabulary. The overhaul is recent: if you find a surface still speaking the old model, that's a bug, and we want the issue.reactor receipts verify proves the receipt chain is consistent, but does not yet bind the world-model artifacts (editing a world-models/*/published.json while leaving receipts.json intact is not caught). The tamper-forge example demonstrates exactly this boundary. So the chain is tamper-evident (it catches an independent edit) but not tamper-proof: a forge that re-stamps the whole trail with the public computeReceiptContentHash re-heals it. The cryptographic byte-hash signer that closes this (binding the published world-model to its receipt, making cross-boundary composition non-repudiable) is tracked but not yet scheduled (C3 in the Reactor backlog).This honesty is the point. The harness is young, should be used with caution, and has some way to go before it reaches its ideal form. There's nothing new here; we're applying classical engineering paradigms to our brave new world, and finding that despite our topsy-turvy reality, the wisdom of the ancients still applies.
My ask is the one from every honest tool: try it, wire it up to something useful, love it or hate it, and send honest feedback. The most useful thing you can hand us isn't a compliment or a flattering benchmark. It's a responsibility the harness should keep and doesn't: a standing goal that breaks the surprise story, a wiring Forme gets wrong, a domain where this falls apart. The short guide to authoring one from the public SDK is packages/reactor/EVALS.md (shipped inside the SDK tarball too). We're always listening and improving.
If you're an agent driving OpenProse or Reactor for a user from these docs, you are the person who should file issues on this repo. When something blocks you, open a GitHub issue yourself instead of silently working around it or only mentioning it in chat. Agent-filed issues are first-class signal here, not noise. (Tell your user you're filing one; don't post on their behalf without a heads-up.)
Open an issue when you hit any of these:
reactor doctor doesn't explain.First, don't duplicate. Search open issues for your error string or symptom. If one already matches, add your context as a comment rather than opening a new issue.
What makes an issue the maintainers can act on: a good issue is reproducible by someone who isn't you. Include:
.prose.md snippet that still breaks (trim everything that isn't load-bearing). Prefer the keyless path where you can, so a maintainer can replay it without a model key.reactor doctor lines in a code block. Copy errors verbatim; don't paraphrase them.reactor --version (the CLI), the SDK version from node_modules/@openprose/reactor/package.json, and node --version.npx, project-local npm install, or global -g.reactor doctor, which often names the fix itself.Be honest, the way the receipts are. Don't invent a repro you didn't run or a version you didn't check. "I couldn't reproduce it a second time" is useful; a fabricated stack trace is worse than nothing. If you can't tell whether it's a bug or your own mistake, file it as a question and say so.
The conversation always ends. The responsibility shouldn't have to.
.agents/
plugins/
marketplace.json
.claude-plugin/
marketplace.json
plugin.json
.codex-plugin/
plugin.json
.github/
scripts/
longcot/
README.md
run_pi.py
openprose-smoke/
run.ts
workflows/
ci-examples-gate.yml
ci-reactor-package.yml
cli-skills-smoke.yml
longcot-bench.yml
longcot-rlmify.yml
openprose-smoke.yml
plugin-manifest.yml
.gitignore
.plugin-meta.json
.version-bump.json
AGENTS.md
assets/
plugin/
composer-icon.png
logo.png
readme-header.png
README.md
CHANGELOG.md
CONTRIBUTING.md
LICENSE
package.json
packages/
co/
evals/
agent-readiness.eval.prose.md
company-repo-checker.eval.prose.md
README.md
services/
agent-readiness.prose.md
systems/
company-repo-checker/
index.prose.md
reactor/
reactor-cli/
.gitignore
examples/
agent-observatory/
.gitignore
attention-queue.prose.md
claude-sessions.prose.md
connectors.cjs.example
dashboard.prose.md
decisions-log.prose.md
eng-backlog.prose.md
PIPELINE-DESIGN.md
reactor.yml
README.md
replay/
compile/
topology.json
receipts.json
registry.json
world-models/
617474656e74696f6e2d7175657565/
published.json
versions/
sha256_76a9bb5b79039ab415f0582ea64ffcf30738673d1829b7fe95998cd4c2c9020f.bin
636c617564652d73657373696f6e73/
published.json
versions/
sha256_8dfbd320db7fb8ebc084664891083f8f14e8756b2427374debe63a02a7aa2e49.bin
636c617564652d73657373696f6e733a3a696e6772657373/
published.json
versions/
sha256_213291a9d7116fa39f515fe45916e3ee2882206b7c2fc0ac109ddd9dcbdb7a26.bin
sha256_a4c62cdc057cc9b028948877746a67beee931d12a21602a458923316b24e321d.bin
64617368626f617264/
published.json
versions/
sha256_81bb30277dbcd4d5d96d7fd5a12cb48f55b2df69d8aeea906002333a87d0eb54.bin
6465636973696f6e732d6c6f67/
published.json
versions/
sha256_74616ebb70e04c4abb770656a48b994c2886032db195008761ece10bb5735e08.bin
656e672d6261636b6c6f67/
published.json
versions/
sha256_feab457f99cb0bd13f4c21fbc959d02bc5c635386694ac0ae2383c83ae8dc966.bin
73657373696f6e2d7369676e616c/
published.json
versions/
sha256_302b8d65e8ee3cbb6059a3fe72d7d0e58c18da49a636362fc9c725aefb63a0b5.bin
7573652d636173652d6775696465/
published.json
versions/
sha256_b040c3f6a8bc649a008355e61ae89b3d5956290a7bcebb4c3b09d83bb201392e.bin
session-signal.prose.md
use-case-guide.prose.md
gateway-connector/
digest.prose.md
inbox.prose.md
reactor.yml
README.md
quickstart/
digest.prose.md
inbox.prose.md
reactor.yml
README.md
package.json
README.md
src/
__tests__/
__fixtures__/
gateway-project/
digest.prose.md
inbox.prose.md
anthropic-native.live.test.ts
cli.test.ts
compile.test.ts
connectors.test.ts
contract-images.test.ts
doctor.test.ts
examples.test.ts
fake-provider.ts
fake-telemetry.ts
init.test.ts
observe.test.ts
offline-boundary.test.ts
provider-config.test.ts
provider-plan.test.ts
run-core-projection.test.ts
run-model-config.test.ts
run.test.ts
sandbox.test.ts
serve-host.test.ts
telemetry-command.test.ts
trigger-model-config.test.ts
cli.ts
commands/
compile.ts
doctor.ts
emit.ts
init.ts
observe-format.ts
observe.ts
run.ts
serve.ts
telemetry.ts
trigger.ts
compile/
contract-images.ts
ir-cache.ts
run-compile.ts
config.ts
env.ts
meta.ts
model/
live-provider.ts
provider-plan.ts
observe/
projections.ts
state-view.ts
run/
connectors.ts
cost.ts
host.ts
http-server.ts
load-run-project.ts
run-core.ts
sandbox.ts
serial-queue.ts
substrate.ts
worker-pool.ts
telemetry/
client.test.ts
client.ts
command.ts
endpoint.test.ts
endpoint.ts
events.ts
gate.test.ts
gate.ts
identity.test.ts
identity.ts
index.ts
notice.test.ts
notice.ts
TELEMETRY.md
tsconfig.build.json
tsconfig.json
tsconfig.test.json
reactor-devtools/
fixtures/
agent-observatory/
compile/
labels.json
topology.json
receipts.json
registry.json
world-models/
676174657761792e72756e74696d652d7761746368/
published.json
versions/
sha256_3a0417f65675e4888f2bb2868bd1a7f580fa946aef596a3c23fdf5a6c5a83948.bin
sha256_440207e7c4b3ec81ead015548efae391dd929714a77ebe6a2f247cbdecf59b6b.bin
sha256_561fa342c696515c442872181aff14003684bd042934c59368d37cea38e23bb2.bin
sha256_97170fe5597881ba5fa0953115aa0ce52d9f9d35bc0ed7bf814da1e94bb9e88d.bin
sha256_d7266c8fa23d8734fd6e9db43a5a2585edf4ad381aee0e1bdc14fa05cc670172.bin
sha256_ef370431a5aa8d637bc9a2aeca52c358ea2ae517f220385d4d1c4229bcc1b816.bin
696e67726573732e6167656e742d6673/
published.json
versions/
sha256_5b85873d84d6d82b9715e8c1b71590f712a8cd5e669fdba94d2c23f099dd2cd4.bin
sha256_70d0639dffc3eaf189afc0f79dc51960741f4ecbe51fecf829b8a24e28285be8.bin
sha256_aec687cd870be3bbd82e36d76ae2f19d2a17329a6d7876af148aafa457c00131.bin
sha256_aef83b60a8e603f70052d36c9a67a1ccd92ade658c7b0dc3f88a4e1e81c87c65.bin
sha256_b265fc02b745c2bee35244e8b6aeea145e599dc9db68bf91f574f7b886a41d43.bin
sha256_dfc2fd69dfd13e54ab0b6c514dc27bce71a01e6e813790be29672637862bf58b.bin
726573706f6e736962696c6974792e616461707465722d636c61756465/
published.json
versions/
sha256_1ee3e9f83d611fd47ab5c0a3bed508980b6ccb49ec309d3880be30346bb8bc97.bin
sha256_5f86d81950d3a6952ee7f639295d7d20afae0b8a78d90f394e96335575ad25ca.bin
sha256_701856418c6f2f465d162508ef0d99062c39f6754167d843047b8096fdce8e52.bin
sha256_af8edb7dda97d602a9a845bb3823559d1e9cb319aa571a2308b6b0848015ca48.bin
726573706f6e736962696c6974792e616461707465722d636f646578/
published.json
versions/
sha256_1b75d696ff4279a032edbbc14444a78f7f09f855ff97493b2120b9800e05925f.bin
sha256_1d1410ce728b7af1704c89b4fd5a00140347af2ac9ccf9ed2c653bdbea5d24b0.bin
sha256_a5929654d1f52d1b81d8185fbbbf7d91b0e9d22afb547606b1d01b39c3ac1b5d.bin
sha256_a8d40c6400d2a228df2d75351929240e405a422c5d43261096db01d9d4533cdb.bin
726573706f6e736962696c6974792e616461707465722d6865726d6573/
published.json
versions/
sha256_656138bf62edc56dd2925cda03a2e3055ddaa52c5162bcd4e82d86e79947b3a0.bin
726573706f6e736962696c6974792e616461707465722d6f70656e636c6177/
published.json
versions/
sha256_14931b14e7ea23523aae7ad724ec168a6567eccb2af3b1a06e326a99f4262a21.bin
726573706f6e736962696c6974792e616461707465722d6f70656e636f6465/
published.json
versions/
sha256_c0631b38b022cbedce0164ac3d345b223647f205609a0dc61a8ac0670d9a848c.bin
726573706f6e736962696c6974792e616461707465722d7069/
published.json
versions/
sha256_c36d6560bf3f1278544193f9f50ff212bd5d49c41dcc1c57658d91dc963e5417.bin
726573706f6e736962696c6974792e636f6e636570742d636c75737465726572/
published.json
versions/
sha256_41ae330faed7dbab897abca80eca2afb7df10b92c9fd1ec03d0b76b26980f998.bin
sha256_7c0add052d2a36d210c9e1460ea1b661d59da76f4201f086a829df68966972e7.bin
726573706f6e736962696c6974792e64617368626f617264/
published.json
versions/
sha256_944f22e10216863c9a652ab55e0a9a09f998db76077e4fccbc80ddcc4cbfaa99.bin
sha256_a8b35dddc42ad2a9a8b5ba7da4dbac327fcc25952504a260ef7173c5fe5facd2.bin
sha256_b0521c6427314c656e1e26a49efcdda817e4388484a7b744424ea3c39ce7f4d8.bin
sha256_b0885e3322065648bd501b632673934fc8b6959549ad90e6bcede98df75d00ef.bin
sha256_deed86d484bef2f0211ec4beac29ec609ce00e9219b016a14fd48aa760904622.bin
726573706f6e736962696c6974792e73657373696f6e2d6c6564676572/
published.json
versions/
sha256_285fb044d5ba4d13a0e01601727a7a1ba036c4dbc8fd6df9f1fe51fc5b588a46.bin
sha256_3185ac5573e19f7bc5cb98d632f7c1c932bb240620a0be971d3c79551cf73f82.bin
sha256_6c34e3a6b815daf1984ae4a6222cb7c9077a8e16ac85016b1fb8d780697111cf.bin
sha256_c704a741155f6e1c990c844fe1aeb5d800d88a055115676f1f9b8292cbb81fb8.bin
sha256_cff43cb132df9717318d90c5ac6dcc6c88b6489e53ef724634fcde291e0558e5.bin
726573706f6e736962696c6974792e73756d6d6172792d636c6175646541/
published.json
versions/
sha256_14046f1ec9baae7833597d6cf86dea77c01d38a81b012cc2abf1e6ccc8629474.bin
sha256_1fcbc95f50793c4fb2756edbc4238d2ee81c0863f7ce69e7af99c0433e62dd7a.bin
sha256_755e6f37e694123bc7353090357cc0150f1404e39f35ad0003e54d28656098e4.bin
sha256_cf3872f0d27890a03039b4b03a4608a1988b7b661b3a55301264d931188fad02.bin
726573706f6e736962696c6974792e73756d6d6172792d636c6175646542/
published.json
versions/
sha256_b63bc364282322e3db95ccc4561d89432dc476689191d935ececb4e9c8f8dc72.bin
sha256_bd67c669d11460b5f64570af3630bfd85f0565d189819dcf80868bc27650d787.bin
726573706f6e736962696c6974792e73756d6d6172792d636f64657841/
published.json
versions/
sha256_1cd1182742d95a6b0967a5486522de785e828e72ad844b0fb2db6c2056bde5a9.bin
sha256_2c5903a302ea334c9c19778389ef0cc5c2f5e00b2bf36224715fb0dea42dea8c.bin
sha256_74e3c404889d6baa4b8b1016619b31e73aa08baac1c5fe710297338d2162612c.bin
sha256_b7cfe4b9eceb4107ea1e0b9ab2d93fee275437379f998715ecc9d74026db33e3.bin
726573706f6e736962696c6974792e776f726b73747265616d2d696e646578/
published.json
versions/
sha256_3901b452f0fcee47edaaed86f44b83208669cd89c07d7e8c868a181f7191568d.bin
sha256_69f85f3137eac058d7a36a27b1a96062d809d760dd65c31668463d856d5f6cdf.bin
sha256_be72c55fe9e2e1674f44266f0d986b8c2adeacca022d0e44bc7e61ad617c4fd5.bin
sha256_d405570a1c13c7a15e7e518684d689ae2273a742c02b504fec3650076780def2.bin
sha256_f3588b3b2f62e323c673c69de0990f67a301ef66ea87c9f00275d0c211fa3537.bin
contract-redline/
beats.json
compile/
labels.json
topology.json
receipts.json
registry.json
world-models/
676174657761792e636c6175736573/
published.json
versions/
sha256_affa2655c615992b033dd33f983df13ad0f68e53962f30db1e0f2f01d5cf3881.bin
sha256_ea27d872ce0f873f1f48517e1626b8b2ec73ec91e6eec49752e92da79daf0666.bin
sha256_f02f25d1c14a7428583d4255339eca8f2b90a2bc7016382a6026885682d9e592.bin
696e67726573732e636f6e74726163742d646f63/
published.json
versions/
sha256_2f6764767c87cb6b7eee6f1f2281556966ecec54279af31c485604a5d6c78ab4.bin
sha256_476f8a824bbf163dd1ec84b1d4e5b1bea2a78eae78574e287e9f44d1ea3c127f.bin
sha256_c2ac2d0b426a20eeffce6a42d8fd363ef66e4786a43e0ca9d681dc2ff888bb51.bin
sha256_cd1480a1302c4876e028c7d0427593c57cfb3cd30274f0fa1ba15e7c8539b750.bin
726573706f6e736962696c6974792e657865632d73756d6d617279/
published.json
versions/
sha256_401ca70ff63f2954a9976a15fd763c3159a1c05d089d899a1c08ca605fbbd5c7.bin
sha256_c58547a6c77a5013ba124a92f8e0f8cc52b9a6c0880f5ba177e654e4ed69faa3.bin
sha256_d77e21d18beb1dea1883482c633727a08f25034a7b4e21d02d93a3c2ae7b64a3.bin
726573706f6e736962696c6974792e7265646c696e652d7265706f7274/
published.json
versions/
sha256_0e5967cb46865024abfa81fbd1c14e72f3fc5e0633f71bf69d36e318938ab32d.bin
sha256_ec2025388282616c8d38efdbc54811391df254e8ec42f26f0297c6f481d063e4.bin
sha256_f59999f11c9269b55b86566ca4b5f1da19574eb6feeadb07667f5fc346ec4f7d.bin
726573706f6e736962696c6974792e7269736b2d726f6c6c7570/
published.json
versions/
sha256_015fb77d3a252f0bec671df68f23a1eeea5b9ae9e1b07310059e691d8f91416b.bin
sha256_65c6c0635f326d6d2744b6b5251f0d05bf8781f281c7de595f136a0e058511b5.bin
sha256_80ed914ea5430985a0d875aedb1d8b8e018ff0ad13796e9bea0178790e591c26.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d31/
published.json
versions/
sha256_5a74a27981f6aec7c04ddbbeb71b794d73450272f4da32aef1c915dc540628fa.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d32/
published.json
versions/
sha256_ef3b9b119b458e0a9d0aca6c6e68a0582ed786c0d6c3603b8b4886ad8dcdd86b.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d33/
published.json
versions/
sha256_37d5598877ace51197bae28dc14cb811aca41925c1dba1ad692a1999ac8e7a4d.bin
sha256_6884b8f230e69bddfea1003f8016900c658047c9ade87e1bf37330887ae002e4.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d34/
published.json
versions/
sha256_de4edb9822ff3f0a83a40a6d062dffbe221690c31334cde00a5a4edccdc4638d.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d35/
published.json
versions/
sha256_8e140985723f2a1103e256c3f6634b1b5408f18198a462d69742e98c5715d1e5.bin
sha256_abf9260fd69df4c8ba92b590f8b500d5842480b8b1f22bc0a39bf85ea7ada36e.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d36/
published.json
versions/
sha256_0e8ec602c6dce2d5596364db3bf71899ce23980de9f364d37766d2aa21ba4556.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d37/
published.json
versions/
sha256_2d4370c90528b4a2e5aeb9dfe5ebc7e1230b3dfc0ba6905d57a09cf2dd09d611.bin
726573706f6e736962696c6974792e73756d6d6172697a652d73656374696f6e2d38/
published.json
versions/
sha256_9d51c0f78e03bb9c95228a69ac9523b37ecf3041dd64128cb9e6240b432a2f81.bin
inbox-triage/
beats.json
compile/
labels.json
topology.json
receipts.json
registry.json
world-models/
676174657761792e696e626f782d73747265616d/
published.json
versions/
sha256_262ff3cdf5df54a604313c0719a90d1c5ea350957d71c23cf52b629fd32a808d.bin
sha256_286fb31c8a409273f94ada134001a815fcf1b83e1c8740a87414879b8465ef49.bin
sha256_4b3e9d3623c020b80299541ce636144c65fce1eccdf5735c0a627b7c5cb7a8a6.bin
sha256_67beab728df8498327f14b688c4b60b4a6252bd6ef5eb2f91002db8991e26750.bin
sha256_d4106ebf8aac8f5e0ac17f56c144672e01f0cd6697b4ff70ac0c41079b8406be.bin
sha256_d8948bdc50abddde077f608388f4ac173a0e9638ad3df0e1c22551c972b0091a.bin
sha256_eb0a210b68257f7593fd66db2f1f6e9bdb4f9785fc7a5ef7aae0ed49df8bad20.bin
sha256_ee16b8d2c6871865f7e61ba96b988e0ed8b3f2f048b4342ec6df36a632010e37.bin
696e67726573732e6d61696c2d66656564/
published.json
versions/
sha256_1643cf5b92ecb0ef12830beb7a58e55109181a70cc8a041b39f74c13df1a95df.bin
sha256_36dfed10f17d32610f27987b15124f4d5f34f32a68d36a5c36d0acc4479d9c98.bin
sha256_477cbcadb9d150328216345e2ee5ff41e4cb0c5595b176fdb21f346166580551.bin
... 1600 moreShowing a partial view of a very large repo.
FAQ
open-prose is a Claude Code plugin with 1 hand-picked skill for automation work, indexed on Flowy. Install it with the command on its page. It includes open-prose. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.