mcpbeat Sign in

Canvas Skill for Claude

Create, inspect, and update Obsidian JSON Canvas boards with text, file, link, group, and edge nodes. Use for canvas status, canvas lists, visual maps, zones, spatial layouts, adding vault notes or media to a .canvas file, and requests such as create canvas, add to canvas, or put this on the canvas.

4k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
10331
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/AgriciDaniel/claude-obsidian --skill canvas

The instruction itself

6 sections, as written by the author

Canvas

Treat a canvas as a vault-scoped JSON Canvas document. Keep reads read-only and

route every requested mutation through one recoverable transaction.

Resolve the installed product root from this skill's own location, not from the

vault or current working directory:

PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
test -f "$CORE"

Choose the syntax source

Prefer a separately installed kepano/obsidian-skills json-canvas skill for

format details. Otherwise read references/canvas-spec.md.

The open standard is JSON Canvas 1.0.

Use this skill for vault workflow and transaction safety even when an upstream

syntax skill is available.

Scope

  • Resolve the user vault before reading. Never derive it from plugin files.
  • Store boards under wiki/canvases/; use wiki/canvases/main.canvas only as

the default when the user did not name a board.

  • Treat wiki/canvases/index.md as an optional catalog. Update it only when a

canvas is created, renamed, or removed.

  • Use vault-relative paths in file and background; reject absolute paths,

.. traversal, home shortcuts, and paths that escape through symlinks.

  • Reference only files already inside the vault. If an optional capture or

media capability is detected, compose with it and consume its returned

vault-relative path. Do not assume a particular plugin, command, or session

log, and do not download or copy assets in this skill.

  • Use link nodes for URLs. Accept HTTPS URLs only; a link node does not grant

permission to fetch the page. Creating its JSON makes no request, but opening

it in Obsidian may fetch Open Graph metadata from that URL's host. Disclose

that render-time egress and confirm it is acceptable; otherwise use a text

node containing the URL.

Read-only operations

For status or list requests, parse the selected .canvas files and report node

counts, group labels, broken edge endpoints, and missing vault-relative file

targets. If the default canvas is absent, report that fact and offer a creation

preview; do not create it during a status request.

Draft a mutation

  • Read the entire canvas and any catalog target. Record each expected SHA-256,

or null for a file that must be absent.

  • Preserve unknown JSON fields and existing array order. The node array is

bottom-to-top z-order.

  • Draft the requested nodes or edges:
  • Give every node and edge a unique ID. Prefer a random 16-character

lowercase hexadecimal ID and verify it is unused.

  • Require integer x, y, width, and height values for every node.
  • Use text, file, link, or group exactly as defined by JSON Canvas.
  • Require every fromNode and toNode to reference an existing or newly

drafted node.

  • Position new content deliberately. A group is a visual container, not a

parent. Use 20 px inner padding and 40 px gaps, wrap to a new row when

needed, and preview any group expansion.

  • Serialize valid UTF-8 JSON with top-level nodes and edges arrays.

Minimal node examples:

{
  "nodes": [
    {
      "id": "6f0ad84f44ce9c17",
      "type": "text",
      "text": "# Research map\n\nA concise orientation card.",
      "x": 0,
      "y": 0,
      "width": 400,
      "height": 180
    },
    {
      "id": "a1b2c3d4e5f67890",
      "type": "file",
      "file": "wiki/concepts/Contextual Retrieval.md",
      "x": 460,
      "y": 0,
      "width": 400,
      "height": 240
    }
  ],
  "edges": []
}

Use file plus optional subpath: "#Heading" for notes, images, PDFs, and

other vault files. Use url only on a link node. Escape line breaks in JSON

strings as \n, not as literal backslash-plus-n text.

Preview and apply

Validate before showing the preview:

  • JSON parses and uses supported node types.
  • IDs are unique and edge endpoints exist.
  • dimensions are positive integers;
  • file and background paths are safe, vault-relative, and present;
  • new nodes do not unintentionally overlap or overflow their requested group.

Build one claude-obsidian.transaction.v1 bundle with operation type canvas.

Include the canvas and the catalog in that same bundle when the catalog changes.

Read operation-transactions.md,

then inspect the bundle before applying it:

python3 "$CORE" transaction inspect BUNDLE --vault VAULT
# Set APPROVAL_SHA256 to the inspect result's approval_sha256 after review.
python3 "$CORE" transaction apply BUNDLE --vault VAULT \
  --approved-plan-sha256 "$APPROVAL_SHA256"

For removals, replacements, renames, or other destructive changes, obtain

explicit consent after presenting the preview. Report the operation ID, exact

changed paths, board name, node IDs, and final positions. Do not commit Git.

Other skills for the same job

different authors, same section of the catalogue
Canvas Design
by anthropics
vendor ×13

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

1388k tokens
X Article Publisher
by ZhanlinCui
×2

Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.

7k tokens scripts zh
Nanobanana Ppt Skills
by ComeOnOliver
×2

AI-powered PPT generation with document analysis and styled images

2k tokens
Open Notebook
by K-Dense-AI
×1

Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker podcasts from research, chatting with documents using context-aware AI, searching across materials with full-text and vector search, or running custom content transformations. Supports 16+ AI providers including OpenAI, Anthropic, Google, Ollama, Groq, and Mistral with complete data privacy through self-hosting.

14k tokens scripts
Cell Figure Guide
by BioTender-max
×1

Cell (Cell Press) figure preparation: resolution (300-1000 DPI), formats (TIFF/PDF), RGB color, Avenir/Arial fonts, uppercase panel labels, strict image manipulation policies.

4k tokens
Open Notebook
by christophacham
×1

Self-hosted, open-source alternative to Google NotebookLM for AI-powered research and document analysis. Use when organizing research materials into notebooks, ingesting diverse content sources (PDFs, videos, audio, web pages, Office documents), generating AI-powered notes and summaries, creating multi-speaker podcasts from research, chatting with documents using context-aware AI, searching across materials with full-text and vector search, or running custom content transformations. Supports 16+ AI providers including OpenAI, Anthropic, Google, Ollama, Groq, and Mistral with complete data privacy through self-hosting.

18k tokens scripts
Libreoffice Writer
by ComeOnOliver
×1

Use when creating, editing, formatting, exporting, or extracting LibreOffice Writer (.odt) documents via UNO, including session-based edits, structured text targets, tables, images, lists, patch workflows, and snapshots.

24k tokens scripts
X Article Publisher
by ComeOnOliver
×1

Publish Markdown articles to X (Twitter) Articles editor with proper formatting. Use when user wants to publish a Markdown file/URL to X Articles, or mentions "publish to X", "post article to Twitter", "X article", or wants help with X Premium article publishing. Handles cover image upload and converts Markdown to rich text automatically.

13k tokens scripts zh

How to use it

Copy the folder

Take agricidaniel/canvas from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.