blinkspatial notes for your Mac
A menubar app. Press Hyper+N anywhere and a glass note lands on your screen — placed in space, remembered there. Plain markdown you own. Open to your agents.
◆Nnew note
◆Bblink all panels
free & open source · macOS 14+ · Apple Silicon
~/Desktop— live demo
◆N
click anywhere — or press N — to drop a note
panels: 0/0
Panels remember position and size · native NSPanel glass
hotkeys
carbon
global chords, no accessibility grant
runtime
native
Swift + AppKit, zero Electron
format
.md
yaml frontmatter, files you own
cloud
none
no account — notes stay local
DEMO
Pi types the commands. Blink arranges the desk.
A real iTerm2 session uses Blink’s CLI to create, move, hide, and restore spatial notes — with the desktop itself as the workspace.
Pi → CLI → spatial desk
00:47 · sound on
native panels · plain markdown · positions persistopen video ↗
AGENT-FIRST
The filesystem is the API.
Notes are markdown files in a folder you own. Agents and the CLI write the same files the panels render — live, no plugins.
blink CLI
❯
standup.md
typed by agent
waiting for filesystem events…
Outside edits type themselves in — caret and all — so you notice without a notification.
FOR AGENTS
The whole operating contract, without the GUI.
Install once, use predictable verbs, and drop to plain Markdown whenever the abstraction gets in the way. These are the stable entry points an agent can discover and act on.
zero → spatial note
macOS 14+ · arm64
npm install -g @arach/blink
blink app install
blink app open
blink present q3-plan $'# Q3 plan\n\nShip it.' \
--slot 6 --style focus --jsonnotes → ~/Library/Application Support/Blink/Notes/
- Use the CLI
- Prefer blink over GUI automation. It handles slugs, atomic writes, stdin, and structured output.
- Files are truth
- Every note is one Markdown file. Metadata and portable placement intent travel in YAML frontmatter.
- Choose the verb
- present creates or composes; type adds a visible update; write quietly replaces; cat and search read.
- App optional
- Writes still land while Blink is closed. The app reconciles them when it is running or next opens.
- Configure by file
- Edit ~/Library/Application Support/Blink/config.json for behavior, appearance, styles, and workspaces. Valid changes hot-apply.
Core verbs: ls · cat · new · present · type · write · search · rm · path · workspaceSandbox with BLINK_HOME
CASE STUDY
Last 24 hours, laid out by priority.
Ask your coding agent to read what you touched, group it into top priorities, and park a one-liner per item on the desktop. The rest stays in the folder — only what matters is in view.
claude~/Notes · last 24h
ready
readypanels update live
~/Desktop— prioritized board
p0 0·p1 0
p0 · today
p1 · this week
p0-landing.mdp0
Ship cream landing — default theme + cut man-page chrome
p0-fling.mdp0
Fix fling-to-edge crash before the next release
p0-save.mdp0
Flush pending saves on panel close / quit — never trust debounce
p1-scout.mdp1
Scout broker reconnect on wake — dispatch recovery path
p1-workspaces.mdp1
Workspace brands as generic treatments, not product skins
p1-cli.mdp1
Document blink workspace + live reconcile for agents
agent is ranking the last 24h…
panels: 0/6summaries only · rest stays filed
SHEETS
Every note is its own surface.
Five render sheets, per note or as default. One key in config — hot-applied to every open panel.
preview
sheet: glass
Weekly review
Ship v2 · port the palette
Notes land where you leave them.
see [[roadmap]]
see [[roadmap]]
KEYS
Everything is a keystroke away.
A modifier no app already owns. Every binding is rewritable in config.json.
⌃⌥⇧⌘
actionscopechord
new note, anywhere
global
◆N
blink all notes
global
◆B
grid overlay
global
◆C
flip read / edit
panel
⌘⇧P
close panel
panel
⌘W
INSTALL
Free, open source, and yours.
A single native app for macOS. No account — download it, press Hyper+N, and start.
release — latest
Blink.dmg
Apple Silicon · macOS 14+ · notarized · no account
