Borrowing it
Nothing to install: this file belongs to benoror/obsidianos_work. 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/benoror/obsidianos_work/main/.agents/skills/otter-fetch/SKILL.mdgit clone --depth 1 https://github.com/benoror/obsidianos_workWrote 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/benoror/obsidianos_work/otter-fetch)<a href="https://agentmods.dev/skills/benoror/obsidianos_work/otter-fetch"><img src="https://agentmods.dev/badge/skills/benoror/obsidianos_work/otter-fetch/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/benoror/obsidianos_work/otter-fetch"><img src="https://agentmods.dev/badge/skills/benoror/obsidianos_work/otter-fetch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00032 | $0.00743 |
| Opus 5 | $0.00016 | $0.00371 |
| Sonnet 5 | $0.00006 | $0.00149 |
| Haiku 4.5 | $0.00003 | $0.00074 |
Grade A, and why
otter-fetch 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 10d 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 — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Otter Fetch
Single place for obtaining Otter.ai transcript data. No direct slash command — other skills invoke this when they encounter an Otter.ai URL (e.g. in Notes: frontmatter).
Usage
This skill has no slash command. It's a sub-skill: /cache-notes and /fill-participants invoke its workflow (and run parse_otter.js) when a meeting's Notes: contains an https://otter.ai/u/... URL.
When to use
- cache-notes: When caching a meeting that has
https://otter.ai/u/{otid}inNotes:— need callout markdown to embed. - fill-participants: When resolving participants for a meeting that only has Otter links (no Google Doc) — need speaker names from the transcript.
How to get the data
Otter has no public API. Use user-pasted JSON:
- Extract
otidfrom the URL:https://otter.ai/u/aBcDeFgHiJkLmNoPqRsT→otid = aBcDeFgHiJkLmNoPqRsT. - Ask the user to copy the JSON response from
GET https://otter.ai/forward/api/v1/speech?otid={otid}(e.g. from DevTools → Network while signed in, or from a signed-in request). - User pastes the JSON; the agent (or script) parses it.
Outputs (same JSON, different consumers)
The pasted JSON has speech with:
| Use case | What to use | How |
|---|---|---|
| cache-notes | Callout markdown | Run parse_otter.js with JSON on stdin → stdout is ## 🤖 AI Notes / ### Otter block with [!otter_notes]-, [!otter_todos]-, [!otter_transcript]-. |
| fill-participants | Speaker names | From speech.speakers: array of { speaker_name }. Use those names with people-resolver to build Participants:. |
So one paste can serve both skills if needed (e.g. cache-notes runs the script; fill-participants reads speech.speakers from the same JSON or from the cached transcript callout).
Script: parse_otter.js
In this folder: parse_otter.js reads the full Otter speech JSON from stdin and writes callout markdown to stdout (for cache-notes).
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 10d ago First seen · 53 lines · 32 tokens per session scan A e0d6f23bee27
otter-fetch is a skill published in the GitHub repository benoror/obsidianos_work (165 stars, last pushed 3mo ago), licensed MIT. It adds 32 tokens to every session and 743 once invoked, about $0.0002 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
markdown
Documentation and content creation standards.
ledger-import-fixture-replay
Use when replaying Ledger import CSV fixtures to verify sourceRef preservation, cent normalization, and deterministic posting dates.
plannotator-compound
Analyze a user's Plannotator plan archive to extract denial patterns, feedback taxonomy, evolution over time, and actionable prompt improvements — then produce a polished HTML dashboard report. Falls back to Claude Code ExitPlanMode denial reasons when Plannotator data is unavailable.
plannotator
Reference for using the Plannotator CLI: plan review, code review, annotating files, URLs, folders, and running local apps, annotating the last assistant message, browsing archived plan decisions, and exporting or sharing Guided Reviews. Invoke when asked to use Plannotator for anything not covered by a more specific…
plannotator-annotate
Open Plannotator's annotation UI for a file, folder, or URL, then address the returned annotations.
ulw-execute
Executes a written Prometheus work plan with Boulder state, evidence ledger, worktree discipline, and parallel subagents. Use when the user says ulw-execute or asks to run a .omo/plans plan.