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 furkangonel/cowrangler --skill obsidiangit clone --depth 1 https://github.com/furkangonel/cowranglerWrote 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/furkangonel/cowrangler/obsidian)<a href="https://agentmods.dev/skills/furkangonel/cowrangler/obsidian"><img src="https://agentmods.dev/badge/skills/furkangonel/cowrangler/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/skills/furkangonel/cowrangler/obsidian"><img src="https://agentmods.dev/badge/skills/furkangonel/cowrangler/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.00024 | $0.01627 |
| Opus 5.5 | $0.00010 | $0.00651 |
| Sonnet 5.5 | $0.00005 | $0.00325 |
| Haiku 4.5 | $0.00002 | $0.00163 |
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 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.
How it starts
The opening of the file, as written. The whole thing — 272 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Obsidian Vault Management
Goal
Create, update, and organize notes in an Obsidian vault programmatically. Query notes with Dataview syntax. Maintain a consistent vault structure.
Vault Structure
vault/
├── Daily Notes/ # YYYY-MM-DD.md
├── Projects/ # One folder per project
├── Areas/ # Ongoing responsibilities
├── Resources/ # Reference material
├── Archive/ # Inactive notes
└── _templates/ # Note templates
Use PARA method (Projects / Areas / Resources / Archive) as the default organization.
Frontmatter Conventions
Every note should have frontmatter:
---
title: Note Title
date: 2024-01-15
tags: [topic, subtopic]
aliases: [alternative-name]
status: draft | active | archived
related: [[Other Note]], [[Another Note]]
---
date: ISO 8601 (YYYY-MM-DD)tags: lowercase, hyphenatedaliases: alternate names for search/linkingstatus: lifecycle staterelated: explicit links (supplement to inline wikilinks)
Creating Notes Programmatically
Basic note creation
from pathlib import Path
from datetime import datetime
def create_note(vault_path: str, folder: str, title: str, content: str, tags: list[str] = []) -> Path:
vault = Path(vault_path)
target_dir = vault / folder
target_dir.mkdir(parents=True, exist_ok=True)
# Sanitize title for filename
filename = title.replace("/", "-").replace(":", "-") + ".md"
note_path = target_dir / filename
frontmatter = f"""---
title: {title}
date: {datetime.now().strftime("%Y-%m-%d")}
tags: {tags}
---
"""
note_path.write_text(frontmatter + content, encoding="utf-8")
return note_path
Daily note
def create_daily_note(vault_path: str, template: str = "") -> Path:
today = datetime.now().strftime("%Y-%m-%d")
content = template or f"""# {today}
## Tasks
- [ ]
## Notes
## Links
"""
return create_note(vault_path, "Daily Notes", today, content)
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 · 272 lines · 24 tokens per session scan A ee01f9ed7f0e
obsidian is a skill published in the GitHub repository furkangonel/cowrangler (1 stars, last pushed 1mo ago), licensed MIT. It adds 24 tokens to every session and 1,627 once invoked, about $0.0001 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-31.
Other skills, from other repositories
scratch
Organize knowledge from an agent session into a scratchpad — a folder of files plus a scratchpad.json manifest. Use when a task generates notes, snippets, command output, diagrams, or artifacts worth keeping together for a session/activity.
obsidian
Obsidian vault operations - create notes, search vault, manage tags, link notes, and sync with Obsidian markdown files.
markdown-documents
Write or edit Markdown notes, reports and plain text; default for non-Office writing.
query
Answer questions about the wiki by searching, reading, and synthesizing relevant scraps with [[Title]] citations. Use this when the user wants to query the wiki, ask what they have written about a topic, compare scraps, find related notes, or pull a synthesized overview from existing scraps.
planning-with-scratchpad
Use when user explicitly requests planning with a scratchpad, or asks for persistent tracking of a complex task that the human can browse visually. Backs planning files with the scratch CLI so a pad's files are registered and viewable.
priority-dashboard
Use this to rebuild, inspect, or temporarily steer {{username}}'s current PersonalOS priority dashboard from canonical Actions, Attention Triggers, and owner context. Do NOT use it to create, complete, or independently manage tasks; use task-manager for Action and Trigger lifecycle changes.