用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill obsidian-canvas-create命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | obsidian-canvas-create |
| description | | Use when this capability is needed. |
Do NOT trigger for:
| Intent | Canvas Type | Layout |
|---|---|---|
| Organise ideas | Mind map | Radial from centre |
| Track tasks | Kanban board | Columns left to right |
| Show a process | Flowchart | Top to bottom |
| Gather research | Research canvas | Clusters with links |
| Project overview | Project board | Grouped sections |
| Compare options | Decision canvas | Side by side |
Ask if not obvious: "What kind of layout — mind map, kanban, flowchart, or something else?"
[[Note Name]])# If referencing vault notes, verify they exist
find "$VAULT_PATH" -name "note-name.md" 2>/dev/null
{
"nodes": [],
"edges": []
}
Node types:
Text node (content written directly on canvas):
{
"id": "a1b2c3d4e5f6a7b8",
"type": "text",
"x": 0,
"y": 0,
"width": 250,
"height": 120,
"text": "# Heading\n\nContent here with **markdown**"
}
File node (reference to a vault note):
{
"id": "b2c3d4e5f6a7b8c9",
"type": "file",
"x": 300,
"y": 0,
"width": 250,
"height": 120,
"file": "Notes/note-name.md"
}
Link node (external URL):
{
"id": "c3d4e5f6a7b8c9d0",
"type": "link",
"x": 600,
"y": 0,
"width": 250,
"height": 120,
"url": "https://example.com"
}
Group node (visual container):
{
"id": "d4e5f6a7b8c9d0e1",
"type": "group",
"x": -20,
"y": -40,
"width": 580,
"height": 200,
"label": "Group Name"
}
Edges (connections between nodes):
{
"id": "e5f6a7b8c9d0e1f2",
"fromNode": "a1b2c3d4e5f6a7b8",
"toNode": "b2c3d4e5f6a7b8c9",
"fromSide": "right",
"toSide": "left",
"label": "leads to"
}
ID generation: 16 lowercase hex characters. Use random generation:
import secrets
node_id = secrets.token_hex(8) # "a1b2c3d4e5f6a7b8"
Color options:
"1" (red), "2" (orange), "3" (yellow), "4" (green), "5" (cyan), "6" (purple)"#FF0000"
Mind map (radial):
[Topic A]
|
[Topic B] - [Centre] - [Topic C]
|
[Topic D]
Kanban (columns):
| Todo (x:0) | In Progress (x:300) | Done (x:600) |
| Task 1 | Task 3 | Task 5 |
| Task 2 | Task 4 | Task 6 |
Flowchart (vertical):
[Start] y: 0
|
[Step 1] y: 200
|
/ \
[Yes] [No] y: 400
Research canvas (clusters):
[Source Group] [Notes Group] [Synthesis Group]
[Source 1] [Note 1] [Summary]
[Source 2] [Note 2]
[Source 3]
Recommended node sizes:
Write the JSON with proper formatting (2-space indent).
Verify:
# Validate JSON
python3 -c "import json; json.load(open('$CANVAS_PATH'))" && echo "Valid JSON"
Confirm:
Canvas created: canvas-name.canvas
Nodes: X text, Y file, Z link
Edges: N connections
Layout: [mind map / kanban / flowchart / research]
Open in Obsidian to view.
## Canvas Created
**File:** canvas-name.canvas
**Type:** [mind map / kanban / flowchart / research]
**Nodes:** X (Y text, Z file, W link)
**Edges:** N connections
**Groups:** G groups
Open in Obsidian to view and rearrange.
\n)User: "Create a kanban board for my current project tasks"
{
"nodes": [
{
"id": "g001000000000001",
"type": "group",
"x": 0, "y": 0,
"width": 280, "height": 400,
"label": "Todo",
"color": "1"
},
{
"id": "g002000000000002",
"type": "group",
"x": 300, "y": 0,
"width": 280, "height"
Canvas created: project-kanban.canvas
Nodes: 4 task cards in 3 groups
Layout: Kanban (Todo → In Progress → Done)
Open in Obsidian to drag tasks between columns.
What DOESN'T work:
- Using literal newlines in JSON text fields — breaks the JSON parser, must use `\n`
- Overlapping node positions — canvas renders but nodes stack on top of each other
- Skipping groups in kanban — cards float without visual columns
- Not validating JSON — one missing comma and the whole canvas won't open
Source: ElliotJLT/Claude-Skill-Potions — distributed by TomeVault.