Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
Support Step Recorder (ssr) takes a screenshot on every click, notes the text you type and saves a ZIP with an HTML report. A free, open-source replacement for psr.exe on Windows, macOS and Linux, Way
翻訳待ち
生産性Rust · ShellGitHub @Le-Syl21オンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Free, open-source alternative to Windows' Problem Steps Recorder (psr.exe) for Windows, macOS and Linux (X11 & Wayland): screenshot on every click, typed text, and a replayable HTML report. Written in Rust.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Cross-platform user-action recorder written in Rust — an open clone of Windows'
Problem Steps Recorder (psr.exe) to document a bug or a step-by-step how-to.
Questions, bug reports, beta testing, or just want to chat? Join the Discord:
Website: le-syl21.github.io/support-step-recorder
(download, how-to, Linux/Wayland setup, FAQ).Read the full README ↗ssr)Cross-platform user-action recorder written in Rust — an open clone of Windows' Problem Steps Recorder (
psr.exe) to document a bug or a step-by-step how-to.
Questions, bug reports, beta testing, or just want to chat? Join the Discord:
Website: le-syl21.github.io/support-step-recorder (download, how-to, Linux/Wayland setup, FAQ).
On every click, ssr captures the relevant window, records the mouse button,
aggregates typed text between clicks, and — when available — the active
window info. When you stop, you land in the guide editor: rename and
describe steps, reorder or delete them, combine several recordings, then save an
editable project (.ssrproj) and export a .zip bundling the screenshots, a
steps.json, and a self-contained, replayable HTML report.
The interface is available in English and French (auto-detected from your
locale, switchable with the FR/EN button).
xdg-desktop-portal + PipeWire
(works on GNOME, KDE, wlroots…), with a one-time consent dialog and a
reusable token so it isn't asked again..ssrproj, reopen it later, keep editing;
exporting a ZIP is a separate action. Unsaved work is asked about before it is
replaced, and recovered after a crash.Input and screen capture are abstracted behind backends, chosen at compile time
(cfg) and at runtime (Wayland vs. the rest):
| Component | Windows / macOS / Linux X11 | Linux Wayland |
|---|---|---|
| Input (clicks / keys) | device_query | evdev (/dev/input) |
| Screen capture | xcap (active window) | xdg-desktop-portal + PipeWire (user picks a window or screen) |
Why a dedicated Wayland path? Wayland forbids passive global input capture by a normal client, so we read
/dev/inputdirectly (needs audevrule, see Linux/Wayland setup). And screen capture must go through the desktop portal + PipeWire —xcap's Wayland path only works on wlroots compositors, not GNOME/KDE, so we use the portal for all Wayland.
~/.cache/ssr on Linux, mode 0700)..ssrproj; Export guide…
(Ctrl+E) writes the shareable .zip. Both write a temporary file first and
replace the target only once complete.| File | Contents | Use |
|---|---|---|
.ssrproj | project.json, steps.json, assets/<sha256>.<ext> | Reopen and keep editing |
.zip (export) | report.html, steps.json, the referenced images | Send to support / colleagues |
ssr file.ssrproj or ssr recording.zip opens a file at start. Imported
archives are treated as untrusted: only steps.json and the images it names are
read (never report.html), paths, sizes and image formats are checked.
cargo run -p support-step-recorder-gui # or: cargo run --bin ssr
cargo test --workspace # run the tests
Linux build dependencies (for the Wayland capture path): libpipewire-0.3-dev,
libspa-0.2-dev, clang (bindgen). On Debian/Ubuntu:
sudo apt install libpipewire-0.3-dev libspa-0.2-dev clang
The evdev backend reads /dev/input. To grant access without adding your
user to the input group, install the provided udev rule:
sudo ./packaging/install-linux.sh
It installs /etc/udev/rules.d/60-ssr-input.rules (TAG+="uaccess"), granting
the active-session user read access to input devices. The 60- prefix is
required: the uaccess tag must be set before systemd's seat rules apply.
⚠️ Security: this lets apps run by the active user read keyboard/mouse input — the assumed trade-off for a PSR-style recorder on Wayland. Screen capture additionally goes through the portal (consent popup, reusable token).
The rule is only needed to record: opening, editing, merging, saving and exporting guides work without it.
This is the beginning of the README. Read the rest at the original. Read the full README ↗