json-canvas¶
This skill enables skills-compatible agents to create and edit valid JSON Canvas files (.canvas) used in Obsidian and other applications.
- Area: Foundational
- Category: obsidian
- Level: beginner
- Input: conversation
- Output: document
- Setup: none
- Roles:
Creates and edits JSON Canvas files (.canvas) with nodes, edges, groups, and connections.
How you ask¶
- “Create a JSON Canvas file with connected nodes”
- “Build a visual mind map as a .canvas file”
- “Edit this canvas file to add a new group of nodes”
Inputs¶
- request — The structure to lay out and any layout constraint that binds it — orientation, grouping, colour meaning, or viewport size.
- structure-type — Layout family to build. Left unset, the route infers it from the relationships described; naming one fixes the grid and edge conventions up front. (flowchart | map | board | dependency-graph | freeform)
- node-sources — Vault note paths and external URLs to render as
fileandlinknodes instead of text nodes, so the canvas points at live content rather than copying it. - output-path — Destination the caller names for the
.canvasfile. Left unset, the canvas is returned inline and written to the default output location. - canvas-file — Canvas to modify, read back so existing node ids, file-node paths and group boundaries are preserved rather than regenerated.
- request — The change to make, naming which nodes or edges are added, updated, or removed so the patch scope can be reported back.
- canvas-file — Canvas to check against the Validation Rules and the
autosize_canvas.pyloop. The route runs against any canvas, including one this skill did not create. - request — The reported symptom — which boxes are unreadable, which edges look wrong — used to order the checks so the likely cause is tested first.
- apply-fixes — Whether to let
autosize_canvas.py --applywrite the resize and overlap fixes back to the file (keeping a.bak) rather than only reporting them.
Outputs¶
- Patched canvas with the named nodes and edges changed, every untouched file-node path and group boundary intact, and boxes re-sized to the new content.
- Valid JSON Canvas document —
nodesandedgesarrays with unique ids, resolved edge references, and node boxes sized to their content. - either "Verification passed" or the nodes still undersized or overlapping.
- prefer a permanent directory)