Universal GTK4 / Libadwaita text editor and encrypted notes application for Linux.
Multi-tab document editing, 176+ language syntax highlighting, real-time local CPU voice dictation, and military-grade AES-256-GCM biometric locked notes.
Reaper's Notes is a modern desktop text editor and encrypted vault engineered to seamlessly replace standard desktop text editors (like GNOME Text Editor and Gedit) while providing high-performance features for daily writing, coding, and private note-taking:
- Full Text Editor Engine: Multi-tab editing (
Adw.TabView), Find and Replace (Ctrl+F/Ctrl+H), zoom controls (Ctrl++/Ctrl+-), line numbers, margin guides, and word wrap. - Interactive Language & File Type Selector: Click the bottom-right language tag to choose from 176+ syntax highlighters or switch instantly to Plain Text (stripping all markdown headers and numbered list formatting for pure text editing).
- Biometric Vault & AES-256-GCM Encryption: A dynamic HeaderBar button shows a lock icon (
🔒) on unlocked notes and an unlock icon (🔓) on locked notes. Encrypted with AES-256-GCM and guarded by GNOME Tri-Factor Biometrics (Howdy Face ID, Goodix fingerprint, or PAM fallback). - Real-Time Streaming Voice Dictation: Local in-memory C++ engine (
libwhisper_easy.so) streaming spoken words directly onto the canvas in real time with ~50-70ms latency. Zero cloud dependencies. PressEscapeanytime to abort without altering your note. - Safe Antigravity AI Assistant: Dedicated modal prompt dialog (
Ctrl+Alt+A) to summarize, outline, or transform text on demand. - Adaptive System Theme & OLED Pitch Black: Seamlessly adapts to your GNOME system theme (Light, Dark, and user accent colors) by default, with an Appearance menu to toggle Pure OLED Pitch Black (
#000000), Dark Mode, or Light Mode.
- Click the language badge in the bottom-right statusbar (
Markdown ▾,Plain Text ▾,Python ▾, etc.). - A searchable popover provides instant access to 176+ syntax highlighters supported by GtkSourceView 5.
- Switching to Plain Text immediately removes all markdown styling, headings, and list formatting, allowing the editor to function as a traditional clean text editor.
- Automatically adjusts default save extensions (
.txt,.md,.py,.c,.rs,.json, etc.).
- Dynamic Lock/Unlock Button:
- On unencrypted notes: Displays a lock icon (
changes-prevent-symbolic) with tooltip "Lock & Encrypt Note (AES-256-GCM)". - On locked notes: Displays an unlock icon (
changes-allow-symbolic) with tooltip "Unlock Note (Biometric authorization required)".
- On unencrypted notes: Displays a lock icon (
- Cryptographic Security: Every locked note is encrypted using authenticated AES-256-GCM with a unique 12-byte random initialization vector (IV/nonce) and machine-salted key derivation (PBKDF2-HMAC-SHA256).
- Authentication Tri-Factor: Native Polkit integration triggers Howdy Facial Recognition, Goodix capacitive fingerprint scanner, or password fallback.
- Speak naturally and watch words appear live at your cursor as you speak.
- Powered by a lightweight in-memory C++ wrapper (
libwhisper_easy.so) communicating directly withlibwhisper.so. - Runs 100% on your local CPU (sub-70ms inference on modern Intel/AMD processors). Zero telemetry or network requests.
- Escape Key Abort: Hit
Escapeanytime during recording to immediately drop uncommitted speech audio and keep your note clean.
- Direct Vault Discovery: Automatically detects configured Obsidian vaults from
~/.config/obsidian/obsidian.jsonand standard directories (~/Documents/Valut,~/Documents/Obsidian Vault). - Push to Obsidian (
Ctrl+Alt+O): Save your active document straight into your Obsidian vault with a single keypress or HeaderBar click (document-send-symbolic). Dispatches nativeobsidian://openURIs so your note is instantly indexed. - New Obsidian Note (
Ctrl+Shift+O): Spawns a new tab pre-populated with standard Obsidian YAML frontmatter (title,date,tags: [notes]) and Markdown syntax.
- Plugin Architecture: Decoupled extensions engine (
src/reaper_notes/plugins/) featuring:base.py: Clean lifecycle interface (on_load,on_unload,get_menu_items).manager.py: Dynamic runtime discovery across built-in plugins and user scripts (~/.config/reaper-notes/plugins/).example_plugin.py: Reference implementation providing live document word/character counters, ISO timestamp insertion, and text transformations.
- AI-Agnostic Engine (
ai_plugin.py): External users on GitHub are never locked into a single AI runtime. Supports:- Antigravity CLI (
agy) - Anthropic Claude CLI (
claude) - Ollama Local Daemon (offline private LLMs at
http://localhost:11434) - OpenAI-Compatible API endpoints
- Auto-detection selects the best available local or system AI tool automatically.
- Antigravity CLI (
- System Default: Automatically tracks your GNOME desktop light/dark theme and system accent colors.
- Pure OLED Pitch Black (Reaper): Pure
#000000canvas with Ubuntu Purple (#7764D8) accents for deep battery savings and zero backlight bleed on OLED displays. - Dark Mode & Light Mode: Force standard dark or light schemes regardless of system settings.
Download the latest .deb package from the Releases tab or build it locally:
# Install package
sudo dpkg -i reapers-notes_1.0.0_amd64.deb
# Resolve any missing system libraries
sudo apt-get install -fcurl -fsSL https://raw.githubusercontent.com/ImNotMrReaper/reapers-notes/main/install.sh | bashgit clone https://github.com/ImNotMrReaper/reapers-notes.git
cd reapers-notes
# System-wide install (all users):
sudo ./install.sh
# Or local user install (without root):
./install.sh| Shortcut | Action |
|---|---|
Ctrl + T / Ctrl + N |
Open New Tab |
Ctrl + Shift + N |
Open New Window |
Ctrl + W |
Close Active Tab |
Ctrl + O |
Open Document / Note |
Ctrl + S |
Save Document |
Ctrl + Shift + S |
Save Document As... |
Ctrl + F |
Find in Document |
Ctrl + H |
Find and Replace |
Ctrl + Alt + O |
Push Note to Obsidian Vault |
Ctrl + Shift + O |
Create New Obsidian Note |
Ctrl + Alt + V / F9 |
Start / Stop Real-Time Voice Dictation |
Escape |
Cancel Voice Dictation / Close Search Bar |
Ctrl + Alt + A |
AI Assistant Prompt Dialog |
Tab / Right Arrow |
Accept Ghost-Text Autocomplete Suggestion |
Ctrl + + / Ctrl + = |
Zoom In |
Ctrl + - |
Zoom Out |
Ctrl + 0 |
Reset Zoom to 100% |
To package the application from source:
cd reapers-notes
./build_deb.shThis generates reapers-notes_1.2.0_amd64.deb in the repository root.
To cleanly remove Reaper's Notes while preserving your saved notes:
# If installed via .deb:
sudo apt remove reapers-notes
# If installed via install.sh:
./uninstall.shThis project is licensed under the MIT License.