st_scribe
Record clicks and field changes in your Streamlit app and auto-generate a step-by-step how-to guide — like Scribe, but for Streamlit apps.
Great for internal tools: instead of writing a "how to use this dashboard" doc by hand, click Start Recording, use the app once, and export a shareable guide with screenshots, highlighted click points, and captions.
Install
pip install st-scribe
Usage
import streamlit as st
import st_scribe
# ... your normal app widgets ...
steps = st_scribe.recorder()
if steps:
html_doc = st_scribe.to_html(steps, title="How to use this app")
st.download_button("Download guide", html_doc, file_name="guide.html")
Click Start Recording, interact with your app as a user would, then
Finish Recording. Each click and field change is captured as a
screenshot with a red highlight ring on the clicked element, plus an
auto-guessed caption (e.g. Enter "Priya Sharma" in "Employee name").
See demo.py for a complete example, including an editable
review step before export.
streamlit run demo.py
How it works
st_scribe.recorder() is a Streamlit custom component. Its frontend
JavaScript reaches into the parent app's DOM (same-origin, so this is
allowed) to listen for clicks/changes anywhere in your app, and uses
html2canvas to screenshot the page at
each step. No screen-recording permissions or server-side rendering
needed — it all happens in the browser.
Limitations
- Password field values are masked in captions, but the screenshot still shows whatever is visibly rendered on screen — don't record flows containing real secrets.
- Full-page screenshots can take ~1 second each on complex pages; the recorder shows a "Capturing..." status while this happens.
- Captions are heuristic guesses based on nearby labels/button text; review and edit them before exporting (the demo app shows how).
Metadata
Release files for st-scribe 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| st_scribe-0.1.0.tar.gz | 55.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| st_scribe-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.9 kB
Release files / st_scribe-0.1.0.tar.gz
| Download URL | st_scribe-0.1.0.tar.gz |
|---|---|
| Size | 55.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4319aa5efdcc7f8439286f4b05ff5e82f2261923932489de7671aec4456a7f94
|
|
BLAKE2b-256 checksum How to use checksums |
740fd4121b7f6904a77c25c3a55ac74d7f99bd9bdb67e070d1ac4ebdffe4d42f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / st_scribe-0.1.0-py3-none-any.whl
| Download URL | st_scribe-0.1.0-py3-none-any.whl |
|---|---|
| Size | 54.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f855f6771769bf602bffda879aa63e5b8683fe05ea9f4359d7ebf36cbafb44f
|
|
BLAKE2b-256 checksum How to use checksums |
e68eeb02872e15e5fde29684dad1ad60ec9ae9a049ba2e2b545af4bbde90fb04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log