A local-first desktop notepad for exploratory testing. Capture evidence during a Session, track Findings, and turn your notes into editable Testware Drafts.
Get started · Download · Wiki · Development
- Organize testing Sessions with context, objectives, and a chronological Timeline.
- Capture Notes, API responses, logs, screenshots, and attachments.
- Link Findings to their supporting Evidence.
- Start a local Finding or test-case draft from Note or its collection. Choose a manual output format or finding template, then save explicitly. Optional AI setup is inside the draft. Session Chat accepts pasted or chosen images. Testware remains the domain umbrella for testing output.
- Use Copy on a Note, test case, Finding, or selected library record. Library copying keeps the current Session and uses the saved output.
- Use Copy first screenshot to copy the first managed screenshot in a Note or record.
Capture and editing work without AI. Optional AI uses your authenticated local Claude Code, Codex CLI, or GitHub Copilot CLI. QA Scribe does not store provider API keys.
Get the latest build from GitHub Releases.
- macOS: Open the
.dmgand drag QA Scribe into Applications. Chooseaarch64for Apple Silicon orx64for Intel. - Linux: Install the
.debor.rpm, or run the.AppImage.
For Debian and Ubuntu, enable the signed APT repository:
bash <(curl -fsSL https://ddv1982.github.io/qa-scribe/install-apt-repo.sh)
sudo apt update
sudo apt install qa-scribeThe bootstrap verifies the repository setup package with the pinned signing key. Later updates use your normal APT workflow.
- Desktop and backend: Rust and Tauri 2.
- Interface: React 19, TypeScript, Vite, and Tiptap.
- Storage: SQLite through
rusqlite, with managed attachment files. - Typed bridge: Tauri commands, Serde, and Specta-generated TypeScript bindings.
- Tooling: Bun, the Rust
tsc-rscompiler and language server, the Microsoft TypeScript 7 extension client, and Oxlint with its Go-based typed-lint engine. - AI: Local CLI processes for generation and Chat.
Contributor setup, toolchains, editor configuration, and checks are in the development guide. For a first testing task, follow Get started. Optional AI setup is in AI providers and Session Chat.
Sessions and Drafts live in local SQLite. Attachments are managed files in the app-data directory. Deleting a Session removes its database records and attachments. Older Electrobun databases are not migrated.
Deleting a Finding removes its Evidence links. Deleting a Draft preserves its AI Run history.
AI generation sends the selected context and attachment metadata, without raw attachment binaries. Sending a Chat image sends its pixels to the selected CLI, including when that conversation is replayed. Chat tools and connectors use the selected CLI's permissions. See the AI guide for the full behavior.
crates/qa-scribe-core/ Domain, SQLite, attachments, and generation
crates/qa-scribe-app/ Non-GUI smoke harness
src-tauri/ Desktop shell and Tauri commands
frontend/ React interface and typed bridge
docs/ Guides, architecture, and research