Borrowing it
Nothing to install: this file belongs to swarm-ai-research/swarm. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/swarm-ai-research/swarm/main/.claude/commands/obsidian.mdgit clone --depth 1 https://github.com/swarm-ai-research/swarmWrote 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/commands/swarm-ai-research/swarm/obsidian)<a href="https://agentmods.dev/commands/swarm-ai-research/swarm/obsidian"><img src="https://agentmods.dev/badge/commands/swarm-ai-research/swarm/obsidian/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/commands/swarm-ai-research/swarm/obsidian"><img src="https://agentmods.dev/badge/commands/swarm-ai-research/swarm/obsidian.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.00000 | $0.00602 |
| Opus 5 | $0.00000 | $0.00301 |
| Sonnet 5 | $0.00000 | $0.00120 |
| Haiku 4.5 | $0.00000 | $0.00060 |
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 9d 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 — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/obsidian
Open a file or vault in Obsidian from the CLI, with auto-detected vault name.
Usage
/obsidian [file-path]
Examples:
/obsidian(opens the vault root)/obsidian vault/dashboards/suggestions(opens a specific note)/obsidian vault/claims/claim-tax-welfare-tradeoff(opens a claim card)
Behavior
1. Find the Obsidian vault registry
cat ~/Library/Application\ Support/obsidian/obsidian.json
Parse the JSON to get the list of registered vaults. Each vault has a path and open status.
2. Match the vault
- If the current working directory (or a parent) matches a registered vault path, use that vault.
- If working in
swarm-artifacts/, match the vault registered at/Users/raelisavitt/swarm-artifacts(or wherever it lives). - If no match is found, report: "No Obsidian vault registered for this directory. Open Obsidian and add it as a vault first."
Extract the vault directory name from the path (e.g. /Users/raelisavitt/swarm-artifacts → swarm-artifacts). This is the vault name Obsidian uses in URLs.
3. Build the URL
If a file path argument was provided:
- Resolve it relative to the vault root
- Strip
.mdextension if present - URL-encode the path (replace
/with%2F, spaces with%20) - Build:
obsidian://open?vault=<vault-name>&file=<encoded-path>
If no file path:
- Build:
obsidian://open?vault=<vault-name>
4. Open
open "<url>"
If the open command fails with "no application knows how to open", report: "Obsidian is not installed. Install from https://obsidian.md or brew install --cask obsidian."
5. Report
Opened in Obsidian:
Vault: <vault-name>
File: <file-path> (or "vault root")
Edge Cases
- If the user provides a full absolute path (e.g.
/Users/.../vault/claims/foo.md), convert it to a vault-relative path. - If the file doesn't exist, warn but still attempt to open (Obsidian will create a new note).
- If multiple vaults match, prefer the one marked
"open": true.
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.
- 9d ago First seen · 70 lines · 0 tokens per session scan A e7809bab55fd
obsidian is a command published in the GitHub repository swarm-ai-research/swarm (42 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 602 tokens. 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 commands, from other repositories
notify
Send a notification to your device.
briefing
Morning summary. Show the user where things stand so they can pick up where they left off. This is the "catch me up" command.
OPSX: Apply
Implement tasks from an OpenSpec change (Experimental).
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.