К основному содержанию
скилл CX Codex

canvas — скилл для Claude Code: доски Obsidian JSON Canvas

Создаёт и правит доски Obsidian в формате JSON Canvas: текстовые блоки, файлы, ссылки, группы и связи между узлами. Пригодится, когда нужно собрать визуальную карту хранилища.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add AgriciDaniel/claude-obsidian --skill canvas -a claude-code
Открыть на GitHub

Что делает canvas

Скилл работает с доской как с документом JSON Canvas внутри хранилища. Чтение идёт только на просмотр, а любое изменение проходит через одну транзакцию, которую можно откатить. Доски складываются в wiki/canvases/, по умолчанию берётся wiki/canvases/main.canvas, если вы не назвали другую.

Перед применением скилл читает доску целиком, запоминает SHA-256 каждого файла, черновик узлов и связей проверяет на уникальность ID, целые размеры и существование концов у связей. Затем собирается бандл claude-obsidian.transaction.v1, который сначала смотрят через transaction inspect, а потом применяют с флагом --approved-plan-sha256. Удалить или переименовать файл доски этим скиллом нельзя: движок умеет только создавать и заменять, так что для удаления он вернёт отдельный план уборки.

Пути в полях file и background должны быть относительными внутри хранилища. Абсолютные пути, .., домашние сокращения и выход через симлинки отклоняются. Ссылки принимаются только HTTPS и живут в узлах link; при открытии доски Obsidian может сходить за метаданными Open Graph на хост этой ссылки, поэтому скилл спросит, устраивает ли вас такой запрос при отрисовке. Если нет — URL кладут в текстовый узел.

Какие задачи решает

  • собрать доску из заметок хранилища
  • посмотреть состав доски и битые связи
  • добавить файл или картинку на существующий холст
  • разложить узлы группами с отступами
  • связать узлы направленными связями

Примеры запросов агенту

  • создай доску wiki/canvases/research.canvas с картой по заметкам о контекстном поиске
  • покажи статус доски main.canvas: сколько узлов и какие связи битые
  • добавь на холст заметку wiki/concepts/Contextual Retrieval.md и свяжи её с текстовым блоком

Как установить canvas

1Через Skills CLI (Vercel)

npx skills add AgriciDaniel/claude-obsidian --skill canvas -a claude-code

2Вручную: положить файлы

~/.claude/skills/canvas/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/canvas/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора11

autoresearch Запускает ограниченный цикл поиска с доступом в Сеть, собирает цитируемый отчёт и предлагает слить результаты в хранилище. Нужен, когда требуется глубокое исследование с проверкой фактов. CX Codex +1 525установок save Сохраняет выбранный ответ, решение или итог сессии в хранилище Obsidian через проверенную транзакцию. Пригодится, когда нужно зафиксировать знание из диалога без ручного копирования. CX Codex +1 511установок wiki-ingest Скилл превращает присланный материал в связанные заметки Obsidian, сохраняя происхождение и отслеживая утверждения. Пригодится, когда нужно разобрать статью, файл или ссылку и разложить по хранилищу. CX Codex +1 502установок obsidian-bases Скилл помогает составлять, проверять и редактировать файлы .base в Obsidian с фильтрами, формулами и разными типами представлений. CX Codex +1 498установок wiki-query Отвечает на вопрос по выбранному хранилищу Obsidian и не меняет в нём ни одного файла. Полезен, когда источником доказательств назначена сама вики. CX Codex +1 462установок wiki-lint Прогоняет детерминированную проверку Obsidian-вики: битые ссылки, страницы-сироты, пробелы во frontmatter. Ничего не правит — только показывает. CX Codex +1 460установок defuddle Планирует извлечение через Defuddle и сохраняет уже готовые локальные файлы в хранилище. Сетевой очистки внутри нет — только план и захват. CX Codex +1 433установок wiki-fold Собирает проверяемый свод записей из Obsidian wiki/log.md и сначала показывает черновик. Подходит для ручного сжатия лога без изменения дочерних страниц. CX Codex +1 400установок

