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/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/eliransu/digital-brain/canvas"><img src="https://agentmods.dev/badge/skills/eliransu/digital-brain/canvas.svg" alt="Reviewed on agentmods" width="80" 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.5 | $0.00039 | $0.01042 |
| Sonnet 5.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 1mo 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.
- 1mo 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 5mo ago), licensed MIT. It adds 97 tokens to every session and 2,605 once invoked, about $0.0004 per session on Opus 5.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
skill-doc-delivery
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables.
add-pdf-report
Internal implementation skill invoked by /add-native for app-generated PDF report workflows using expo-print and, when present, expo-sharing.
pkf-writing
Author, update, convert, validate, persist, and render PKF (.pkf) content through message-inline, Library Asset, or Memory Page carriers. Use for structured reports, knowledge pages, delivery cards, or any .pkf body. NOT for recall, memory-graph placement, or curation decisions — those belong to the memory skill.
oma-pdf
Extract PDF text, headings, tables, and images into Markdown using opendataloader-pdf. Use for PDF parsing, not PDF layout creation.
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…
wechat-article-ingest
A tool that converts public WeChat Official Account articles, or PDF copies of them, into Markdown notes. It can also extract the article's main viewpoints and create linked questions for further thinking.