A workflow, reusable actions, or both — versioned and portable. Tap a part.
Runspore runs work that takes more than one step — and remembers every one of them.
A run carries them out. The moment it lands, it knows exactly where to begin.
Done, waiting, failed. The record is the thing — not a hope that nothing goes wrong.
The run holds its place — glowing politely — until someone says go.
Progress is on record, so the run picks up where it stopped — not from the start. It retries what's safe, and asks when it isn't sure.
What runs beneath is the work. Anything already produced stays useful, even if a later step doesn't make it.
Share the workflow, not the progress. Every landing grows its own record.
Runspore is a small runtime you run locally or embed. Tools, scripts and people do the actual work; Runspore decides what comes next and writes down what happened — so nothing has to start over.
Written as DOT, built into an immutable artifact. One definition can be run any number of times.
Its own ID, inputs and recorded state: running, waiting for a signal, parked for a person, or finished — always on record.
An archive, a report, an import — made by the tool or person a step calls. Runspore coordinates and records; it doesn't do the work itself.
The graph on the right is the DOT on the left. Click any node or line for what it means.
A photographer prepares previews, waits for the client, then prepares the final archive. "Changes requested" loops back to previews; approval moves on. The client's decision arrives as a signal.
The spore command embeds the kernel, host and store. It's an MVP: timers, fork/join, child workflows and other hosts are still on the list. MIT licensed, a WebTree project.