Похожие

obsidian Teknium (teknium1), Hermes Agent Скилл читает, ищет, создаёт и редактирует заметки в хранилище Obsidian. Пригодится, когда нужно поручить агенту работу с файлами Markdown и связями между заметками. CX Codex +1 455установок obsidian-canvas-creator axtonliu Скилл собирает из текста файл JSON Canvas, который Obsidian открывает как доску: узлы, связи, группы. Раскладка на выбор — радиальная карта или свободная схема. CX Codex +1 2 000установок wiki-query Ar9av Скилл ищет ответы по скомпилированной базе Obsidian через графовый индекс и синтезирует выводы с цитатами без изменения заметок. CX Codex +1 3 600установок wiki-update Ar9av Синхронизирует архитектурные решения и контекст проекта в базу знаний Obsidian. Помогает сохранить выводы и структуру связей между кодом и заметками. CX Codex +1 3 400установок second-brain coreyhaines31 Скилл превращает папку с заметками в вики: складывает источники в raw/, компилирует их в связанные страницы и отвечает на вопросы по ним. CX Codex +1 355установок obsidian-source-ingestion Galaxy-Dawn Скилл складывает внешние материалы в проектную базу Obsidian как заметки-источники: статьи, веб-страницы, данные, интервью. Пригодится, когда источники надо не пересказывать, а хранить по полкам. CX Codex +1 320установок

Рядом в теме «Заметки, задачи и проекты»

Всё по теме «Заметки, задачи и проекты» →

Вопросы о canvas

Как установить canvas в Claude?

Выполните npx skills add AgriciDaniel/claude-obsidian --skill canvas -a claude-code. Скилл встанет в ~/.claude/skills/canvas/SKILL.md.

Что делает canvas?

Создаёт, читает и обновляет доски Obsidian в формате JSON Canvas: текстовые блоки, файлы, ссылки, группы и связи. Запись идёт одной транзакцией с проверкой перед применением.

Можно ли удалить доску через этот скилл?

Нет. Движок транзакций поддерживает только создание и замену файла, поэтому на запрос удаления или переименования скилл вернёт отдельный план уборки.

Исходный текст

SKILL.md · MIT
---
name: canvas
description: Create, inspect, and update Obsidian JSON Canvas boards with text, file, link, group, and edge nodes. Use for canvas status, canvas lists, visual maps, zones, spatial layouts, adding vault notes or media to a .canvas file, and requests such as create canvas, add to canvas, or put this on the canvas.
---

# Canvas

Treat a canvas as a vault-scoped JSON Canvas document. Keep reads read-only and
route every requested mutation through one recoverable transaction.

Resolve the installed product root from this skill's own location, not from the
vault or current working directory:

```bash
PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
test -f "$CORE"
```

Every `../wiki/references/` link in this file resolves the same way, relative
to this skill's own directory under `$PRODUCT_ROOT`, never relative to the
selected vault's `wiki/` directory.

## Choose the syntax source

