Source profileQuality 88/100Review permissions

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.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/AgriciDaniel/claude-obsidian --skill "skills/canvas"
    Safe inspection promptEditorial

    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

    1. 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…
    2. 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.
    3. 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
    4. 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…
    5. 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

    medium · line 40

    The documentation includes network, browsing, or remote request actions.

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

    Runs scripts

    medium · line 117

    The documentation asks the agent to run terminal commands or scripts.

    python3 "$CORE" transaction inspect BUNDLE --vault VAULT

    Runs scripts

    medium · line 119

    The documentation asks the agent to run terminal commands or scripts.

    python3 "$CORE" transaction apply BUNDLE --vault VAULT \

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score88/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars10,368SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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/; 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

    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 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.
    4. 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.
    5. 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.

    Alternatives

    Compare before choosing

    Computed 9929,558

    HKUDS/Vibe-Trading

    strategy-generate

    Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.

    Computed 9823,781

    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

    Computed 9828

    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", "

    Computed 973,251

    davepoon/buildwithclaude

    figma-automation

    Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.