Creates and manipulates JSON Canvas files (.canvas) for visual tools like Obsidian's Canvas feature. Handles the full workflow from generating unique 16-character hex IDs to positioning nodes with proper spacing to connecting them with labeled edges. Validates that all edge references point to existing nodes, checks for ID collisions, and ensures the JSON structure matches the official spec. Useful when building mind maps, flowcharts, or any visual documentation that needs programmatic generation. The validation checks are thorough but the positioning logic could be smarter about automatic layouts.

skills.sh installs
76.9K
GitHub stars
51.4K
last updated
Aug 21, 2026

Install

$ npx -y skills add kepano/obsidian-skills --skill json-canvas --agent claude-code

Installs into .claude/skills of the current project.

Files

JSON Canvas Skill

File Structure

A canvas file (.canvas) contains two top-level arrays following the JSON Canvas Spec 1.0:

{
  "nodes": [],
  "edges": []
}
  • nodes (optional): Array of node objects
  • edges (optional): Array of edge objects connecting nodes

Common Workflows

1. Create a New Canvas

  1. Create a .canvas file with the base structure {"nodes": [], "edges": []}
  2. Generate unique 16-character hex IDs for each node (e.g., "6f0ad84f44ce9c17")
  3. Add nodes with required fields: id, type, x, y, width, height
  4. Add edges referencing valid node IDs via fromNode and toNode
  5. Validate: Parse the JSON to confirm it is valid. Verify all fromNode/toNode values exist in the nodes array

2. Add a Node to an Existing Canvas

Sponsors

Details

Repository
github.com/kepano/obsidian-skills
Categories
Design & UI/UX, Office & Documents

More from kepano/obsidian-skills

All 5
1greensock avatargsap-reactgreensock/gsap-skillsOfficial GSAP skill for React — useGSAP hook, refs, gsap.context(), cleanup. Use when the user wants animation in React or Next.js, or asks about GSAP with Reac75.3Kskills.sh installs
2squirrelscan avataraudit-websitesquirrelscan/skillsAudit a website with the squirrelscan CLI and fix the findings in code. Runs SEO, performance, security, technical, content, accessibility, and 15 other rule ca74.9Kskills.sh installs
3coreyhaines31 avatarprospectingcoreyhaines31/marketingskillsWhen the user wants to find, qualify, and build a list of prospects to reach out to — across B2B SaaS, general B2B, or local small businesses. Also use when the73.2Kskills.sh installs
4greensock avatargsap-frameworksgreensock/gsap-skillsOfficial GSAP skill for Vue, Svelte, and other non-React frameworks — lifecycle, scoping selectors, cleanup on unmount. Use when the user wants animation in Vue70.8Kskills.sh installs
5heygen-com avatarthreeheygen-com/hyperframesThree.js and WebGL adapter patterns for HyperFrames. Use when creating deterministic Three.js scenes, WebGL canvas layers, AnimationMixer timelines, camera moti69.3Kskills.sh installs
6addyosmani avatarbrowser-testing-with-devtoolsaddyosmani/agent-skillsTests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture co67.7Kskills.sh installs