Visual notes, planning and organisation.
Boards that live in your Obsidian vault as real Canvas files — so they open in Obsidian's own Canvas view, nest inside each other, and outlast the plugin that made them.
A place to think in space rather than in a list, the way you would in Milanote, Notion or Trello: plan a project across a wall of sticky notes, keep a reading list as icon tiles, run a kanban board, draw over the top of it, and connect the pieces with labelled lines.
How is this different from Obsidian's Canvas? It is Canvas — the same spec-compliant .canvas file, sitting in your vault, openable in the native view. Visual Notes adds what Canvas leaves out: live collaboration, storyboards, kanban boards, tables, checklists, calendars, columns, group frames, pen and highlighter drawing, and boards that nest inside one another.
Work on the same board at the same time. Live cursors, live selections, live edits — everyone watching the same canvas change as it changes.
No cloud, no account, and no server but yours. One desktop participant hosts the room from inside Obsidian and everyone else joins with an invitation, over a private network you already control. Nothing is routed through Visual Notes, because there is nothing to route it through.
Everyone keeps an ordinary .canvas file in their own vault, so a board is still yours when the session ends and the host goes offline.
Cards, connections, drawings, nested boards, kanban boards, cursors and selections all update across the room. Shared images are saved into each participant's own vault as they arrive, so they still open long after the room has closed. Video is streamed from the host rather than copied, so a shared clip plays during the session but is not kept afterwards.
This is an opt-in experimental feature. It is intended for trusted collaborators using the same Visual Notes version. The host must keep Obsidian running and the computer awake. Mobile devices can join rooms but cannot host them.
Collaboration needs Obsidian 1.11.4 or newer, which is the version that added the secure storage Visual Notes keeps the server secret in. Every other feature works on Obsidian 1.7.2 and up as it always has — on an older Obsidian the collaboration setting simply says it is unavailable, and the rest of the plugin, including future updates, is unaffected.
- Visual Notes does not operate a collaboration cloud, create user accounts, collect telemetry, or receive room data.
- Participants provide their own private connection: a trusted physical LAN or a virtual/private network such as Tailscale, ZeroTier, WireGuard, or Headscale. Visual Notes is not affiliated with those providers.
- Private-network rooms use
ws://inside that private connection. Do not expose the collaboration port directly to the public internet. Use an encrypted virtual network when collaborating across the internet. - The host stores the canonical room snapshots and transferred media beneath
.obsidian/visual-notes-collaborationin the host vault. Other participants store their normal local Canvas and any downloaded vault assets in their own vaults. - The server secret is stored through Obsidian SecretStorage, not in the plugin's
data.jsonor a board. A complete invitation contains the private server address, server credential, and room invitation; treat it like a password and share it only with people you trust. - Room membership has owner, editor, and viewer roles. Owners can rotate invitations, remove members, export room metadata, clean expired shared media, or delete the hosted room tree without deleting anyone's local Canvas files.
- Keep backups of important vaults. Experimental collaboration is not a backup service, and a sleeping host, network interruption, firewall rule, or removed virtual-network membership can make a room temporarily unavailable.
Enable it under Settings → Visual Notes → Experimental collaboration, choose the private network interface on the host, select Start hosting, create a room from the collaboration bar, and share the copied invitation. Joining devices paste that invitation into Join room.
Plan a scene shot by shot without leaving your vault — draw the frames, time the sequence, play it back, and export a shot list your collaborators can read.
A Storyboard is one canvas card containing an entire visual sequence, so planning a scene does not add dozens of specialist cards to the main board. Add one from the toolbar's ··· menu, the / quick-add palette, or the canvas right-click menu, then use its expand button or double-click its preview to enter the focused editor.
- Organise the overall scene into scene sections, with a draggable shot filmstrip along the bottom
- Add, duplicate, delete and reorder shots, or move a shot to another scene section; set each shot's number, title, duration and notes
- Frame shots as 16:9, 4:3, 1:1 or 9:16, and add a background image from the vault
- Import an image folder to create one named shot per image in a single action
- Draw directly on a shot with pressure-aware Pen, Marker, Highlighter and textured Pencil presets; adjust size, colour, opacity and smoothing, or disable variable pressure for a uniform line
- Toggle onion skinning to ghost the previous shot beneath the current frame while drawing
- Select annotations to move, resize, reshape, recolour, copy between shots or delete with Delete/Backspace; selected arrows have endpoint and bend handles using the same trimmed curve geometry as canvas connections
- Edit selected text in the inspector's Text field; newly placed text focuses that field automatically
- Storyboard-local Undo/Redo treats a complete draw or drag gesture as one action (
⌘/Ctrl Z,⌘/Ctrl Shift Z, or⌘/Ctrl Y) - See the running shot count and sequence duration, and play the sequence using each shot's timing — in the editor, or directly inside the canvas card
- Export a Markdown shot list or the whole Storyboard as a PNG contact sheet. On desktop both download; on iPhone and iPad they are written to an
_Exportsfolder in your vault, with a message giving the exact path - Switch the card's normal canvas preview between a horizontal filmstrip and a grid, and cycle its shot previews through Small, Medium and Large; shot notes appear beneath their frames as readable descriptions without opening the editor
- Open the bundled Screenwriting template for a working four-shot example
The Storyboard remains one normal, movable and resizable JSON Canvas node. Obsidian's native Canvas shows a readable Markdown shot list, while Visual Notes stores the full scene sections, shots, annotations and shot-relative ink in the node's vn metadata.
- Tiles that open folders, notes, canvases, kanban files, or nested boards
- Customise each tile's Lucide icon or emoji, background colour, label, and subtitle
- Optionally replace the icon with a cover image (Milanote-style tile thumbnail) from your vault or a URL
- Drag to reorder; right-click to edit
- 17 bundled starter templates (Brainstorm, Project Roadmap, Weekly Planner, Study Hub, Travel Planner, Screenwriting, and more) — pick one from New board from template to start with a populated board instead of a blank one
- Save any board as your own template via the toolbar's "···" menu or the Save current board as template command, then reuse it the same way as a bundled one
- Group templates — select any cluster of cards, right-click → Create template…, give it a name, and it becomes a reusable build you can drop onto any board from the canvas right-click menu's Templates entry. Anything can be templated: a styled header row, a meeting-notes layout, a connected diagram, a set of kanban columns
- Your own templates live in
_Templates/in the vault (group templates in_Templates/Groups/), as plain.canvasfiles you can inspect, rename, edit, or delete directly
- Edge-to-edge canvas, same as Obsidian's native Canvas — no wasted border, with the board-name/back-navigation bar floating as a small pill over the canvas instead of a full-width header
- A right-click "Add" menu and a left-hand toolbar cover every card type below, grouped into Write / Media & links / Organize
- A slash-command quick-add (
/) drops a new card of any type at the cursor without leaving the keyboard - Connections between any two cards — straight or elbow-routed, with colour, thickness, line style, arrowhead, and inline label
- Multi-select via marquee or Shift-click; group drag, alignment bar, and even distribution
- Copy/cut/paste groups with ⌘/Ctrl C, X, and V — the connections between the copied cards come with them, a selected group frame brings its contents along, and paste lands on the pointer. Works across boards, and across Obsidian windows
- Group frames — select 2+ cards and press ⌘/Ctrl G to wrap them in a native-Canvas-style labelled frame. Purely spatial (no membership list, exactly like Obsidian's own Canvas groups): drag the frame to move everything inside it, resize or delete the frame without ever touching its contents
- Resize any card by dragging any of its four corners
- Pan with middle-click (or Space + drag), zoom with the scroll wheel
- Minimap with click-to-jump and zoom-to-fit, collapsible to a floating widget
- Board-level search and a tag/type filter panel to narrow a busy board down
- Archive cards you're not using instead of deleting them, and browse/restore from the archive any time
- Drag notes, canvases, and folders straight from the file explorer onto the canvas to create tiles — dragging another Visual Notes file in creates a nested board, exactly like nesting boards in Milanote
Kanban boards, kanban columns, and generic Columns each have a padlock toggle: a locked container can't have items dragged into or out of it, but its own cards can still be freely dragged and repositioned.
- Multi-column boards (drag items between columns, per-column WIP limits) and legacy single-column cards
- Rich-text formatting in items (bold, italic, strikethrough, colour, highlight)
- Due dates — an amber badge when due soon, red when overdue, muted once done
- Sub-checklists inside any item
- Link items to vault notes or an external URL (a YouTube link gets an inline video-thumbnail preview); add tag pills
- Optional per-item icon/emoji badge or cover thumbnail, and a per-item background colour (Trello-label style)
- Drop images or audio files directly into a column
- Toggle the column title; set background and accent-strip colours
- Insert rows/columns anywhere; drag to reorder
- Typed columns, Notion-style: text, number, checkbox, date, or select (with coloured options)
- Column alignment and click-to-sort
- Paste from a spreadsheet — either merge into the existing grid, or use the footer's Paste button to replace the table outright (first row becomes headers, so headers never misalign)
- Google-Sheets-style cell interaction: click/drag to select a range, double-click to edit, right-click to colour a cell or range
- A zoom slider that scales cell content without resizing the card itself
- Sticky header row and virtualized rows so large pasted tables stay smooth
- Inline rich-text editing with ⌘ B / I / U and ⌘ ⇧ S shortcuts
- Checklists support header rows to group items into sections
- Background colour and top-strip accent via the context bar colour picker
Notion/Obsidian-style callout cards with a full emoji picker (or free-text emoji) for the icon, plus title and body text.
A generic, lockable container card for freeform grouping of tiles, sticky notes, checklists, tables, images, audio, note links, bookmarks, swatches, files, and callouts — distinct from a Group frame in that it holds an explicit list of children rather than being purely spatial.
- Paste images from the clipboard; drag from the file explorer or OS onto the canvas or into a kanban column
- Add from the vault or upload from disk via the toolbar
- Images display at their natural aspect ratio; toggle captions with ⌘ ⇧ C / Ctrl ⇧ C
- A generic File card for PDFs and other vault documents
- All imported files are automatically sorted into
_Assets/subfolders (see Asset Management below)
Paste any URL for a link-preview card (title, description, favicon, image) fetched automatically. YouTube links get a native-style embed with a working inline play button instead of a plain preview.
Paste a Google Maps link to get a live, fully interactive embed that matches the exact view you copied — including satellite/hybrid layer and zoom level derived from the link's altitude.
A colour swatch card showing the hex value and a nearest named-colour label. Double-click (or use the pipette button) to open the native colour picker, or right-click for a menu of approximate named palettes (Muted, Vivid, Pastel, Earth Tones, Grayscale) to generate a grid from. A reroll button in the name bar picks a new random colour.
Press T (or pick Text) and click anywhere to drop bare text on the canvas — no card, border or background.
- Drag to resize the type. Text cards never wrap, so the box is exactly as wide as its longest line and dragging a corner scales the words themselves, the way resizing a drawing scales the strokes. Press Enter for a new line. There's no width limit — drag it as large as you like.
- Exact sizes on the Size button (16 / 24 / 32 / 48 / 64 / 96 / 128 px). These are the same px value a drag sets, so picking one never fights what you dragged.
- Fonts — Obsidian's Text, Interface and Monospace, so text follows whatever you've configured under Appearance → Font.
- Colour, plus the usual bold/italic/underline/highlight on any selection.
Notes are still the card for longer writing, and they gained two things of their own:
- No background — a toggle in any note's Colour panel strips its fill.
- Fonts and sizes — the same Font picker, plus eight per-card sizes (XS–4X) and per-selection sizing, so one note can carry a big heading above ordinary body text.
- Bullets — the Bullet button, or type
-at the start of a line.
Select any text in a sticky note, checklist, kanban item, or image caption to reveal a floating toolbar: bold, italic, underline, strikethrough, text colour (preset + colour picker), and highlight colour.
- Freehand pen and highlighter strokes directly on the canvas, layered above cards
- Pen strokes are rendered with perfect-freehand, giving genuine pressure-sensitive tapering on a stylus/tablet (simulated from drawing speed for mouse input)
- Nearby strokes drawn in the same session are grouped into one sketch automatically; a doodle started elsewhere on the canvas gets its own group instead of merging in
- Multi-select strokes via marquee or Shift/Ctrl-click, then move, resize, recolor, or delete them as a group
- Eraser detects your swipe crossing a stroke's actual line, not just proximity to its sample points — works cleanly on straight lines, not just wobbly ones
- Full undo/redo support for every drawing action
- iPad + Apple Pencil note: if quick, small strokes (like a fast "s" or "e") intermittently fail to appear, turn off Scribble in iPad Settings → Apple Pencil. Scribble intercepts fast Pencil strokes for handwriting-to-text before they ever reach the canvas — this is a system feature web-based apps cannot override.
- Auto-sort: every image, audio clip, video, or document imported into a board is automatically moved to the correct subfolder in the vault root:
_Assets/Images/— jpg, png, gif, webp, svg, …_Assets/Audio/— mp3, wav, ogg, flac, …_Assets/Video/— mp4, mov, mkv, …_Assets/Documents/— pdf
- Auto-relink: scan all boards and fix broken file paths when a unique filename match is found in the vault. Three ways to run it:
- On open — toggle Auto-relink on board open in Settings to fix links silently every time a board loads
- Settings button — Settings → Assets → Relink now
- Command palette —
Visual Notes: Relink all board assets
| Action | Shortcut |
|---|---|
| Delete selected | Delete / Backspace |
| Select all | ⌘ A |
| Copy selection | ⌘ C / Ctrl C |
| Cut selection | ⌘ X / Ctrl X |
| Paste | ⌘ V / Ctrl V |
| Duplicate | ⌘ D |
| Group selection | ⌘ G / Ctrl G |
| Undo | ⌘ Z |
| Redo | ⌘ ⇧ Z |
| Toggle image caption | ⌘ ⇧ C |
| Bold (sticky editor) | ⌘ B |
| Italic (sticky editor) | ⌘ I |
| Underline (sticky editor) | ⌘ U |
| Strikethrough (sticky editor) | ⌘ ⇧ S |
| Quick-add card | / |
| Text tool | T |
- Open Settings → Community plugins → Browse
- Search for Visual Notes
- Click Install, then Enable
- Download
main.js,manifest.json, andstyles.cssfrom this plugin's latest release - In your vault, create the folder
.obsidian/plugins/visual-notes/ - Copy the three files into that folder
- Open Obsidian, go to Settings → Community plugins, and enable Visual Notes
- Run Visual Notes: Open from the command palette
- Or click the layout-dashboard icon in the left ribbon
- Run Visual Notes: Create new board (or click + New board on the empty home screen)
- A
.canvasfile is created in your vault root (you can move it later) - The board opens in grid mode — click the + button to add your first icon tile
- Click a tile to open its target
- Right-click a tile to edit, change icon, change colour, or delete
- Drag tiles to reorder them
- Switch to canvas mode with the toggle in the top-right corner of any board
- Right-click the canvas background to add a card, grouped into Write / Media & links / Organize
- Type / to quick-add a card at the cursor
- Pan by dragging the background, middle-clicking anywhere, or holding Space and dragging; zoom with the scroll wheel
- Right-click a card for options (edit, style, connect, lock, archive, delete)
- The toolbar on the left has one button per card type; click it or drag it onto the canvas
- Use the search and filter widgets to jump to or narrow down cards on a busy board
- Toggle the minimap to see and jump around the whole board at a glance
- Right-click a card → Connect to enter connection mode, then click a second card
- Click a connection to select it; right-click for colour, thickness, and style options
If you move files in the vault and board assets stop loading, run Visual Notes: Relink all board assets from the command palette. For automatic fixing every time you open a board, enable Auto-relink on board open in Settings.
Boards save automatically as you work. All data lives in the .canvas file — no external database or sync service is required.
Visual Note
0 comments
log in to comment.