Atomic Agent is a local-first AI agent that runs its control loop and state on a user's machine while using local or cloud models. It drives browsers, edits files, runs approved commands, remembers context, schedules follow-ups, and connects to external tools, with the catalogue providing skills for its use.
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 AtomicBot-ai/atomic-agent --skill ffmpeggit clone --depth 1 https://github.com/AtomicBot-ai/atomic-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/atomicbot-ai/atomic-agent/ffmpeg)<a href="https://agentmods.dev/skills/atomicbot-ai/atomic-agent/ffmpeg"><img src="https://agentmods.dev/badge/skills/atomicbot-ai/atomic-agent/ffmpeg/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/atomicbot-ai/atomic-agent/ffmpeg"><img src="https://agentmods.dev/badge/skills/atomicbot-ai/atomic-agent/ffmpeg.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.00047 | $0.00924 |
| Opus 5.5 | $0.00019 | $0.00370 |
| Sonnet 5.5 | $0.00009 | $0.00185 |
| Haiku 4.5 | $0.00005 | $0.00092 |
Grade A, and why
ffmpeg 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 1mo 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 — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ffmpeg
Transform audio and video files with ffmpeg and inspect
them with ffprobe. Operations are non-destructive: always write to a new
output file. Re-encoding can be slow on long media — set realistic expectations.
Setup health check (run first, every session)
Verify with one solo step:
[{ "tool": "os.shell.run", "args": { "cmd": "ffmpeg", "args": ["-version"] } }]
Outcome map:
exit 0+ version → ready, proceed.command not found: ffmpeg→ enter Setup playbook → "ffmpeg missing".
Setup playbook (when prerequisites are missing)
ffmpeg missing
Reply (solo reply step):
"
ffmpegis not installed. I can install it:brew install ffmpeg. Install it?"
On yes:
[{ "tool": "os.shell.run", "args": { "cmd": "brew", "args": ["install", "ffmpeg"] } }]
On Linux: apt-get install ffmpeg.
When to use
- "Convert this video/audio to ", "extract the audio from this mp4".
- "Trim from 0:30 to 1:00", "resize to 720p", "make a GIF from this clip".
- "What codec / duration / resolution is this file?" (use
ffprobe).
When NOT to use
- Downloading media from URLs — that's
yt-dlpterritory (separate skill). - Still-image editing — use the
imagemagickskill. - Lossless container-only edits where a remux suffices — still fine here, just
use
-c copyto avoid re-encoding.
Common operations
All examples invoke os.shell.run. Inspect first with ffprobe; the approval
gate surfaces each write. Use -c copy to remux without re-encoding when only
the container changes.
| Goal | cmd / args |
|---|---|
| Inspect media | ffprobe ["-hide_banner", "in.mp4"] |
| Convert MOV → MP4 | ffmpeg ["-i", "in.mov", "-c:v", "libx264", "-c:a", "aac", "out.mp4"] |
| Extract audio (MP3) | ffmpeg ["-i", "in.mp4", "-vn", "-q:a", "2", "out.mp3"] |
| Trim (start 30s, 30s long) | ffmpeg ["-ss", "00:00:30", "-i", "in.mp4", "-t", "30", "-c", "copy", "clip.mp4"] |
| Resize to 720p | ffmpeg ["-i", "in.mp4", "-vf", "scale=-2:720", "out_720p.mp4"] |
| Video → GIF | ffmpeg ["-i", "in.mp4", "-vf", "fps=12,scale=480:-1", "out.gif"] |
| Extract one frame | ffmpeg ["-ss", "00:00:05", "-i", "in.mp4", "-frames:v", "1", "frame.png"] |
| Remux only (fast) | ffmpeg ["-i", "in.mkv", "-c", "copy", "out.mp4"] |
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.
- 1mo ago First seen · 81 lines · 47 tokens per session scan A 6d86ab7e2433
ffmpeg is a skill published in the GitHub repository AtomicBot-ai/atomic-agent (3,387 stars, last pushed yesterday), licensed MIT. It adds 47 tokens to every session and 924 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-08-30.
Other skills, from other repositories
harness-init-runner
Initialize a lightweight repo-local Node.js harness (harness/ + .harness/) WITHOUT AIOS dependency. Use ONLY when you need a standalone, portable harness. If AIOS is installed, use aios-long-running-harness instead — it has rex Command hosting, ContextDB integration, and checkpoint recovery.
release-llama-launcher
Cuts a llama-launcher release: checks the release gate with go run ./cmd/release status, drafts the notes with release-notes-llama-launcher, proposes the version and has the owner confirm it, makes the two local release commits with prepare, then — after a dry run and one explicit confirmation — runs publish, which…
manage-llm-server
Inspect and control the local LLM server(s) via llama-launcher — list profiles, see what's running, switch models, tail logs. Use when the user wants to know what model is loaded, change models, start/stop or restart the server, or troubleshoot a stuck load.
release-notes-llama-launcher
Builds an evidence-backed inventory of every change since llama-launcher's last published GitHub release — three blind scouts (changelog, commits, user surfaces), a merge, verification of only the contested rows — and renders plain-language release notes from it, trace-checked both ways. Read-only: it describes and…
browse
Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch/search, diagnostics, and Browse.sh skill discovery/installation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase…
opencli-usage
Discover and invoke OpenCLI capabilities for websites and Chrome. Find commands, inspect schemas, interpret results and choose browser or adapter tools.