Turn a sequence of app commands into an editable, re-renderable demo/tour artifact.
Project description
walkthru
Turn a sequence of application commands into an editable, re-renderable demo/tour artifact — and play that sequence while observers record video, draw visual cues, and narrate.
walkthru owns the representation (the Demo Document) and the playback/capture
engine. It does not render the final video — it hands a validated artifact off to a
renderer (the reelee ecosystem, Remotion, moviepy/ffmpeg, …). Owning representation, not
pixels, is the load-bearing boundary of the whole design.
Two modes, one data model, one engine
- Generative — an author supplies a Demo Document (commands + annotations);
walkthruplays it while recording, with optional cues (highlight, spotlight, hotspot, callout, synthetic cursor), pauses, and narration. - Capture — a human operates the app manually;
walkthrurecords the video and the underlying command stream and annotations, producing the same Demo Document.
The only difference between the modes is who fills in the document.
The core
play(demoDoc, executor, observers) -> Outcome
A pure higher-order function that walks the document and emits lifecycle events
(onStepEnter → beforeCommand → afterCommand → onStepExit, onCueBegin/End,
onNarration, …). It never records, renders, or speaks — every effect is an injected
observer or port.
Ecosystem-biased, ecosystem-independent
The core and ports depend on nothing from our ecosystem. Integration with
acture (the command layer),
reelee (the renderer), and zodal ships as
optional adapters. You can pip install walkthru / npm i acture-walkthru and use the
core with your own adapters.
Packages
| Package | Registry | Role |
|---|---|---|
walkthru |
PyPI | Python core + schema SSOT + render hand-off |
acture-walkthru |
npm | TS core + the live capture/play engine over acture |
Status
🚧 Planning. See PLAN.md for the implementation plan,
DECISIONS.md for design decisions and deviations from the brief, and the
repo's enhancement issues for the running development journal. Source documents live in
misc/docs/.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file walkthru-0.0.3.tar.gz.
File metadata
- Download URL: walkthru-0.0.3.tar.gz
- Upload date:
- Size: 113.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3a43096ce871bc72efb11b1a33827afbd2a4f0bcc80e18da984b1f956bb8ed9
|
|
| MD5 |
d56dc21913cd22fc4ca5592d545b1413
|
|
| BLAKE2b-256 |
0aca9ac067959d7c5f7a1e2f80ab8eb7e06a028aff257cd6fa872609dc77010b
|
File details
Details for the file walkthru-0.0.3-py3-none-any.whl.
File metadata
- Download URL: walkthru-0.0.3-py3-none-any.whl
- Upload date:
- Size: 31.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6136ea7e1deb36b026e592d94a086eca7998250fdcfaaab40e1ca45f81a10390
|
|
| MD5 |
6afcc81b4f23f90f98aca04576e7a590
|
|
| BLAKE2b-256 |
2fbaa88f786dd85ce72ddc7e7e6bbf561f67ec258d86414d719ff5ab80ce6b1a
|