Subscription Videos Metadata
EfficientStreet/youtube-subscriptions-ingest
Pull metadata from YouTube subscription videos into a second-brain vault as a real cross-linked knowledge graph — not just a flat archive.
Creates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits.
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/claude-obsidian canvas --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/canvas .claude/skills/canvas && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .claude/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvasType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/claude-obsidian canvas --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/canvas .agents/skills/canvas && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .agents/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/claude-obsidian canvas --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/canvas .cursor/skills/canvas && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .cursor/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgriciDaniel/claude-obsidian.git --path skills/canvas--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/claude-obsidian canvas --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/canvas .gemini/skills/canvas && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .gemini/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgriciDaniel/claude-obsidian canvasInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/canvas .github/skills/canvas && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .github/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgriciDaniel/claude-obsidian --skill canvas -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/claude-obsidian canvas --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/canvas .opencode/skills/canvas && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "canvas" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/canvas into .opencode/skills/canvas/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
canvasCreates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits.
A canvas is treated as a vault-scoped JSON Canvas document: reads never change anything, and every requested change goes through one recoverable transaction. The agent finds the installed product root from the skill's own location rather than from the vault or working directory. For format details it prefers a separately installed `json-canvas` skill from `kepano/obsidian-skills`, and otherwise reads `references/canvas-spec.md`, which follows the open JSON Canvas 1.0 standard.
Scope rules are strict: boards live under `wiki/canvases/`, with `main.canvas` as the default; paths inside nodes must be vault-relative, rejecting absolute paths, `..` traversal and symlink escapes; and the skill never downloads or copies assets. Link nodes accept HTTPS URLs only, and because opening one in Obsidian may fetch preview metadata from that host, the agent discloses this and confirms, or uses a text node. Status requests report node counts, group labels, broken edges and missing file targets without creating anything.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 32ac5a0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
jsoncanvas.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Obsidian Canvas Boards loads about 1.4k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 77 tokens; SKILL.md has 620 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AgriciDaniel/claude-obsidian at commit 32ac5a0, republished under its MIT licence (© AgriciDaniel). 620 words, ~1,360 tokens.
.claude/skills/canvas/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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:
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.
Prefer a separately installed kepano/obsidian-skills json-canvas skill for
format details. Otherwise read references/canvas-spec.md.
The open standard is JSON Canvas 1.0.
Use this skill for vault workflow and transaction safety even when an upstream syntax skill is available.
wiki/canvases/; use wiki/canvases/main.canvas only as
the default when the user did not name a board.wiki/canvases/index.md as an optional catalog. Update it only when a
canvas is created, renamed, or removed.file and background; reject absolute paths,
.. traversal, home shortcuts, and paths that escape through symlinks.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.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.
null for a file that must be absent.x, y, width, and height values for every node.text, file, link, or group exactly as defined by JSON Canvas.fromNode and toNode to reference an existing or newly
drafted node.nodes and edges arrays.Minimal node examples:
{
"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.
Validate before showing the preview:
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,
then inspect the bundle before applying it:
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 removals, replacements, renames, or other destructive changes, obtain explicit consent after presenting the preview. Report the operation ID, exact changed paths, board name, node IDs, and final positions. Do not commit Git.
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/canvas of AgriciDaniel/claude-obsidian.
Open the folder on GitHubat commit 32ac5a0
Obsidian Canvas Boards next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Obsidian Canvas Boards this skillAgriciDaniel/claude-obsidian | 15k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Subscription Videos MetadataEfficientStreet/youtube-subscriptions-ingest | 178 | — | ~7.1k | Automated safety check: Notes | MIT | |
| My LLM WikiMartinLwx/dotfiles | 140 | — | ~2.7k | Automated safety check: Pass | None | |
| Obsidian Knowledge BuilderMichael-OvO/obsidian-knowledge-agent | 205 | — | ~917 | Automated safety check: Pass | MIT | |
| NexusProfSynapse/nexus | 157 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Obsidian Project Knowledge BaseGalaxy-Dawn/claude-scholar | 5.7k | — | ~551 | Automated safety check: Pass | MIT |
EfficientStreet/youtube-subscriptions-ingest
Pull metadata from YouTube subscription videos into a second-brain vault as a real cross-linked knowledge graph — not just a flat archive.
MartinLwx/dotfiles
Provides access to the user's personal wiki, including notes, research, project documentation, decisions, and archived knowledge.
Michael-OvO/obsidian-knowledge-agent
Turns PDFs, slides, syllabi, papers and transcripts into structured, teaching-quality Obsidian notes, matching how much structure is built to how much the material needs.
ProfSynapse/nexus
Read, search, and edit the user's Obsidian vault (notes, folders, canvas, bases, tasks, memory/workspaces, saved prompts) from the shell via the nexus CLI — no MCP connection needed.
Galaxy-Dawn/claude-scholar
Maintains a project-scoped Obsidian research knowledge base: bootstrapping its folders, routing notes, updating hub, plan and index notes, and linting.
ballred/obsidian-claude-pkm
Reads, creates and edits notes in an Obsidian vault while preserving wiki-links, YAML frontmatter, tags and template variables.
AgriciDaniel/claude-obsidian
Runs a bounded, source-grounded research loop that drafts a cited dossier and can propose a separately reviewed merge into an Obsidian vault.
AgriciDaniel/claude-obsidian
Sets up or adopts a separate Obsidian knowledge vault through the claude-obsidian core script and routes follow-up work to the right wiki sub-skill.
AgriciDaniel/claude-obsidian
Creates a bounded, extractive rollup of recent Obsidian wiki log entries, previewed by default, with one optional apply step and no changes to child pages.
AgriciDaniel/claude-obsidian
Plans, and with explicit network consent runs, an external Defuddle extractor that turns an article-like HTTPS page into clean Markdown for later wiki ingestion.
AgriciDaniel/claude-obsidian
Explains, drafts and validates Obsidian Bases .base files, building filters, formulas and table, card or list views, and applying edits only through one inspected transaction.
AgriciDaniel/claude-obsidian
Explains, drafts and validates Obsidian Flavored Markdown such as properties, wikilinks, embeds, callouts and Mermaid, with vault edits applied through approved transactions.
Works with
Categories
Creates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits. A canvas is treated as a vault-scoped JSON Canvas document: reads never change anything, and every requested change goes through one recoverable transaction. The agent finds the installed product root from the skill's own location rather than from the vault or working directory.
Obsidian Canvas Boards fits situations like: creating a new canvas board for a project in an Obsidian vault; adding vault notes, media or links to an existing .canvas file; checking a canvas for broken edges or missing file targets; laying out groups and zones as a visual map.
Run `npx skills add AgriciDaniel/claude-obsidian --skill canvas -a claude-code`. Or copy the skill folder (skills/canvas in AgriciDaniel/claude-obsidian) into .claude/skills/canvas in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/claude-obsidian --skill canvas -a codex`. Or copy the skill folder (skills/canvas in AgriciDaniel/claude-obsidian) into .agents/skills/canvas in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-obsidian --skill canvas -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/canvas, .gemini/skills/canvas, .github/skills/canvas and .opencode/skills/canvas in your project.
Going by SKILL.md and its folder, Obsidian Canvas Boards needs the command-line tools its instructions call (python3). Our summary lists: An Obsidian vault; The claude-obsidian plugin installed, including its `scripts/claude-obsidian.py` core.
SKILL.md names 1 domain. As links in the text: jsoncanvas.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Obsidian Canvas Boards is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Obsidian Canvas Boards: Subscription Videos Metadata (EfficientStreet/youtube-subscriptions-ingest, 178 stars), My LLM Wiki (MartinLwx/dotfiles, 140 stars), Obsidian Knowledge Builder (Michael-OvO/obsidian-knowledge-agent, 205 stars) and Nexus (ProfSynapse/nexus, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-obsidian, which has 15,420 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 10, 2026.
Source: AgriciDaniel/claude-obsidian on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.