Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add eliransu/digital-brain --skill canvasgit clone --depth 1 https://github.com/eliransu/digital-brainWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/eliransu/digital-brain/canvas)<a href="https://agentmods.dev/skills/eliransu/digital-brain/canvas"><img src="https://agentmods.dev/badge/skills/eliransu/digital-brain/canvas.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.02605 |
| Opus 5 | $0.00048 | $0.01303 |
| Sonnet 5 | $0.00019 | $0.00521 |
| Haiku 4.5 | $0.00010 | $0.00261 |
Grade A, and why
canvas scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- If URL (starts with `http`): download with `curl -sL [url] -o _attachments/images/canvas/[filename]` This is a copy
94% identical to canvas — 26 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 289 lines — stays where its author put it; the contents beside it link to each section on GitHub.
canvas: Visual Reference Layer
The three knowledge capture layers:
/save→ text synthesis (wiki/synthesis/, wiki/concepts/)/autoresearch→ structured knowledge (wiki/sources/, wiki/concepts/)/canvas→ visual references (wiki/canvases/)
A canvas is a JSON file Obsidian renders as an infinite visual board. This skill reads and writes canvas JSON directly. Read references/canvas-spec.md for the full format reference before making any edits. This spec aligns with the JSON Canvas open standard. If the kepano/obsidian-skills plugin is installed, its json-canvas skill is the authoritative canvas spec reference. Otherwise, use the guidance below.
Default Canvas
wiki/canvases/main.canvas
If it does not exist, create it:
{
"nodes": [
{
"id": "title",
"type": "text",
"text": "# Visual Reference\n\nDrop images, PDFs, and notes here.",
"x": -400,
"y": -300,
"width": 400,
"height": 120,
"color": "6"
},
{
"id": "zone-default",
"type": "group",
"label": "General",
"x": -400,
"y": -140,
"width": 800,
"height": 400,
"color": "4"
}
],
"edges": []
}
Operations
open / status (/canvas with no args)
- Check if
wiki/canvases/main.canvasexists. - If yes: read it, count nodes by type, list all group node labels (zone names). Report: "Canvas has N nodes: X images, Y text cards, Z wiki pages. Zones: [list]"
- If no: create it with the starter structure above. Report: "Created main.canvas with a General zone."
- Tell user: "Open
wiki/canvases/main.canvasin Obsidian to view."
new (/canvas new [name])
- Slugify the name: lowercase, spaces → hyphens, strip special chars.
- Create
wiki/canvases/[slug].canvaswith the starter structure, title updated to# [Name]. - Add entry to
wiki/overview.mdunder a "## Canvases" subsection (append after the Current State section). Do not modifywiki/index.md. It uses a fixed section schema (Domains, Entities, Concepts, Sources, Questions, Comparisons). - Report: "Created wiki/canvases/[slug].canvas"
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 289 lines · 97 tokens per session scan A 36e072a670a0
canvas is a skill published in the GitHub repository eliransu/digital-brain (1 stars, last pushed 3mo ago), licensed MIT. It adds 97 tokens to every session and 2,605 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). It is 94% identical to canvas, differing in 26 lines, and is treated as a copy.
Other skills, from other repositories
slides
Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities. Use when tasks involve building a new PowerPoint deck, recreating slides from screenshots/PDFs/reference decks, modifying slide content while preserving editable output, adding…
lov-any2deck
Generate professional slide deck images from content (Markdown, text, URLs). Creates outlines with style instructions, then generates individual slide images. Supports 16 visual styles, CJK/Latin mixed text, branding overlays, and PPTX/PDF export. Use when the user asks to "create slides", "make a presentation"…
template-pitch-deck
Pitch-deck generation exemplar — short/medium/long PDF+PPTX decks from one token-resolved, diligence-cited content source.
template-storybook
Full-page illustrated storybook exemplar — symbolic shape-family characters, page-level raster scenes, text overlays, deterministic PDF assembly.
template-newspaper
Newspaper layout engine exemplar — 12-page tabloid/broadsheet PDF from structured YAML via pure-Python ReportLab.
deck-import
Convert any PDF or PPTX deck into a self-contained interactive HTML deck, one file, one link, shareable. Auto-detects input file extension (.pdf or .pptx) and routes to the matching extraction path. Detects which of the 5 deck types the source is (pitch, sales, launch, keynote, all-hands) and hands off to the matching…