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 tuan3w/obsidian-vault-agent --skill lecturegit clone --depth 1 https://github.com/tuan3w/obsidian-vault-agentWrote 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/tuan3w/obsidian-vault-agent/lecture)<a href="https://agentmods.dev/skills/tuan3w/obsidian-vault-agent/lecture"><img src="https://agentmods.dev/badge/skills/tuan3w/obsidian-vault-agent/lecture/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/tuan3w/obsidian-vault-agent/lecture"><img src="https://agentmods.dev/badge/skills/tuan3w/obsidian-vault-agent/lecture.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.00107 | $0.02182 |
| Opus 5 | $0.00053 | $0.01091 |
| Sonnet 5 | $0.00021 | $0.00436 |
| Haiku 4.5 | $0.00011 | $0.00218 |
Grade A, and why
lecture 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 — 246 lines — stays where its author put it; the contents beside it link to each section on GitHub.
<Use_When>
- User provides a local video file and wants lecture notes
- User says "take notes from this lecture/video"
- User uses /lecture with a file path
- User has an MP4/MOV/MKV file to process </Use_When>
<Do_Not_Use_When>
- User has a YouTube URL (use /youtube instead)
- User wants to process an existing vault note (use /process)
- User wants audio-only transcription without note synthesis </Do_Not_Use_When>
<Execution_Policy>
- Extract first, synthesize second, integrate third
- Always check vault for existing notes on the same topic before creating
- Create note as type: lecture with processing_status: inbox
- The note is a starting point — user can /process it later for deeper engagement
- Transcription can take several minutes for long videos — inform the user </Execution_Policy>
Stage 1: EXTRACT
Parse the video file path from $ARGUMENTS. If no path provided, ask the user. Verify the file exists and is a video format (mp4, mov, mkv, avi, webm).
Run the extraction script:
SKILL_DIR="${CLAUDE_SKILL_DIR}"
LECTURE_OUTPUT="temp/lecture-extract-output.json"
uv run "$SKILL_DIR/scripts/extract_lecture.py" "VIDEO_PATH" > "$LECTURE_OUTPUT" 2>&1 &
IMPORTANT: This script takes time (several minutes for a 30-60 min video). Inform the user: "Extracting audio and transcribing — this will take a few minutes for a [duration] video."
Run it and wait for completion. Then read the output JSON.
The JSON contains:
filename,duration,duration_seconds,width,heighttranscript.full_text,transcript.segments(with start/end times),transcript.languagetranscript.error(null if success)frames[]— array of{path, timestamp_seconds, timestamp}for each extracted slideoutput_dir— temp directory with extracted frames
If transcript.error is not null: inform the user and stop. Check if mlx-whisper is installed.
If transcript is very long (>80,000 chars): warn the user. Send first 60,000 chars to the agent with a note about total length.
What ships with it
2 files 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 · 246 lines · 107 tokens per session scan E 52e9c3eb8074
lecture is a skill published in the GitHub repository tuan3w/obsidian-vault-agent (39 stars, last pushed 5mo ago), licensed MIT. It adds 107 tokens to every session and 2,182 once invoked, about $0.0005 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
pdf-processing
Extract text from PDFs, fill forms, and merge documents.
documentation-writer
Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework. Templates for tutorial / how-to / reference / explanation live under templates/.
lecture-to-notes
A workflow that turns lecture or conference recordings into organised notes using local transcription and slide extraction. It accepts video and audio files, including MOV, MP4, M4A, MP3, and WAV.
textbook-to-md
Convert PDF/EPUB textbooks to searchable markdown files for an AI agent's own reference. Use this skill whenever: (1) the user asks to convert a textbook/PDF chapter to markdown, (2) you need to search textbook content and no markdown version exists yet, (3) batch-converting a set of reference books into a knowledge…
setup-vault-types
Use when configuring which document types a vault tracks: after installing ai-brain-starter, when a new kind of note appears (journals, books, meetings, clients, podcasts, travel, WhatsApp/Slack/iMessage exports), when extraction skips files because no extractor matches their type, or to add, list, or remove a custom…
ingest-health
Use when the user says /ingest-health, asks to import, sync, ingest, or load Apple Health / Apple Watch / HealthKit data, has a fresh export.zip from the iPhone Health app, a Simple Health Export CSV folder, or a Health Auto Export TCP live feed, or when health-mcp queries return empty because no data was ever…