Skip to main content

A zero-friction todo overlay for your terminal. Built for ADHD developers.

Project description

Sidenote

A lightweight, ADHD-friendly todo list that lives right next to your terminal window

Platform Python License PyPI

Why This Exists

The ADHD Problem: You're coding in your terminal, a task pops into your head, and by the time you open Notepad/Tudo/a new tab, it's gone. That 2-second context switch is enough for ADHD brains to lose the thought entirely.

Every other tool costs you that switch - open an app, run a command, find the window. Sidenote is already there, docked to your terminal. Shift+Tab, type, Enter. Three seconds, without ever looking away from what you were doing.

Why not existing tools

Notepad/Heavy apps: Requires Alt+Tab, finding the window, clicking - thought is gone Tudo/Tuxedo/Rondo: Need to run a command, switch context, navigate UI - thought is gone PowerShell scratchpad: Need to open it, switch focus - thought is gone Other terminal UIs: Require launching a separate app or command - thought is gone

Features

This isn't about rich features but simplicity. It's about zero-friction capture. When you have ADHD, the best todo app is the one that's already open and doesn't make you think.

Feature Description
Terminal Integration Attaches flush to your terminal window, pixel-aligned
Smart Z-Order Sync When you click the terminal, todo comes forward with it
Movement Following Hides while you drag the terminal, snaps back when you stop
Check Things Off Double-click a todo to complete it, don't just delete it
Persistent Storage Todos saved atomically, survive reboots and crashes
Global Hotkey Shift+Tab toggles from anywhere
Lock to Terminal Lock button (🔓/🔒) to stick to a specific terminal
Built-in Help ? button lists every action, no need to memorise anything
Timestamps Each todo gets a timestamp when added
Dark Theme Minimal interface that matches terminal aesthetics
Light Footprint Python plus two small libraries; event-driven, so it idles at ~0% CPU

Install

pip install sidenote
sidenote
sidenote init 

That's it - Shift+Tab toggles it from anywhere.

Optionally, sidenote init adds start-note / stop-note shortcuts to your PowerShell profile.

If sidenote isn't found after installing, your Python Scripts folder isn't on PATH - see Troubleshooting.

Usage

Add - type in the box, press Enter. Timestamped automatically. Check off - double-click a todo. It greys out and shows [x]. Double-click again to uncheck. Remove - select it and press Delete.

The ? button in the top-left lists every action, so there's nothing to memorise.

Hotkeys

Key Action
Shift+Tab Toggle overlay (works from any app)
Enter Add todo
Double-click Check off / uncheck
Space Check off / uncheck the selected todo
Delete / Backspace Remove selected todo
Ctrl+Delete Clear all checked-off todos
Escape Hide overlay
🔓 / 🔒 Pin to one specific terminal

Commands

Command Description
sidenote Start the overlay
sidenote stop Stop it
sidenote status Is it running? Shows version and PID
sidenote --version Print the version (-V works too)
sidenote --help List every command (-h works too)
sidenote upgrade Update to the newest release
sidenote init Add PowerShell shortcuts

sidenote stop only ever terminates its own process - your dev servers, notebooks, and training runs are never touched.

Requirements

Windows 10/11, Python 3.7+, and a terminal (PowerShell, CMD, or Windows Terminal). Pulls in two small libraries: keyboard and pywin32.

Documentation

Full documentation →

FAQ · Troubleshooting · How it works · Data format · Upgrading · Uninstalling · Development

Contributing

Happy to take PRs for bug fixes, better terminal detection, performance, or cross-platform support. Run pytest first, and add a test if you're fixing a bug. See CONTRIBUTING.md.

License

MIT - do whatever you want with it.


Built by a developer with ADHD, for developers with ADHD. If this resonates, you get it. If it looks like overkill, it's not for you and that's fine. 🧠⚡

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sidenote-1.0.0.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sidenote-1.0.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file sidenote-1.0.0.tar.gz.

File metadata

  • Download URL: sidenote-1.0.0.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sidenote-1.0.0.tar.gz
Algorithm Hash digest
SHA256 033aa07b6c0365ff00db8f6009e5ab94d8defc96d0840266f2075abc8bb72e1d
MD5 97d01c7a54b4d19108402cf030bf076b
BLAKE2b-256 94461dffb0b5c006591980d70f4d3e0842395e14e944bc3f2b2cf813a5f0a421

See more details on using hashes here.

File details

Details for the file sidenote-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sidenote-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sidenote-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57132ff98b5cbe7f27a4519374a204a1b005ea114f8bb5263443524ab36a81cf
MD5 53818c0e9f3ea1f38d131aac3530790b
BLAKE2b-256 731e55c66aaebc28d31457702ed6e614549f42ae539f3c988575804ccada1b76

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page