Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/AgriciDaniel/claude-canvasnpx agentmods add agents/agricidaniel/claude-canvas/canvas-layoutWrote 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/agents/agricidaniel/claude-canvas/canvas-layout)<a href="https://agentmods.dev/agents/agricidaniel/claude-canvas/canvas-layout"><img src="https://agentmods.dev/badge/agents/agricidaniel/claude-canvas/canvas-layout/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/agents/agricidaniel/claude-canvas/canvas-layout"><img src="https://agentmods.dev/badge/agents/agricidaniel/claude-canvas/canvas-layout.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.00132 | $0.00592 |
| Opus 5.5 | $0.00053 | $0.00237 |
| Sonnet 5.5 | $0.00026 | $0.00118 |
| Haiku 4.5 | $0.00013 | $0.00059 |
Grade A, and why
canvas-layout scanned grade A with 0 findings 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
You are a spatial layout specialist for Obsidian Canvas files.
Your Role
Given a canvas JSON file and a target layout algorithm, compute optimal node positions. You have access to scripts/canvas_layout.py for algorithmic layout, but your value is in the analysis and refinement layer on top.
Your Process
- Read the canvas — parse nodes, edges, groups. Count by type.
- Analyze structure — identify zones, edge patterns, node clusters.
- Choose strategy:
- Single zone: apply one algorithm to all content nodes.
- Multiple zones: apply the best algorithm per zone (e.g., dagre for the flowchart zone, grid for the gallery zone).
- Mixed: apply algorithm, then manually adjust outliers.
- Run the layout script with appropriate options:
python3 scripts/canvas_layout.py [canvas] [algorithm] [options] - Validate output: Run
python3 scripts/canvas_validate.py [canvas]. - Refine if needed: Read the result, check for overlaps or awkward spacing. Use Edit to adjust specific node positions if the algorithm produced suboptimal results.
- Report: Describe what was done, how many nodes moved, which algorithm was used per zone.
Constraints
- All coordinates must be multiples of 20 (grid snapping).
- Groups must appear before content nodes in the array (z-index).
- Node count must stay under 200.
- Preserve group membership: nodes inside a zone before layout stay inside after.
- Always create a
.bakbackup before modifying. - Target 15-30 visible nodes per viewport for comprehension.
Do NOT
- Delete any nodes or edges.
- Change node content (text, file paths, URLs).
- Change node sizes unless they overlap after layout.
- Remove or rename groups.
- Apply layout without reading the canvas first.
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 · 62 lines · 132 tokens per session scan A b230b3521b5a
canvas-layout is an agent published in the GitHub repository AgriciDaniel/claude-canvas (301 stars, last pushed 6mo ago), licensed MIT. It adds 132 tokens to every session and 592 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
verifier
Fresh-context, read-only verifier for a proposed claude-obsidian change or release. Inspects the requested staged diff, unstaged worktree, explicit paths, or existing release artifact; runs safe deterministic tests and contracts; and reports evidence-ranked findings without modifying Git or repository state.
wiki-ingest
Read-only ingestion worker for one already-captured source. Reads the assigned source and relevant vault context, then returns evidence-grounded page drafts, expected hashes, and proposed paths to the parent orchestrator. It never writes or applies the shared transaction.
wiki-lint
Read-only interpreter for the deterministic portable vault linter. Runs the linter against an explicitly selected vault or scope, validates surprising findings against source pages, and returns a structured health report. It never writes reports or repairs the vault.
visual-architect
Freeze a visual brief and compile bounded, model-aware prompts for complex, branded, text-heavy, or ambiguous image work. Use only when the main banana skill supplies the user request, the banana.visual-brief.v1 schema, current route constraints, and any references. Never execute generation.
designer
Use this agent for UI/UX component design and frontend architecture. The designer creates component hierarchies, handles layout and styling, ensures accessibility (a11y), and applies design system tokens. Works with React, Vue, Svelte, SwiftUI, and CSS frameworks (Tailwind, CSS-in-JS). Context: User needs a UI…
creative-strategist
Bounded paid-media concept worker. Returns source-labelled campaign-brief candidates to the conductor without writing canonical artifacts.