skills/richfrem/agent-plugins-skills/obsidian-canvas-architect

obsidian-canvas-architect

SKILL.md

Obsidian Canvas Architect

Status: Active Author: Richard Fremmerlid Domain: Obsidian Integration Depends On: obsidian-vault-crud (WP06)

Purpose

Obsidian Canvas files (.canvas) use the JSON Canvas Spec 1.0 to define visual boards with nodes (text, file references, URLs) connected by directional edges. This skill lets agents programmatically generate visual planning boards, architecture diagrams, and execution flowcharts.

JSON Canvas Spec 1.0 Overview

A .canvas file is JSON with two top-level arrays:

{
  "nodes": [
    {"id": "1", "type": "text", "text": "Hello", "x": 0, "y": 0, "width": 250, "height": 60},
    {"id": "2", "type": "file", "file": "path/to/note.md", "x": 300, "y": 0, "width": 250, "height": 60}
  ],
  "edges": [
    {"id": "e1", "fromNode": "1", "toNode": "2", "fromSide": "right", "toSide": "left"}
  ]
}

Node Types

Type Required Fields Purpose
text text, x, y, width, height Inline text content
file file, x, y, width, height Reference to a vault note
link url, x, y, width, height External URL
group label, x, y, width, height Visual grouping container

Edge Properties

Field Required Description
fromNode Yes Source node ID
toNode Yes Target node ID
fromSide No top, right, bottom, left
toSide No top, right, bottom, left
label No Edge label text

Available Commands

Create a Canvas

python ./scripts/canvas_ops.py create --file <path.canvas>

Add a Node

python ./scripts/canvas_ops.py add-node \
  --file <path.canvas> --type text --text "My Node" --x 100 --y 200

Add an Edge

python ./scripts/canvas_ops.py add-edge \
  --file <path.canvas> --from-node id1 --to-node id2

Read a Canvas

python ./scripts/canvas_ops.py read --file <path.canvas>

Safety Guarantees

  • All writes go through obsidian-vault-crud atomic write protocol
  • Malformed JSON triggers a clean error report, never a crash
  • Node IDs are auto-generated (UUID) to prevent collisions
  • Schema validation ensures all required fields are present before write
Weekly Installs
13
GitHub Stars
1
First Seen
10 days ago
Installed on
opencode13
gemini-cli13
github-copilot13
codex13
amp13
cline13