Sticky notes for Windows whose interface disappears when you are not using it. A note shows only its text. Focus it and the title bar appears by growing the window, so the writing area never shrinks under you. There are no visible grips either: open notes offer hidden edge and corner resize zones instead. Notes take no taskbar slot, render Markdown when inactive, and go to a recoverable bin instead of vanishing when you close them. Saving is automatic and atomic, with a rolling backup and a dated daily snapshot, and startup recovers from the best surviving copy when the main file is missing or looks wrong.
The full requirement list is in SPEC.md, written as R1 to R29 with an
acceptance clause. Requirement R7 is the whole idea: UI details must hide when
unused.
In daily use by the author since February 2026. Windows only: it depends on
Win32 window styles through ctypes, so it does not run on macOS or Linux. One
file, about 10,700 lines of Python on Tkinter, with a test suite of almost the
same size. There is no installer and no packaged build.
Python 3.11, which is the version it is developed and tested on. Tkinter comes with the standard Windows Python installer.
python -m pip install -r requirements.txtpython sticky_notes.pywor double-click run_sticky_notes.bat.
The first note opens immediately. Click the notification-area icon, normally in
the taskbar overflow drawer, to show the notes, add one, open the bin of closed
notes, or save and exit. Ctrl+N makes a new note.
--resident starts the app without opening a note, for use from a logon task.
Next to sticky_notes.pyw: notes.json, a notes.json.bak written with every
save, dated copies under daily-backups/, and pasted or dropped files under
attachments/. Nothing leaves the machine.
Set GHOSTSTICKY_HOME to keep that state somewhere else, which you need if the
app itself sits on a read-only or shared path:
$env:GHOSTSTICKY_HOME = "$env:APPDATA\GhostSticky"python -m pip install -r requirements-dev.txt
python -m unittest discover -s tests -v462 tests: 455 test functions plus 7 property-based ones. The suite builds real Tkinter windows, so it needs a desktop session rather than a headless one, but it keeps them withdrawn and fully transparent and never takes focus. Blocking dialogs are replaced by a guard that fails the test instead of waiting for a click nobody will give it. Window-event behaviour is tested in both directions: many tests assert that a state change does not happen when the event arrives without its cause.
python tools/check_rules.py is a small static check over the application
source for the structural rules the project keeps, such as which functions are
allowed to rewrite editor text.
pip install pyvda adds pinning a note to every virtual desktop.
MIT. See LICENSE.