lattices/canvas
Docs
Download
How it worksFor agentsThe deskShortcutsInstall

canvasspatial 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
◆Bshow or hide all panels
↓ download for macOSgithub ↗

free & open source · macOS 14+ · Apple Silicon

Canvas is the new name for Blink. The download installs Canvas.app, and the command-line tool is canvas.

~/Desktop— live demo
◆N

click anywhere — or press N — to drop a note

panels: 0/0
drag panels · state persists (x, y, w, h)

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. Canvas arranges the desk.

A real iTerm2 session uses the blink 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. Canvas 2.3.0 installs Canvas.app and the canvas CLI. The blink command remains an alias; existing note paths stay unchanged.
llms.txtproduct map + canonical links↗agents.mdcomplete operating contract↗CLI referencecommands + JSON shapes↗
zero → spatial note
macOS 14+ · arm64
npm install -g @arach/blink
canvas app install
canvas app open

canvas present q3-plan 
#x27;# Q3 plan\n\nShip it.' \ --slot 6 --style focus --json
notes → ~/Library/Application Support/Blink/Notes/
Use the CLI
Prefer canvas 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 the app 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]]
//KEYS

Everything is a keystroke away.

A modifier no app already owns. Every binding is rewritable in config.json.

◆Hyper=⌃⌥⇧⌘

actionscopechord
new note, anywhere
global
◆N
show or hide 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. Canvas 2.3.0 installs Canvas.app and the canvas CLI. Existing Blink notes and settings stay in place.
release — latest
Blink.dmg
Apple Silicon · macOS 14+ · notarized · no account
↓ download for macOSsource ↗
  • CLI docs ↗
  • llms.txt
  • AGENTS.md
  • Privacy ↗
lattices

Find any project's windows. Put them in place, for you or your agent. Free, open source, and local first.

Products

  • Lattices
  • Action
  • Canvas
  • Voice
  • Lattices for Linux
  • All products

Documentation

  • Lattices
  • Action
  • Canvas
  • Voice

For agents

  • Agent guide
  • Agent API
  • Embedded SDK
  • Action for agents
  • Canvas for agents
  • Voice for agents
  • llms.txt
  • AGENTS.md

Resources

  • Learn
  • Blog
  • RSS feed
  • Brand
  • Releases↗
  • Source↗
  • Report an issue↗
  • CLI on npm↗

Built by @arach · macOS and Linux. tmux optional.

MIT licensed