Metadata-Version: 2.4
Name: sidenote
Version: 1.4.1
Summary: A zero-friction todo overlay for your terminal. Built for ADHD developers.
Author: Sidenote Contributors
License: MIT
Project-URL: Homepage, https://github.com/Lyellr88/sidenote
Project-URL: Repository, https://github.com/Lyellr88/sidenote
Project-URL: Issues, https://github.com/Lyellr88/sidenote/issues
Keywords: terminal,todo,adhd,productivity,overlay,cli,notes
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: keyboard>=0.13.5
Requires-Dist: pywin32>=311
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: ruff>=0.16; extra == "dev"
Dynamic: license-file

# Sidenote

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

![Platform](https://img.shields.io/badge/platform-Windows-blue)
![Python](https://img.shields.io/badge/python-3.9+-green)
![License](https://img.shields.io/badge/license-MIT-blue)
[![PyPI](https://img.shields.io/pypi/v/sidenote)](https://pypi.org/project/sidenote/)

<https://github.com/user-attachments/assets/f506c214-92fc-4827-bcfa-19c170bb75f4>

## 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 |
| **Resizable Width** | Drag it wider for longer notes; it stays that width as the terminal moves |
| **Text Zoom** | `Ctrl+`/`Ctrl-` to make the text bigger or smaller |
| **Check Things Off** | Double-click a todo to complete it, don't just delete it |
| **Edit Todos** | Select one and press `Enter` to fix a typo without retyping it |
| **Reorder Todos** | Drag one up or down to move it |
| **Tabs** | Up to 5 separate lists, named and switched from the header |
| **Undo Delete** | `Ctrl+Z` brings back the last todo (or batch) you deleted |
| **Persistent Storage** | Todos saved atomically, survive reboots and crashes |
| **Global Hotkey** | `Shift+Tab` toggles from anywhere |
| **Copy a Todo** | Right-click a todo to copy its text, with a quick flash to confirm |
| **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

```powershell
pip install sidenote
sidenote init
sidenote  
```

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](https://github.com/lyellr88/sidenote/blob/master/DOCS.md#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.
**Copy** - right-click a todo to put its text on the clipboard. It flashes to confirm.
**Edit** - select a todo and press `Enter`. Change the text and press `Enter` again to save, or `Escape` to leave it as it was.
**Reorder** - press and drag a todo up or down.
**Remove** - select it and press `Delete`.
**Undo a delete** - `Ctrl+Z` brings back the last todo (or `Ctrl+Delete` batch) you removed.
**Resize** - drag the edge to widen it for longer notes; the width sticks until you restart.
**Zoom text** - `Ctrl+` (or `Ctrl+=`) makes it bigger, `Ctrl-` makes it smaller. Resets when you restart.
**Add a tab** - click `+` in the top-left, type a name, press `Enter`. Up to 5.
**Switch tabs** - click a numbered tab button next to `+`.
**Rename a tab** - double-click its name in the footer, type a new one, press `Enter`.
**Delete a tab** - click the `×` next to its name in the footer, then confirm. Only shows once you have a second tab.

The `?` button lists every action, so there's nothing to memorise.

### Hotkeys

| Key | Action |
|-----|--------|
| `Shift+Tab` | Toggle overlay (works from any app) |
| `Enter` | Add todo (or save a tab name while naming one) |
| `Double-click` | Check off / uncheck |
| `Right-click` | Copy a todo's text |
| `Enter` on a todo | Edit its text |
| `Drag a todo` | Reorder it in the list |
| `Space` | Check off / uncheck the selected todo |
| `Delete` / `Backspace` | Remove selected todo |
| `Ctrl+Delete` | Clear all checked-off todos |
| `Ctrl+Z` | Undo the last delete |
| `Ctrl+` / `Ctrl-` | Bigger / smaller text |
| `Escape` | Hide overlay (or cancel naming a tab) |
| 🔓 / 🔒 | Pin to one specific terminal |
| `+` | Add a tab (up to 5) |

### 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.9 or newer (tested on 3.9 and 3.13), and a terminal (PowerShell, CMD, or Windows Terminal). Pulls in two small libraries: `keyboard` and `pywin32`.

## How Releases Are Made

A release happens when a maintainer pushes a version tag such as `v1.5.0`. GitHub Actions then checks that the tag matches the package version, builds the package, publishes it to PyPI through trusted publishing (no stored token), and publishes the GitHub Release with generated notes. Merging a pull request never publishes on its own. What shipped in each version is listed in [CHANGELOG.md](https://github.com/lyellr88/sidenote/blob/master/CHANGELOG.md) and on the [Releases page](https://github.com/Lyellr88/sidenote/releases).

## Documentation

**[Full documentation →](https://github.com/lyellr88/sidenote/blob/master/DOCS.md)**

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](https://github.com/lyellr88/sidenote/blob/master/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. 🧠⚡
