Asd — Encrypted Note Maker
Local-first, encrypted note-taking application and secret manager for Linux with background tray daemon.
Built natively for Ubuntu and modern GNOME desktop environments with Python 3, GTK4, and Libadwaita. Asd delivers a zero-cloud, privacy-first workflow with client-side authenticated AES-128 cryptography, PBKDF2 key derivation, local SQLite storage, and instant global hotkey access (Ctrl+Shift+J).
GTK4 + Libadwaita
Python 3 & Native C-Bindings
0700 and database/WAL files locked to 0600. SQLite secure_delete zero-overwrites deleted content on disk.
Desktop Workflow & Hardened Architecture
Engineered for seamless GNOME integration, instant hotkey invocation, and zero-compromise local cryptography.
Borderless Minimalist Lock Screen
When locked or during initial setup, the application displays as a sleek, borderless floating card. Features draggable repositioning across the desktop, quick Esc-to-tray minimization, and in-memory key derivation with zero plaintext password disk caching.
Two-Pane Editor & Real-Time Filtering
Clean Libadwaita layout adhering to modern GNOME Human Interface Guidelines (HIG). Includes instant sidebar search filtering, tag categorization, auto-saving markdown workspace, and an integrated high-entropy password generator on the bottom action bar.
Top Panel Tray Daemon & Global Hotkeys
Runs unobtrusively as a single-instance background daemon via Gio.Application.hold(). Pressing Ctrl+Shift+J or clicking the tray icon centers the window instantaneously in ~2ms without cold-start application launch delays.
Authenticated AES-128 & POSIX Hardening
No plain passwords stored. Key derivation enforces PBKDF2-HMAC-SHA256 with 480,000 iterations. Note contents and metadata are encrypted via Fernet (AES-128-CBC + HMAC-SHA256) before SQLite persistence, with memory actively wiped upon vault locking.
Explore the Open Source Codebase on GitHub
Review the complete Python source code, packaging manifests, and GTK4 Libadwaita architecture on GitHub.
Cryptographic Scheme & Hardening
Local-first authenticated encryption with zero telemetry and zero external network calls.
PBKDF2 Key Derivation
Uses PBKDF2-HMAC-SHA256 with 480,000 iterations and a 16-byte cryptographically secure random salt to protect against offline GPU brute-force attacks.
Fernet Symmetric Encryption
All note titles, bodies, and binary exports are encrypted via Fernet (AES-128-CBC + HMAC-SHA256) with a 256-bit derived key before disk writes.
Strict POSIX Sandboxing
Local storage directory (~/.local/share/asd/) is restricted to 0700 (rwx------) and database files to 0600 (rw-------).
Secure SQLite Zero-Overwrite
Enforces PRAGMA secure_delete = ON so deleted notes and database pages are actively overwritten with zeroes to block residual forensic recovery.
Technical Specifications
System requirements and architecture specifications.
| Target Platform | Ubuntu Linux 22.04 / 24.04+ (GNOME Desktop / Debian-based) |
|---|---|
| Primary Language | Python 3.10+ (PyGObject C-Bindings) |
| UI Framework | GTK4 & Libadwaita (gir1.2-adw-1) |
| Database Engine | SQLite3 with WAL Mode & PRAGMA secure_delete = ON |
| Cryptography Library | Python cryptography (Fernet AES-128-CBC + HMAC-SHA256) |
| Desktop Integration | AppIndicator3 System Tray (libayatana-appindicator3), GNOME Global Shortcut (Ctrl+Shift+J) |
| Licensing & Source | Open Source • github.com/stonemanhero/asd |
Need custom Linux software, desktop tools, or Python development?
I build native Linux GTK4 applications, CLI utilities, background daemons, and secure local databases.