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 agentmods add skills/fredrikaverpil/dotfiles/obsidiannpx skills add fredrikaverpil/dotfiles --skill obsidiangit clone --depth 1 https://github.com/fredrikaverpil/dotfilesWrote 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/fredrikaverpil/dotfiles/obsidian)<a href="https://agentmods.dev/skills/fredrikaverpil/dotfiles/obsidian"><img src="https://agentmods.dev/badge/skills/fredrikaverpil/dotfiles/obsidian.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.00116 | $0.01687 |
| Opus 5 | $0.00058 | $0.00843 |
| Sonnet 5 | $0.00023 | $0.00337 |
| Haiku 4.5 | $0.00012 | $0.00169 |
Grade A, and why
obsidian 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 168 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Obsidian vault
The user keeps a personal Obsidian vault as plain markdown files synced via iCloud. The vault is just a directory tree, so all standard Unix tools work — no Obsidian app required to read or write notes.
Where it lives
/Users/fredrik/Library/Mobile Documents/iCloud~md~obsidian/Documents/work
Because the path contains spaces and tildes, always quote it in shell commands. A useful shorthand is to assign it once per session:
VAULT="/Users/fredrik/Library/Mobile Documents/iCloud~md~obsidian/Documents/work"
If $VAULT doesn't exist (e.g. on a non-mac host or before iCloud has synced),
stop and tell the user — don't fabricate notes.
How the user normally interacts with it
The user edits the vault from Neovim via the
obsidian.nvim plugin.
Configuration (workspace path, daily-notes folder, template settings, keymaps)
lives in nvim-fredrik/plugin/obsidian.lua in this dotfiles repo — read it when
you need the current setup, since it changes occasionally and this skill should
not duplicate it.
When suggesting a workflow, prefer pointing the user at the relevant keymap or
:Obsidian command (look them up in that file) over spawning a shell command,
unless they're clearly outside Neovim.
Folder layout
$VAULT/
├── Daily/ # Daily notes, one file per day: YYYY-MM-DD.md
├── Meeting notes/ # Meeting notes (template: meeting_notes.md)
├── Resources/ # PARA-style references (Go/, Postgres/, Neovim/, ...)
├── Ideas/ # Half-baked ideas
├── Archive/ # Things no longer active
├── Clippings/ # Web clippings
├── _templates/ # Frontmatter templates (daily.md, meeting_notes.md)
├── _excalidraw/ # Excalidraw drawings
├── .trash/ # Obsidian's soft-delete bin (treat as deleted)
└── *.md # A handful of loose top-level notes
# (scratchpad.md, Running.md, LEARNING.md, blog drafts)
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.
- 6d ago First seen · 168 lines · 116 tokens per session scan A 59e783be8664
obsidian is a skill published in the GitHub repository fredrikaverpil/dotfiles (257 stars, last pushed yesterday), licensed MIT. It adds 116 tokens to every session and 1,687 once invoked, about $0.0006 per session on Opus 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 skills, from other repositories
claw-memory-management
Workspace memory management guide: memory layers, writing rules, entry format, and maintenance. Use when writing, updating, or maintaining memory files (memory/YYYY-MM-DD.md and MEMORY.md).
mbo-plan
Plan a new objective end-to-end in this repo's docs/mbo Management-By-Objective system — turn a GitHub issue or a gss draft-PR worktree into consistent design/spec/plan artifacts and track it in docs/mbo/index.md. Use this whenever the user wants to START planning or designing a new feature, skill, CLI, or service…
wispr-flow-debug
Debug and test the Wispr Flow AutoHotkey dictation triggers (Copilot key + extra keys) from WSL by deploying macos.ahk to the Windows Desktop, reloading AutoHotkey, and reading the debug log. Use when an activation/trigger key isn't starting/stopping dictation, when the overlay clicks land wrong, or when verifying a…
pr-list
List GitHub Pull Requests in a Discord-friendly format with status icons, blockquotes, and direct links. Use when the user asks for "pr list", "list PRs", "open pull requests", or a chat-ready summary of PRs for a repository.
google-docs
Integration for interacting with Google Docs and Google Workspace using the 'gws' CLI.
sync-forks
Check how many of your GitHub forks are out of date and sync them.