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/bangs00/claude-media-control/menunpx skills add Bangs00/claude-media-control --skill menugit clone --depth 1 https://github.com/Bangs00/claude-media-controlWrote 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/bangs00/claude-media-control/menu)<a href="https://agentmods.dev/skills/bangs00/claude-media-control/menu"><img src="https://agentmods.dev/badge/skills/bangs00/claude-media-control/menu.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 | $0.00045 | $0.00650 |
| Opus 5 | $0.00023 | $0.00325 |
| Sonnet 5 | $0.00009 | $0.00130 |
| Haiku 4.5 | $0.00005 | $0.00065 |
Grade A, and why
menu 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 4d 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.
What it actually says
Current state (JSON):
!"${CLAUDE_PLUGIN_ROOT}/scripts/media.sh" now
You are an interactive media remote. Follow this loop strictly:
- Show the current state in one compact markdown line (not a code block, so the styling renders):
▶︎|⏸ **<title>** — *<artist>* · <appName> · **m:ss** / m:ss(title bold, artist italic, elapsed time bold. The elapsedm:ssiselapsedTimeNow— never the staleelapsedTimesnapshot — and the total isduration, orLIVEwhen absent. If the JSON isnull, say nothing is playing — the menu can still send Play.) - Call AskUserQuestion with exactly ONE question ("What next?", header "Remote") and exactly these 4 options:
⏯ Toggle— play/pause the current media⏭ Next— skip to the next track⏮ Previous— go back a trackMore…— seek to a position, or finish
- Act on the selection using Bash (always
"${CLAUDE_PLUGIN_ROOT}/scripts/media.sh" <cmd>):⏯ Toggle→toggle·⏭ Next→next·⏮ Previous→prevMore…→ ask a second AskUserQuestion with exactly these 4 options:Seek— then ask where to (or take a free-text answer like "1:30"), convert to seconds, runseek <seconds>Volume— then ask the level (or take free text like "70" / "louder"), runvolume <0-100>(relative: read current, ±10)Artwork— runartwork, then display the image with the Read tool on the returnedpathDone— end the remote session
- Free text via the built-in "Other" field (e.g. "seek 90", "volume 30", "pause", "done") → interpret it as the matching media command and run it; "done"/"stop" ends the session.
- After each command, report the resulting state in ONE line in the same styled format as step 1 (from the JSON the command printed), then re-present the menu (step 2).
- End when the user picks
Done, types a stop word, or declines to answer. Close with the final playback state in one line.
Never dump raw JSON to the user. If a command reports "degraded": true, mention /media:doctor once, not on every loop turn.
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.
- 4d ago First seen · 33 lines · 45 tokens per session scan A 4e38fe87cfbe
menu is a skill published in the GitHub repository Bangs00/claude-media-control (4 stars, last pushed 1mo ago), licensed MIT. It adds 45 tokens to every session and 650 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-31.
Other skills, from other repositories
economist-style
Apply The Economist style guide to written content. Use when editing markdown, HTML, documentation, or any written text that needs professional editing for clarity, precision, and brevity. Detects weasel words, fillers, passive voice, and style issues.
quiz-me
Quiz the user on root cause and intended fix BEFORE writing any non-trivial code, then verify comprehension of every change after. Use when the user asks for a bug fix, refactor, or feature and wants to stay technically sharp instead of vibe-coding. Also use when the user says "quiz me", "don't let me vibe code", or…
configure
Set up the telegram-topics channel — save the bot token and forum group id, then run a preflight check. Use when the user pastes a Telegram bot token, asks to configure telegram-topics, asks "how do I set this up", or wants to check channel status.
allowlist
Put this plugin on the Claude Code channels allowlist (managed settings) so --channels delivers inbound messages — one command, one admin prompt. Use when preflight reports NOT ALLOWLISTED, when Telegram messages never arrive in sessions although the send tools work, or when the user asks to set up the channels…
access
Manage who may drive telegram-topics sessions — view and edit the user allowlist. Use when the user asks to allow or remove a Telegram user, check who's allowed, or lock the channel down.
spotify
Control Spotify on macOS. Use for playing music, controlling playback, and getting track information.