json-canvas
This skill provides instructions and structural guidelines for creating, editing, and validating Obsidian .canvas files according to the JSON Canvas 1.0 specification.
Is json-canvas safe to install?
Review before installing: our audit of json-canvas's source files found 0 shell commands, 0 external URLs, file reads and writes (medium risk). Every command and URL listed appears verbatim in the skill's source. The skill involves reading and writing local .canvas files. It does not execute shell commands or perform network requests.
How we audit skills: our security review methodology.
Who is this skill for?
Users working with Obsidian canvas files who need to programmatically generate or modify visual canvases, mind maps, or flowcharts.
What can you do with it?
- Creating new .canvas files with nodes and edges
- Adding text, file, link, or group nodes to existing canvases
- Connecting nodes with edges
- Validating canvas file structure and ID integrity
How good is this skill?
Quality score: 5/10. The skill documentation is comprehensive, providing clear structural requirements, validation checklists, and specific examples for all node types.
What does the skill file contain?
# JSON Canvas Skill
## File Structure
A canvas file (`.canvas`) contains two top-level arrays following the [JSON Canvas Spec 1.0](https://jsoncanvas.org/spec/1.0/):
```json
{
"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`,...Frequently asked questions
What file format does this skill use?
It uses the JSON Canvas 1.0 specification, which stores data in .canvas files containing nodes and edges arrays.
How are node identifiers generated?
Nodes require unique 16-character lowercase hexadecimal strings.
What node types are supported?
Supported types are text, file, link, and group.
How should I handle line breaks in text nodes?
Use the \n escape sequence within the JSON string.
Related skills
lark-workflow-meeting-summary
219.7KUsers who need to summarize meeting minutes, generate weekly reports, or review meeting history within the Lark ecosystem
The lark-workflow-meeting-summary skill provides a structured workflow for agents to aggregate meeting minutes from Lark VC, generate summaries, and create or update reports in Lark Docs.
caveman-review
219.4KDevelopers and reviewers who prefer terse, actionable feedback on code changes
The caveman-review skill generates concise, one-line code review comments for pull requests. It enforces a strict format of location, problem, and fix to reduce noise in feedback.
caveman-commit
214.4KDevelopers who want to maintain clean, terse, and informative git commit histories
The caveman-commit skill generates concise commit messages following the Conventional Commits specification. It prioritizes the reasoning behind changes over the description of the changes themselves.
notion-api
52.2KDevelopers and AI agents requiring programmatic access to Notion workspaces
This skill provides instructions for interacting with the Notion REST API. It enables agents to read, create, update, and delete Notion pages, databases, blocks, and comments using curl and jq.