onelasthuman132 downloadsCanvas enhancements, mind-map workflows, and configurable AI assistance in one plugin.
Turn scattered ideas into a map, inside Obsidian.
Capture ideas · Map workflows · Annotate reading · Connect AI
中文 · Website · Install · Canvas themes · Getting started · Feature guide · Documentation index

Better Canvas is an enhancement plugin for Obsidian Canvas. Collect loose ideas on cards, express relationships with connections, then shape the content into a mind map, flowchart, or reading workspace. When you need to keep analyzing, ask AI and keep the answer next to its source.
Canvas editing and themes need no AI configuration. Content stays in your vault's .canvas files.
The interface follows Obsidian's language: English by default, Chinese when Obsidian uses a Chinese locale.
Screenshots come from the real Obsidian 1.15.0 interface on Linux (light default theme, default interface scale). The English example content is available in the sample canvases; capture and verification scope are documented in the screenshot notes.
Each canvas can choose its own theme. Click Canvas theme on the right side of the canvas, then pick a matching preset under Node style. Switching themes keeps existing content and positions, and the theme choice is saved with the canvas.
The hero image uses Soft Notes: light colored curves distinguish inspiration, excerpts, concepts, actions, and questions. Free text works well for headings, and action cards can use Markdown task lists directly.
If you like Obsidian's original look, keep using the Default theme. There are six themes in total, suited to different kinds of content and expression. Click an image to view it full size.
With cards selected, press Tab to create a child node and Enter to create a sibling. While editing text, use Shift + Tab and Shift + Enter instead to keep expanding the current idea.

Alt + arrow keys to select adjacent cards, or focus mode to highlight the current content.Select one or more nodes, then click the Node style palette button on the right side of the canvas.
Options differ by theme. For example, Soft Notes stays borderless, and Paper Research offers paper color intensity. See the node styling guide for details.
Select a node and open Ask AI about selected nodes from the context menu or command palette. The plugin sends the selected nodes and related context to the configured service, then saves the answer as a new node connected to its source.

The image shows the entry point only; no request was submitted and no model answer was generated.
AI features are optional, may connect to paid providers, and require separate configuration; capabilities depend on the service and model. Prompts and the context they need are sent to the configured service; local CLI agents may also call remote models. Importing web page text or using a remote MCP server makes network requests. A local MCP stdio server runs as a child process with your operating-system user permissions; connect only services you trust and check tool arguments before execution. Review each provider's data-handling policy before sending private content. See the AI and MCP setup guide.
| What you want to do | Feature |
|---|---|
| Put away content you are not using right now | Groups and collapsing, focus mode |
| Split a large canvas into topics | Wrap a selection into a new Canvas; reference another canvas with a Portal |
| Connect notes and canvases | Node links, Canvas links, and backlink browsing |
| Take notes while reading a PDF | Pin pages, extract excerpts, pen and highlighter; recognize text by page range (AI OCR) |
| Explain your thinking to others | Presentation mode; export JSON Canvas, or the whole canvas, current viewport, or selection as PNG / SVG |
The static export of a theme may look different from the editing view. Scrapbook paper textures and tape decorations are not currently reproduced in whole-canvas or selection static exports. See the feature guide and known limitations for the exact scope.
Better Canvas is listed in the official Obsidian community directory. In Obsidian, open Settings → Community plugins, search for Better Canvas, and install it. You can also use the manual installation below.
better-canvas.zip..obsidian/plugins/ directory.The plugin folder should contain the following files:
<Vault>/.obsidian/plugins/better-canvas/
├── main.js
├── manifest.json
└── styles.css
This page describes features in the current source, and a release may not include every update yet. To try the main-branch build, place the following 3 files in the plugin folder above and reload the plugin:
release/ is synchronized automatically by successful Build workflows on the main branch. For the difference between main-branch builds and releases, and for building from source, see the installation guide.
On first enable, a one-time welcome entry appears. You can create a built-in sample canvas or open the built-in quick start; after you close it or choose the skip option, it will not appear again on every launch. Later, run Open onboarding from the command palette. The sample canvas is written to Better Canvas/快速入门.canvas; if that name is already taken, a numbered name is used and existing files are never overwritten. The first empty canvas also shows a dismissible quick-create hint once.
Tab to add a child node and keep expanding.You can also copy the sample canvases into your vault and edit the content shown in the screenshots directly.
Plugin settings are grouped into 4 categories: Canvas, Interaction, AI assistant, Files. You can configure layout spacing, shortcuts, model services, and export options. Click Save changes to apply them, or Discard changes to restore the saved settings.
| Shortcut | Action |
|---|---|
Tab / Enter |
While not editing text: create a child / sibling node |
Shift + Tab / Shift + Enter |
While editing text: create a child / sibling node |
Alt + ↑ / ↓ / ← / → |
Select the node adjacent in that direction |
Ctrl/Cmd + Shift + arrow keys |
Create a child node in the specified direction |
Shortcuts can be turned off by group in Settings → Better Canvas → Actions.
Better Canvas works inside your vault through Obsidian's Vault API. It does not request operating-system file permissions directly.
| Access | When it is used |
|---|---|
| Vault read/write | Reading and updating canvas content, PDF annotations stored in the Canvas, linked notes and files, and writing plugin-created content. This includes AI answer and image nodes, imported material, flashcards, exports, and the optional onboarding sample canvas. The onboarding sample is written to Better Canvas/快速入门.canvas only when you choose to create it, and an existing file is never overwritten. |
| Clipboard (write) | The copy-node-link command writes the selected node's Obsidian wikilink to the system clipboard. If clipboard access is unavailable, the plugin opens a manual-copy dialog instead. |
| Network | Requests to the AI service or MCP server you configure, and web imports you start. Local CLI agents may also contact their configured model services. |
| Local processes (desktop) | Only when you configure a local CLI agent or a local MCP stdio server. |
Implementation and verification status for each item is tracked in the feature integration matrix. Configuration, limitations, custom styles, and other topics are listed in the documentation index.
Development requires Node.js 22 and npm. From the repository root:
npm ci
npm run lint
npm run validate:metadata
npm run typecheck
npm test
npm run build
Copy the generated main.js, manifest.json, and styles.css into the plugin folder. npm run dev starts a development build.
See the testing guide for test layers and desktop verification requirements, repository governance for contribution and review conventions, and the release process for version releases.
Some feature directions were inspired by Advanced Canvas, Canvas MindMap, and Obsidian AI Canvas.
Better Canvas is licensed under GPL-3.0-or-later. Upstream sources and third-party resources are documented in the acknowledgements.