Prefer a separately installed `kepano/obsidian-skills` `json-canvas` skill for
format details. Otherwise read [references/canvas-spec.md](references/canvas-spec.md).
The open standard is [JSON Canvas 1.0](https://jsoncanvas.org/spec/1.0/).

Use this skill for vault workflow and transaction safety even when an upstream
syntax skill is available.

## Scope

- Resolve the user vault before reading. Never derive it from plugin files.
- Store boards under `wiki/canvases/`; use `wiki/canvases/main.canvas` only as
  the default when the user did not name a board.
- Treat `wiki/canvases/_index.md` as an optional catalog. Add a new board to it
  in the same transaction when a catalog exists. Node or edge edits inside an
  existing board do not require a catalog change.
- The transaction engine supports file creation and replacement only. A board
  file cannot be deleted or renamed through this skill. Explain that boundary
  for a file-removal or file-rename request and return a separate cleanup plan;
  do not substitute host file tools or silently turn a rename into a copy.
- Use vault-relative paths in `file` and `background`; reject absolute paths,
  `..` traversal, home shortcuts, and paths that escape through symlinks.
- Reference only files already inside the vault or created in the same reviewed
  transaction. If an optional capture or
  media capability is detected, compose with it and consume its returned
  vault-relative path. Do not assume a particular plugin, command, or session
  log, and do not download or copy assets in this skill.
- Use `link` nodes for URLs. Accept HTTPS URLs only; a link node does not grant
  permission to fetch the page. Creating its JSON makes no request, but opening
  it in Obsidian may fetch Open Graph metadata from that URL's host. Disclose
  that render-time egress and confirm it is acceptable; otherwise use a text
  node containing the URL.

## Read-only operations

For status or list requests, parse the selected `.canvas` files and report node
counts, group labels, broken edge endpoints, and missing vault-relative file
targets. If the default canvas is absent, report that fact and offer a creation
preview; do not create it during a status request.

## Draft a mutation

1. Read the entire canvas and any catalog target. Record each expected SHA-256,
   or `null` for a file that must be absent.
2. Preserve unknown JSON fields and existing array order. The node array is
   bottom-to-top z-order.
3. Draft the requested nodes or edges:
   - Give every node and edge a unique ID. Prefer a random 16-character
     lowercase hexadecimal ID and verify it is unused.
   - Require integer `x`, `y`, `width`, and `height` values for every node.
   - Use `text`, `file`, `link`, or `group` exactly as defined by JSON Canvas.
   - Require every `fromNode` and `toNode` to reference an existing or newly
     drafted node.
4. Position new content deliberately. A group is a visual container, not a
   parent. Use 20 px inner padding and 40 px gaps, wrap to a new row when
   needed, and preview any group expansion.
5. Serialize valid UTF-8 JSON with top-level `nodes` and `edges` arrays.

Minimal node examples:

```json
{
  "nodes": [
    {
      "id": "6f0ad84f44ce9c17",
      "type": "text",
      "text": "# Research map\n\nA concise orientation card.",
      "x": 0,
      "y": 0,
      "width": 400,
      "height": 180
    },
    {
      "id": "a1b2c3d4e5f67890",
      "type": "file",
      "file": "wiki/concepts/Contextual Retrieval.md",
      "x": 460,
      "y": 0,
      "width": 400,
      "height": 240
    }
  ],
  "edges": []
}
```

Use `file` plus optional `subpath: "#Heading"` for notes, images, PDFs, and
other vault files. Use `url` only on a `link` node. Escape line breaks in JSON
strings as `\n`, not as literal backslash-plus-`n` text.

## Preview and apply

Validate before showing the preview:

- JSON parses and uses supported node types.
- IDs are unique and edge endpoints exist.
- dimensions are positive integers;
- file and background paths are safe, vault-relative, and present;
- new nodes do not unintentionally overlap or overflow their requested group.

Build one `claude-obsidian.transaction.v1` bundle with operation type `canvas`.
Include the canvas and the catalog in that same bundle when the catalog changes.
Read [operation-transactions.md](../wiki/references/operation-transactions.md),
then inspect the bundle before applying it:

```bash
python3 "$CORE" transaction inspect BUNDLE --vault VAULT
# Set APPROVAL_SHA256 to the inspect result's approval_sha256 after review.
python3 "$CORE" transaction apply BUNDLE --vault VAULT \
  --approved-plan-sha256 "$APPROVAL_SHA256"
```

For destructive edits within a board, including node or edge removal, obtain
explicit consent after presenting the preview. These edits replace the board
file through the transaction engine. Report the operation ID, exact
changed paths, board name, node IDs, and final positions. Do not commit Git.

© AgriciDaniel · MIT · AgriciDaniel/claude-obsidian

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой