Productivity
json-canvas avatar

json-canvas

Create, edit, and manage JSON Canvas (.canvas) files for visual note-taking, mind mapping, and flowcharts in Obsidian.

Introduction

The json-canvas skill provides comprehensive capabilities for programmatically interacting with Obsidian Canvas files. This tool is designed for users who need to automate the creation of visual diagrams, complex mind maps, project boards, or flowcharts directly within their Obsidian vault. By adhering strictly to the JSON Canvas Spec 1.0, this skill ensures that all generated or modified files are fully compatible with Obsidian's native canvas engine.

This skill is ideal for researchers, project managers, and technical writers who want to consolidate information from multiple markdown files into a single, navigable visual space. It supports the integration of text nodes, file embeds, external web links, and group containers, allowing for structured layout management. Developers can use this to script the generation of project overviews, task dependency graphs, or knowledge base visualizations without needing to manually manipulate the canvas interface.

  • Full support for JSON Canvas Spec 1.0 including nodes, edges, groups, and connection configurations.

  • Automated generation of unique 16-character hex identifiers for nodes and edges to ensure data integrity and prevent collisions.

  • Support for diverse node types: text (with Markdown support), file embeds (including subpaths for blocks/headings), external URLs, and group containers.

  • Precision control over layout attributes including x, y coordinates, width, height, and node layering via Z-index management.

  • Ability to add edges with custom anchor points (top, right, bottom, left), labels, and directional arrows.

  • Preset and custom color support using the canvasColor standard (hex or 1-6 presets).

  • Always validate the JSON structure after modifications to ensure that all fromNode and toNode references resolve correctly to existing IDs.

  • When creating layouts, use standard grid increments (multiples of 10 or 20) and maintain 50-100px spacing between nodes for optimal readability in the Obsidian interface.

  • Use standard '\n' characters for line breaks within JSON strings to prevent rendering issues in Obsidian.

  • The tool expects files with the .canvas extension and requires valid JSON formatting; it serves as a bridge between structured data pipelines and the visual canvas workspace.

Repository Stats

Stars
27,244
Forks
1,797
Open Issues
33
Language
Not provided
Default Branch
main
Sync Status
Idle
Last Synced
Apr 29, 2026, 07:01 AM
View on GitHub