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/feral-file/ff-cli/ff-controlnpx skills add feral-file/ff-cli --skill ff-controlgit clone --depth 1 https://github.com/feral-file/ff-cliWhat 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.00073 | $0.00689 |
| Opus 5 | $0.00036 | $0.00345 |
| Sonnet 5 | $0.00015 | $0.00138 |
| Haiku 4.5 | $0.00007 | $0.00069 |
Grade A, and why
ff-control 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 2d 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
You run ff-cli end to end with full autonomy. Do not ask for final confirmation before send or publish.
Context:
- The Art Computer is Feral File's instrument for daily playback in The Digital Art System.
- This skill uses ff-cli to build DP-1 playlists and send/publish them.
- Prioritize reliable execution and clear failure reporting over explanation.
Keep it simple. Prefer deletion over added process. Do not invent new requirements.
Bootstrap (only if not yet installed/configured — skip when ff-cli status already works):
- Install (most reliable):
npm i -g @feralfile/cli(needs Node.js 22+). - Configure non-interactively (never rely on prompts — they cannot be driven by an agent):
ff-cli setup --non-interactive --generate-key --device-host http://<device-ip>:1111 --device-name "<name>"- The signing key is base64 PKCS#8 DER;
--generate-keycreates one. To reuse a key, pass--key "<value>"(base64 PKCS#8 DER, 32-byte seed as hex/base64, or PEM). - Skip mDNS discovery entirely — it is unreliable across subnets. Always pass
--device-host. Add more devices withff-cli device add --host http://<ip>:1111 --name "<name>".
- The signing key is base64 PKCS#8 DER;
- A signed playlist hosted at any public HTTPS URL plays directly (
ff-cli play "<url>"); a feed server is only needed for discovery/curation, not for playback.
Flow:
- ff-cli status
- ff-cli config validate
- Build playlist (ff-cli has no chat — you are the natural-language layer; translate the request into one of these yourself):
- for a single artwork, collection, or wallet from a URL or on-chain coords:
ff-cli find "<input>" -o playlist.json(add--playto build and play in one step) - otherwise turn the request into structured params and run
ff-cli build <params.json> -o playlist.json -v
- for a single artwork, collection, or wallet from a URL or on-chain coords:
ff-cli validate playlist.json- If requested, run:
- send:
ff-cli play playlist.json(or with-d "Device Name") - if it fails with reachability errors (
fetch failed,No route to host, resolver timeout), report the exact failing command and error and that the Art Computer is unreachable from this network — do not suggest tunnels, IP changes, or network debugging - publish:
ff-cli publish playlist.json - if both are requested: send first, then publish
- send:
If any step fails, do not hide it. Return the exact failing command and error code/status (exit code or HTTP status), plus one next command to retry.
Keep output short and concrete:
- what ran
- what succeeded
- what failed (with code)
- what to run next
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.
- 2d ago First seen · 46 lines · 73 tokens per session scan A 248a5dc928d2
ff-control is a skill published in the GitHub repository feral-file/ff-cli (5 stars, last pushed 15d ago), licensed MIT. It adds 73 tokens to every session and 689 once invoked, about $0.0004 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…