Skip to content
Skillpedia
Interfaces (UI/UX)48k · #3383

json-canvas

Lets your agent create and edit visual files called JSON Canvas. It's useful for organizing ideas, creating flowcharts, or mind maps.

What it does

This agent helps create and edit visual map files called '.canvas'. You can use it to make diagrams, mind maps, or flowcharts.

When to use it

  • ✓Creating a new visual map.
  • ✓Adding or connecting ideas on an existing map.
  • ✓Organizing information visually.

Example of what to ask your AI

“Create a mind map with the following points: 'Main Idea', 'Sub-idea 1', 'Sub-idea 2', connecting 'Main Idea' to both sub-ideas.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/json-canvas/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/json-canvas/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It works by creating and modifying a special text file (.canvas) that describes the visual elements and their connections. The agent ensures everything is structured correctly within this file.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill json-canvas

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/json-canvas/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

JSON Canvas Skill

When to Use

  • Use when creating or editing .canvas files for Obsidian.
  • Use for mind maps, flowcharts, visual note structures, or connected canvases.
  • Use when the user explicitly mentions JSON Canvas or Obsidian Canvas files.

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

  1. Read and parse the existing .canvas file
  2. Generate a unique ID that does not collide with existing node or edge IDs
  3. Choose position (x, y) that avoids overlapping existing nodes (leave 50-100px spacing)
  4. Append the new node object to the nodes array
  5. Optionally add edges connecting the new node to existing nodes
  6. Validate: Confirm all IDs are unique and all edge references resolve to existing nodes

3. Connect Two Nodes

  1. Identify the source and target node IDs
  2. Generate a unique edge ID
  3. Set fromNode and toNode to the source and target IDs
  4. Optionally set fromSide/toSide (top, right, bottom, left) for anchor points
  5. Optionally set label for descriptive text on the edge
  6. Append the edge to the edges array
  7. Validate: Confirm both fromNode and toNode reference existing node IDs

4. Edit an Existing Canvas

  1. Read and parse the .canvas file as JSON
  2. Locate the target node or edge by id
  3. Modify the desired attributes (text, position, color, etc.)
  4. Write the updated JSON back to the file
  5. Validate: Re-check all ID uniqueness and edge reference integrity after editing

Nodes

Nodes are objects placed on the canvas. Array order determines z-index: first node = bottom layer, last node = top layer.

Generic Node Attributes

Attribute Required Type Description
id Yes string Unique 16-char hex identifier
type Yes string text, file, link, or group
x Yes integer X position in pixels
y Yes integer Y position in pixels
width Yes integer Width in pixels
height Yes integer Height in pixels
color No canvasColor Preset "1"-"6" or hex (e.g., "#FF0000")

Text Nodes

Attribute Required Type Description
text Yes string Plain text with Markdown syntax
{
  "id": "6f0ad84f44ce9c17",
  "type": "text",
  "x": 0,
  "y": 0,
  "width": 400,
  "height": 200,
  "text": "# Hello World\n\nThis is **Markdown** content."
}

Newline pitfall: Use \n for line breaks in JSON strings. Do not use the literal \\n -- Obsidian renders that as the characters \ and n.

File Nodes

Attribute Required Type Description
file Yes string Path to file within the system
subpath No string Link to heading or block (starts with #)
{
  "id": "a1b2c3d4e5f67890",
  "type": "file",
  "x": 500,
  "y": 0,
  "width": 400,
  "height": 300,
  "file": "Attachments/diagram.png"
}

Link Nodes

Attribute Required Type Description
url Yes string External URL
{
  "id": "c3d4e5f678901234",
  "type": "link",
  "x": 1000,
  "y": 0,
  "width": 400,
  "height": 200,
  "url": "https://obsidian.md"
}

Group Nodes

Groups are visual containers for organizing other nodes. Position child nodes inside the group's bounds.

Attribute Required Type Description
label No string Text label for the group
background No string Path to background image
backgroundStyle No string cover, ratio, or repeat
{

…
FAQ

What is a .canvas file?

It's a text file that describes a visual map, like a flowchart or mind map, using a format called JSON Canvas.

How are ideas connected?

Connections are made using 'edges' that link the unique identifiers of each idea (node).

Can I use colors?

Yes, you can set colors for elements using predefined numbers or hexadecimal color codes.

Details

Original description by the author

Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#3383
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills