Overview
What Canvas is, how to install it, and how it relates to Lattices.
Canvas overview
Canvas is a native macOS app for floating Markdown notes. Each note is one
floating panel and one Markdown file. The panel remembers its position and size.
The app and the canvas CLI read and write the same local files, so a person and
an agent work on the same notes.
Canvas 2.3.0 ships Canvas.app and the canvas CLI through @arach/blink.
Blink.app and blink remain compatibility names. Existing note paths,
configuration keys, bundle identity and blink.sock remain unchanged.
The note is the window, and the desktop is the workspace. Canvas has no library window and no Dock icon. It runs from the menu bar with floating note panels, a menu bar popover, and a command palette.
Install and launch
Requirements:
- macOS 14 or later on Apple Silicon.
- Node.js 18 or later for the npm command launchers.
Install the package. It includes the signed native
canvasCLI.npm install -g @arach/blink # or: bun add --global @arach/blinkInstall the app.
canvas app installdownloads the signed, notarized release, validates it, and installsCanvas.appin/Applications.canvas app installLaunch the app.
canvas app openResult: the app icon appears in the menu bar. If Lattices is running, Canvas hides its own icon by default (see
behavior.alwaysShowMenuBarIconin Configuration).
To update the app, run canvas app update. You can also download the DMG from
the download page.
First note
Press Hyper+N to create a note. Hyper is Control+Option+Shift+Command. Hyper+B
shows or hides all note panels. You can change both hotkeys in config.json.
From a terminal or an agent:
canvas present standup "# Standup" --slot 6 --writer agent
canvas type standup "- shipped the CLI" --writer agent
canvas cat standuppresent creates the note and sets its grid slot. type appends text that the
open panel reveals character by character. See CLI for the
full command set.
Agent surfaces
Use these agent surfaces in this order:
| Surface | Use it for | Reference |
|---|---|---|
blink CLI |
Create, read, edit, search, and delete notes; group and brand workspaces; open and arrange live panels. | CLI |
| Files | Read or write <id>.md notes and config.json directly when the CLI does not fit. |
Concepts, Configuration |
| Agent socket | Query open panels, present notes, save and restore desks, and receive change events from the running app. | Agent socket API |
Install the agent skill to give a coding agent these instructions:
npx skills add arach/lattices --skill blink --global --yesThere is no Canvas MCP server today. The broader agent verb set and MCP layer in Agent API proposal and Agent integration proposal are proposed, not shipped.
Relationship to Lattices
Canvas is a separate product in the Lattices family. It shares the Lattices
repository (products/blink/) and website, but it is not part of the Lattices
menu bar app.
Blink.app(bundle IDdev.arach.blink) has its own process, lifecycle, release tags (blink-v*), and npm package (@arach/blink).- Quitting Lattices does not quit Canvas. Quitting Canvas does not quit Lattices.
- The Lattices menu bar app can install and launch it from the current Blink entry in its Apps list. Canvas's note panels and NoteStore stay inside Canvas.
- There is no
lats canvascommand or familycanvas.*API today. The earlier family-domain proposal is separate from this product rename. Operate Canvas with theblinkCLI.
For the Lattices side of the family, see the Lattices overview and the product map.
Next steps
- Concepts: the note, panel, and file model.
- CLI: every
blinkcommand. - Configuration: behavior, hotkeys, and appearance.
- Workspaces: named, branded groups of notes.
- Placement: the grid and slot model.
- iOS sync: the read-only iPhone and iPad companion.
- Release: how Canvas ships.