WindowNote
Notes that belong to a window, not to a notes app.
Hit ⌥⇧N over any window and pin a note to it: "migration running, don't close", "waiting on numbers from Marc", "feature done, tests missing". The note follows the window as it moves, hides when the window is covered or minimised — and comes back when the window does, including after a restart. That works because notes are anchored to a fingerprint of the app, window title and document path rather than to a throwaway window ID. Per note you choose whether it follows the window or the content inside it, so a note can belong to exactly this conversation, this page, this file. Editing happens right on the note, without the app underneath losing focus. Local-first: everything stays on your Mac.
The context is in the window. The note is in a different app. That's the problem.
Four terminals open, three of them waiting on something. A spreadsheet where you no longer remember whether the numbers are final. An editor window from yesterday. The information you need exists — it's just sitting in a notes app, where you have to search for it first and then work out which note belongs to which window.
WindowNote turns that around: the note lives on the window.
One hotkey, one note
Press ⌥⇧N over whatever window you're in. A note appears on it, you type, done. Editing happens right on the note — and because it runs as a non-activating panel, the app underneath never loses focus. You type into the note while your terminal stays active, and looks it.
The note follows the window as it moves and resizes, hides when the window is covered, minimised, or on another Space, and comes back when the window does. It behaves like part of the window rather than an overlay permanently floating in your way.
What happens after a restart
A macOS window ID is worthless the moment the window closes. So notes aren't anchored to one. They're anchored to a fingerprint: which app, which document path, what the title looked like. On the next launch those fingerprints are matched against the windows that are open now — strongest signal first, from an exact document match through the window title down to the project name inside it.
How certain the match was is shown alongside. A confidently wrong match is worse than an admitted guess, and two different documents in the same app are never confused with each other, however similar their titles.
Window or content — your call
"Per tab" usually fails because tabs aren't windows. But in many apps the real context sits in the window title: the conversation in Messages, the page in Safari, the working directory in Terminal.
So you decide per note:
- This content — the note only comes back when that exact conversation, page or file is open again. Otherwise it waits instead of guessing.
- This window — the note follows the window even as the title changes. Right for a project window you spend all day moving between files in.
Arrange them
Several notes on one window stack up. Drag any of them exactly where it belongs — the position is stored relative to the window and travels with it. Or stick them to the outside edge of the window where they cover nothing, like real sticky notes along the side of a monitor.
Status and colour make a screen full of notes readable at a glance: in progress, blocked, waiting, review, done.
What is read — and what isn't
WindowNote needs the Accessibility permission. That permission is technically broad, so here's exactly where the line sits:
Read: the app's name and bundle identifier, the window title, its position and size, and the document path when the app offers one.
Not read: the contents of your windows, keystrokes, the clipboard, passwords, or the accessibility tree inside other apps.
Notes live in a SQLite database in your user folder. No account, no cloud, no telemetry. The only thing that ever leaves your Mac is the licence key during activation.
Price
Free for two windows, with no time limit. Beyond that: €15 per year, up to three Macs.
The limit is on windows, not notes — you can keep as many notes as you like on those two windows. And whatever you've written stays readable and editable even if a subscription lapses.
*Currently in development.*
Tech stack
- Flutter
- Swift
- AppKit
- Accessibility API
- SQLite
Platforms
- macOS
Tags
- Productivity
- Notes
- Window Management
Privacy
Show full privacy policy
Privacy Policy – WindowNote
Last updated: 2026-07-20 · Provider: Jonas Hottler · support@balane.tech
WindowNote is a local-first macOS app. It is built so that your notes, and everything it knows about your windows, never leave your device.
1. Notes and window data
- Your notes are stored exclusively locally, in a SQLite database in your user folder (`~/Library/Application Support/de.balane.windownote/`).
- This data is never transmitted to the provider or to third parties. There is no account, no sync and no cloud.
2. The Accessibility permission
To keep notes attached to the right windows, the app requires the macOS Accessibility permission. That permission is technically broad; the app deliberately limits how it uses it.
Read, and only this:
- the application's name and bundle identifier
- the window title
- the window's position, size and visibility state
- the document path, where the application exposes it through the Accessibility API
Not read:
- the contents of your windows
- keystrokes, clipboard, passwords
- the accessibility tree inside other applications
This data is processed and stored locally, to the extent needed to recognise a window again (bundle identifier, window title, document path). It is never transmitted.
3. Purchase and licence
Purchases are handled by Lemon Squeezy (Lemon Squeezy LLC) as Merchant of Record. Lemon Squeezy processes the data required for purchase, invoicing and VAT (e.g. name, email address, payment details, country) as an independent controller. Lemon Squeezy's privacy policy applies.
For licence activation and validation, the app transmits to Lemon Squeezy:
- the licence key
- your Mac's device name (hostname), so you can tell your activated devices apart in the customer portal
No notes or window data are transmitted. Without a licence key (free use), the app performs no network communication at all.
Validation happens at most once per day. If the server cannot be reached, the licence remains valid for seven days.
4. No analytics, no telemetry
The app contains no analytics, tracking or crash-reporting libraries.
5. Your rights
Because the provider collects no personal data through the app, requests for access, rectification or erasure directed at the provider will generally have no subject matter. For data processed as part of a purchase, contact Lemon Squeezy as the controller. For email support requests, the general privacy policy on this website applies.
You can delete your local data by removing the app and deleting the folder `~/Library/Application Support/de.balane.windownote/`.
