AgriciDaniel/claude-obsidian/skills/canvas/SKILL.md
canvas
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.
- Source repository stars
- 10,368
- Declared platforms
- 0
- Static risk flags
- 2
- Last source update
- 2026-08-01
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Treat a canvas as a vault-scoped JSON Canvas document. Keep reads read-only and route every requested mutation through one recoverable transaction.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/AgriciDaniel/claude-obsidian --skill "skills/canvas"Inspect the Agent Skill "canvas" from https://github.com/AgriciDaniel/claude-obsidian/blob/1c1bc49c03a685ee8f5d09c99efe52b42d6673f5/skills/canvas/SKILL.md at commit 1c1bc49c03a685ee8f5d09c99efe52b42d6673f5. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Set APPROVALSHA256 to the inspect result's approvalsha256 after review.
python3 "$CORE" transaction apply BUNDLE --vault VAULT \ --approved-plan-sha256 "$APPROVALSHA256"
python3 "$CORE" transaction apply BUNDLE --vault VAULT \ --approved-plan-sha256 "$APPROVALSHA256"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 co… - 02
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.
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. - 03
Scope
Resolve the user vault before reading. Never derive it from plugin files.
Resolve the user vault before reading. Never derive it from plugin files.Store boards under wiki/canvases/; use wiki/canvases/main.canvas only asTreat wiki/canvases/index.md as an optional catalog. Update it only when a - 04
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 re…
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 o… - 05
Draft a mutation
1. Read the entire canvas and any catalog target. Record each expected SHA-256, or null for a file that must be absent. 2. Preserve unknown JSON fields and existing array order. The node array is bottom-to-top z-order. 3. Draft the requested nodes or edges: - Give every node and…
Read the entire canvas and any catalog target. Record each expected SHA-256,Preserve unknown JSON fields and existing array order. The node array isDraft the requested nodes or edges:
Permission review
Static risk signals and limitations
Network access
The documentation includes network, browsing, or remote request actions.
it in Obsidian may fetch Open Graph metadata from that URL's host. DiscloseRuns scripts
The documentation asks the agent to run terminal commands or scripts.
python3 "$CORE" transaction inspect BUNDLE --vault VAULTRuns scripts
The documentation asks the agent to run terminal commands or scripts.
python3 "$CORE" transaction apply BUNDLE --vault VAULT \Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 88/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 10,368 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- AgriciDaniel/claude-obsidian
- Skill path
- skills/canvas/SKILL.md
- Commit
- 1c1bc49c03a685ee8f5d09c99efe52b42d6673f5
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
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/; usewiki/canvases/main.canvasonly as the default when the user did not name a board. - Treat
wiki/canvases/index.mdas an optional catalog. Update it only when a canvas is created, renamed, or removed. - Use vault-relative paths in
fileandbackground; 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
linknodes 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
nullfor 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, andheightvalues for every node. - Use
text,file,link, orgroupexactly as defined by JSON Canvas. - Require every
fromNodeandtoNodeto 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
nodesandedgesarrays.
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.
Alternatives
Compare before choosing
HKUDS/Vibe-Trading
strategy-generate
Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.
alirezarezvani/claude-skills
quality-manager-qms-iso13485
ISO 13485 Quality Management System implementation and maintenance for medical device organizations. Provides QMS design, documentation control, internal auditing, CAPA management, and certification support. Use when working with medical device quality systems, preparing for ISO 13485 audits, managing regulatory compliance documentation, setting up corrective actions, or building audit preparation programs. Useful for quality management, audit preparation, regulatory compliance, medical device d
MoizIbnYousaf/marketing-cli
higgsfield-generate
Use when the user wants to generate an image or video via Higgsfield AI. Covers 30+ models: Soul V2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2, Nano Banana 2. Also covers Marketing Studio — branded ad video/image with avatars and products. Use whenever: "generate an image", "make a video", "animate this photo", "image-to-video", "img2vid", "edit this image with AI", "produce a clip", "create an ad", "make a UGC video", "marketing video", "brand video", "TV spot", "import product from URL", "
davepoon/buildwithclaude
figma-automation
Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.