Lightweight tool for turning desktop demonstrations into step-by-step multimodal tutorials.
Project description
Demo2Tutorial: From Human Experience to Multimodal Software Tutorials
Zechen Bai, Zhiheng Chen, Yiqi Lin, Kevin Qinghong Lin,
Difei Gao, Xiangwu Guo, Xin Wang, Mike Zheng Shou
Show Lab, National University of Singapore
Paper | PyPI | Quick Start
ShowHow is the minimal public release of Demo2Tutorial: a lightweight tool for recording desktop workflows and turning them into polished step-by-step multimodal tutorials.
Overview
Raw screen recordings are useful demonstrations, but they are often long, passive, and difficult to follow. ShowHow turns a recorded desktop workflow into a structured tutorial with concise instructions, selected keyframes, and visual guidance.
This repository keeps the paper-facing identity as Demo2Tutorial, while the public software tool and package are named ShowHow:
- repository:
Demo2Tutorial - Python package:
showhow - local tool / product name:
ShowHow
Highlights
Current features
- Browser-based recording UI
- Local macOS recorder for desktop workflows
- Multimodal tutorial generation from recorded sessions
- Editable HTML/PDF export for generated tutorials
- PyPI package for simple installation
Planned
- Windows support after a dedicated public validation pass
- MCP integration as a polished advanced workflow
- Skill-oriented integrations and broader agent-facing tooling
Pipeline
Example Tutorial
Easy-to-use WebUI
Quick Start
Option A: Install from PyPI
pip install showhow
python -m showhow.cli web --host 127.0.0.1 --port 18090
Then open (usually the browser will automatically open):
http://127.0.0.1:18090
Option B: Run from source directly
git clone https://github.com/showlab/Demo2Tutorial.git
cd Demo2Tutorial
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .
python -m showhow.cli web --host 127.0.0.1 --port 18090
Setup
Requirements
- Python 3.10+
ffmpeg- OpenAI API access for generation
- macOS (Windows compatibility is not strictly tested)
OpenAI API key
You can either:
- enter the API key directly in the web UI (still only exists locally)
- or export it in your shell
export OPENAI_API_KEY=your_key_here
macOS permissions (optional)
For recording on macOS, you may need to grant if necessary:
- Screen Recording
- Accessibility
- Input Monitoring
If the recorder does not work as expected, run:
python -m showhow.cli doctor
Usage
Web UI
The recommended workflow is the web UI:
python -m showhow.cli web
Then:
- open the local page in your browser
- enter the API key if needed
- start recording
- perform the task
- stop recording
- generate the tutorial
Interactive CLI flow
python -m showhow.cli record --topic "demo_flow" --generate --model gpt-4o
Explicit CLI flow
python -m showhow.cli start --topic "demo_flow"
python -m showhow.cli rec-status
python -m showhow.cli stop
python -m showhow.cli generate --session-id <SESSION_ID>
Output
By default, recordings are saved under:
~/Downloads/record_save
Each session may produce artifacts such as:
events.jsonlmetadata.json- session video
- parsed trace
- tutorial draft
- rendered tutorial assets
tutorial.html
Troubleshooting
ffmpeg not found
Install ffmpeg and ensure it is available on your PATH.
Recorder fails to start
Run:
python -m showhow.cli doctor
Then check:
- OS permissions
- recorder host/port availability
ffmpegavailability
OpenAI key errors
Make sure OPENAI_API_KEY is set correctly, or enter it in the web UI.
No tutorial output generated
Check whether the recording session produced:
- a valid event log
- a valid video file
- a valid session directory under the record root
Limitations
- Currently optimized for local single-user usage
- Default generation depends on API-backed captioning and planning
- Desktop recording behavior depends on OS permissions
- Some advanced composition features may require optional dependencies
Citation
If you find this project useful, please cite the paper:
TODO
License
This project is released under the MIT License. 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 showhow-0.1.0.tar.gz.
File metadata
- Download URL: showhow-0.1.0.tar.gz
- Upload date:
- Size: 67.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35be2282898f53cdd03de5c313d9cfe119b6dfb576be4f8112fe851608b04c3e
|
|
| MD5 |
f0e17c2f1e9247a5146383d18ca45f60
|
|
| BLAKE2b-256 |
a417c7d70012c400a33c759a846dc31dcc0a73afbb2e501e1a7a60af3951e6b2
|
File details
Details for the file showhow-0.1.0-py3-none-any.whl.
File metadata
- Download URL: showhow-0.1.0-py3-none-any.whl
- Upload date:
- Size: 76.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f0bfb4e527f5e8d083950973a745a05e8330f80792504794d14f865e930ece0
|
|
| MD5 |
a1a909b0b2ec221e583ed3bfad97d551
|
|
| BLAKE2b-256 |
620e4a3e54513ef673858cad75e2a1efc27a0cd986a2e9573aa10e6c26d57611
|