Rapid Reporter is a lightweight desktop tool for capturing categorised notes, screenshots and code/data snippets during session-based exploratory testing (SBTM).
Rapid Reporter was originally conceived and implemented by Shmuel Gershon. The original Windows executable is still available here.
Mac users like myself were unable to use the original tool, so I created an early Mac-specific port without access to the original source code. That attempt can still be found here. However, due to the rapid evolution of Xcode and Swift at the time, maintaining it became impractical.
This project is a complete rewrite using modern, cross-platform technologies so Rapid Reporter can run on Windows, macOS, and at stretch, Linux.
It is built with:
- Tauri v2
- React + TypeScript
- Tailwind CSS
- Rust backend
- Vitest + Testing Library (frontend component & integration tests)
- GitHub Actions CI (frontend + Rust tests on every push/PR)
When you end a session, Rapid Reporter writes an export folder into your home directory.
- macOS:
~/RapidReporter-YYYY-MM-DD-HHMM/ - Windows:
%USERPROFILE%\\RapidReporter-YYYY-MM-DD-HHMM\\
Each export folder contains the Markdown report plus an assets/ folder (icons + screenshots).
Rapid Reporter exports structured, portable Markdown reports including session metadata, summary indicators, chronological notes, embedded screenshots, and formatted code snippets.
Click the preview below to view the full sample report.
If you download and run the macOS app, you might encounter security warnings or blocked launches due to macOS Gatekeeper.
To install and open the app:
- Download the
.dmgfile and drag the app to/Applications. - Try to open the app normally (e.g. via Finder or Launchpad).
- If macOS blocks it with a warning, open System Preferences → Security & Privacy → General.
- Confirm when prompted.
If macOS still refuses to open the app, you can manually remove the quarantine attribute:
xattr -dr com.apple.quarantine "/Applications/Rapid Reporter.app"Then try launching the app again.
This simply removes macOS's download quarantine flag from the application bundle.
Future releases may include proper code signing and notarisation.
Rapid Reporter was originally conceived and implemented by Shmuel Gershon, whose work introduced a generation of testers to fast, session-centric note taking aligned with Session-Based Test Management (SBTM) principles.
This project is an independent modern re-implementation inspired by the original tool. All source code in this repository has been written from scratch.
The Rapid Reporter application icon and all category icons were designed from scratch by Mary (MD Creations) and are used with permission.
The artwork is original and forms part of the Rapid Reporter visual identity.
You can find more of Mary’s work at MD Creations.
- Start a session with:
- Tester Name (persisted between sessions)
- Charter (multi‑line supported)
- Duration (30, 60, 90, 120 minutes, or unlimited)
- Always‑on‑top instrument panel
- Visual session progress indicator
- Confirmation prompt before ending session
- Clean exit option from start screen
- Keyboard‑first note entry
- Categorised notes:
- Test
- Bug
- Warning
- Observation
- Question
- Idea
- Snippet (for structured/code content)
- Prefix indicator for note type
- Instant commit with Enter
- Multi‑line entry supported
- Snippet notes exported as fenced Markdown code blocks
- One‑click full screen screenshot capture
- Region (area) capture supported on macOS and Windows (platform-specific flow; see below)
- Screenshots recorded as first‑class note type
- Stored with unique timestamped filenames
- Automatically copied into export folder
- Exported as embedded images in Markdown report
Rapid Reporter currently uses different region-capture mechanics per platform while the cross-platform UX is being refined.
- macOS: Uses an in-app drag-selection overlay (multi-monitor aware). Press
Escto cancel. - Windows: Uses the native Snipping Tool (
ms-screenclip:) as a fallback. TriggeringRegionopens the Windows snipping UI, and Rapid Reporter imports the image from the clipboard when a snip is completed.
- Region capture depends on the Snipping Tool placing an image on the clipboard.
- Pressing
Escin Snipping Tool is treated as a cancel (no screenshot is added). - If no clipboard image arrives within a short timeout (currently ~5 seconds), Rapid Reporter exits capture mode and returns to normal without showing an error dialog.
- In some VM environments, snipping interactions may feel slightly slower than on native Windows.
- Shows the last 6 notes
- Prevents context loss during sessions
- Stable layout (no scrolling or UI shift)
- Supports screenshots and snippet preview
- Export session to structured Markdown report
- Export includes:
- Metadata header formatted as bold bullet list (Tester, Charter, Started, Duration)
- Icon‑based Summary section (Bug, Idea, Observation, Question, Warning — only shown when present)
- Notes in chronological order
- Icons for Bug, Warning, Observation, Question, Idea (to draw the reader's attention)
- Embedded screenshots
- Snippet code blocks
- Fully portable export folder structure:
RapidReporter-YYYY-MM-DD-HHMM/
RapidReporter-YYYY-MM-DD-HHMM.md
assets/
icons/
screenshots/
- Rust unit tests validate summary generation and pluralisation logic
Frontend:
- React
- TypeScript
- Tailwind CSS
Backend:
- Rust (Tauri)
- Screenshot capture via Tauri plugin
- File management via Rust commands
Storage:
- Session data held in memory during session
- Exported reports written to user's home directory
- Assets (icons, screenshots) embedded into export folder
- Node.js 18+
- Rust
- macOS, Windows, or Linux
npm installnpm run desktopRapid Reporter includes Rust unit tests covering core Markdown export logic (e.g. summary generation and pluralisation).
From the src-tauri directory, run:
cargo testOr from the project root:
npm run test:rustAll tests must pass before merging changes that affect backend export behaviour.
Rapid Reporter includes React component tests and App-level integration tests using Vitest and Testing Library.
Run in watch mode:
npm testRun once (for CI or pre-merge validation):
npm run test:runRun frontend + Rust tests together:
npm run test:allFrontend tests cover:
- StartSessionModal validation logic
- InstrumentPanel behaviour (note entry, type cycling, recap toggle, end session)
- App-level flow (start session → capture UI → end session → export)
- Mocked Tauri command invocation boundaries
Rapid Reporter uses GitHub Actions to automatically run:
- Frontend tests (Vitest)
- Rust unit tests (cargo test)
on every push and pull request.
Linux system dependencies required for Tauri are installed during CI to ensure backend compilation succeeds on Ubuntu runners.
All checks must pass before merging changes into main.
npm run tauri build- Export session to PDF (from markdown)?
- Click screenshot in recap to open file
- Keyboard shortcut for screenshot capture
- Autosave session recovery
- Session import / resume
- Rich HTML export
- End-to-end (E2E) tests against packaged Tauri build
Rapid Reporter aims to:
- Minimise friction during exploratory testing
- Preserve tester flow state
- Capture evidence quickly
- Produce useful session artefacts
MIT License © 2026 Del Dewar See LICENSE file for details.


