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 thewolffish/wolffish-app --skill optionsgit clone --depth 1 https://github.com/thewolffish/wolffish-appWrote 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/thewolffish/wolffish-app/options)<a href="https://agentmods.dev/skills/thewolffish/wolffish-app/options"><img src="https://agentmods.dev/badge/skills/thewolffish/wolffish-app/options/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/thewolffish/wolffish-app/options"><img src="https://agentmods.dev/badge/skills/thewolffish/wolffish-app/options.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.00055 | $0.01795 |
| Opus 5.5 | $0.00022 | $0.00718 |
| Sonnet 5.5 | $0.00011 | $0.00359 |
| Haiku 4.5 | $0.00006 | $0.00179 |
Grade A, and why
options 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 29d 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 — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Offer options
offer_options is how you hand the user several versions of the same thing
without turning your reply into a wall of stacked code blocks. It draws one
card in the chat: a horizontally scrolling row of lettered tabs (A, B, C …)
across the top, each labelled with that option's short title, and the selected
option's body underneath with a copy button.
It is presentation only. It does not pause your turn, the user never answers it, and nothing comes back but a confirmation that the card was drawn. Keep writing your reply after the call.
When to use it
Whenever the honest answer is "here are a few ways to do this" and each way is something the user would copy:
- Alternative implementations of the same function, query or config.
- The same command for macOS / Linux / Windows, or for npm / pnpm / yarn.
- Several drafts of a message, commit message, README section or docstring.
- The same data in a few shapes (JSON, YAML, TOML), or a schema in a few dialects.
- Before-and-after pairs the user may want to paste either half of.
Don't wait until you were already going to paste two versions. The common case is quieter than that: you're about to produce ONE thing the user will copy, and a second version is defensibly different — a shorter draft, a warmer one, the other platform's command, the simple version next to the complete one. Show both in the card. Two habits this replaces, both worse:
- Silently picking one and never telling them the other existed.
- Writing one, then asking "want a shorter version too?" — that costs the user a whole round trip to get something you could have handed them now. Show the options; don't offer to produce them.
Lean toward the card on that kind of work. It earns its place often — just not every turn.
When NOT to use it
- One honest answer — an explanation, a lookup, arithmetic, a single obvious implementation. Put it in your reply as a normal code block; a card with one tab is worse than no card, and inventing a second option to fill it is padding.
- Variants that differ only cosmetically. If you can't say in one clause why someone would pick B over A, B isn't an option.
- You need the user to pick so you can act on the choice — that's
ask_user, which pauses and returns the answer.offer_optionsreturns nothing; the user copies what they want and moves on. - Long prose, an explanation, or a file you're delivering — reply normally, or
send_fileit.
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.
- 29d ago First seen · 149 lines · 55 tokens per session scan A 5ff1d0b87d30
options is a skill published in the GitHub repository thewolffish/wolffish-app (5 stars, last pushed 17d ago), licensed MIT. It adds 55 tokens to every session and 1,795 once invoked, about $0.0002 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-09-17.
Other skills, from other repositories
warpctrl
Control and inspect the currently running local Warp application with the warpctrl CLI. Use this skill whenever the user asks the agent to manipulate Warp's own windows, tabs, panes, sessions, input buffer, themes, or UI surfaces; open a file in Warp; inspect local Warp state; or explain how to invoke Warp Control…
change-keybinding
Customize Warp keyboard shortcuts (keybindings, keymappings) by editing the user's keybindings.yaml file. Use when the user asks to remap a key combination, rebind an action, change a shortcut, or remove a default keybinding (e.g. "change ctrl+space to ctrl+s", "rebind the command palette to cmd+p", "remove the…
create-tab-config
Create new Warp tab config TOML files from natural-language requests. Use when the user wants a new tab config, a new tab layout, or asks for a slash command to generate a tab config.
connect-apps
Use when the owner asks about their calendar, email, meetings, Linear, Notion, Slack, Google Drive, GitHub or any other third-party app or the data in it ('what's on my calendar', 'any email from Sam', 'my Linear issues', 'find the Drive doc'), asks to connect one, asks to switch or change their account, reconnect or…
meeting-scheduler
Schedule a small meeting end-to-end: resolve attendee emails, check the owner's calendar for the slot, dedup-check, then create + email the Google Calendar invite. The mechanical core only — cross-person availability negotiation stays interactive.
morning-briefing
Generate a daily morning briefing: email, calendar, Discord, and news — delivered via voice or Discord DM.