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 niki914/zafiro --skill zafiro-configgit clone --depth 1 https://github.com/niki914/zafiroWrote 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/niki914/zafiro/zafiro-config)<a href="https://agentmods.dev/skills/niki914/zafiro/zafiro-config"><img src="https://agentmods.dev/badge/skills/niki914/zafiro/zafiro-config/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/niki914/zafiro/zafiro-config"><img src="https://agentmods.dev/badge/skills/niki914/zafiro/zafiro-config.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.00000 | $0.01671 |
| Opus 5.5 | $0.00000 | $0.00668 |
| Sonnet 5.5 | $0.00000 | $0.00334 |
| Haiku 4.5 | $0.00000 | $0.00167 |
Grade A, and why
zafiro-config 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 3d 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 — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Zafiro config
Zafiro keeps its settings as plain JSON files in its own sandbox. There is no config
tool and no API: you read and write those files directly with execute_python or
shell. This skill gives you the file map, the shape of each file, the rules that
keep you from damaging user data, and how long a change takes to take effect.
Where the settings live
/data/user/0/<package>/files/settings/
You do not need to know <package> in advance. Look around the Zafiro sandbox you are
already running inside, find the directory that contains settings/, and work from
there. Read the directory listing before each write so you always operate on the file
that actually exists, rather than one you assumed.
If a file below does not exist yet, Zafiro falls back to a built-in default. Writing the file for the first time is normal and correct.
The files
| File | Holds | Shape |
|---|---|---|
app_state.json |
app preferences: theme, language, floating ball, notifications, markdown scale, draft text, pinned conversations | flat object, one key per setting |
tools/builtin_tools.json |
which built-in tools are on | {"version":2,"enabled":{"<tool_name>":true}} |
tools/custom_py_tools.json |
custom Python tools | {"tools":[{name,code,description,schema_json,enabled,timeout_ms}]} |
tools/mcp/servers.json |
MCP servers | {"servers":[{name,url,enabled,headers}]} |
tools/mcp/service.json |
Zafiro exposing its own tools over MCP to a PC | flat object: enabled, port, host, bearerToken, exposedTools, keepScreenOn |
tools/text_actions.json |
text-selection actions | {"actions":[{name,prompt,enabled,requires_screenshot,run_in_background}]} |
rules/execution_rules.json |
command safety rules | {"rules":[{id,name,enabled_mode,patterns}]} |
rules/takeover_rules.json |
voice-assistant takeover rules | {"rules":[{id,name,enabled,target,patterns}],"default_target":{...}} |
agents/registry.json |
agent profiles | {"agents":[{id,name,alias,enabled,order,memory_mode,created_at,updated_at}]} |
agents/<id>/memory.json |
one agent's saved memories | {"memories":[{id,content,created_at,updated_at}]} |
llm/saved_configs.json |
saved model configs and the active one | {"active_id":"...","prompt":"...","configs":[{id,name,provider,endpoint,api_key,model,protocol,supports_images,proxy,thinking_level,max_tokens,context_window_tokens,created_at,updated_at}]} |
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.
- 3d ago First seen · 107 lines · 0 tokens per session scan A 81719f13be64
zafiro-config is a skill published in the GitHub repository niki914/zafiro (263 stars, last pushed 2d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,671 tokens. 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-10-14.
Other skills, from other repositories
mac-cleanup
Clean and reclaim disk space on a Mac using native CLI tools and a dry-run-first script. Use whenever the user mentions Mac disk space, System Data bloat, purgeable space, Finder vs df mismatch, Time Machine local snapshots, Xcode DerivedData or simulators, Docker images, Homebrew/npm/pip/pnpm/yarn/go caches, leftover…
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output. Use when: (1) monitoring Claude/Codex sessions running in tmux, (2) sending input to interactive terminal applications, (3) scraping output from long-running processes inside tmux, (4) navigating tmux panes/windows…
agent-initialization
Initialize or extend an Agent from a user requirement - write AGENTS.md, set identity metadata, and create, install or import Skills and hook packages (scripts the harness runs on every prompt, before tool calls, or after a task). For an Agent with an in-app workbench, pair with penguin-plugin; for a standalone…
automation
Create and manage scheduled and price-triggered automations.
co-mail-and-drive
Read and send mail from the user's own Gmail or Outlook account, safely stage Gmail draft attachments, send from the agent's own address, manage Outlook contacts and the Outlook calendar, and work with Google Drive files — with co gmail, co outlook, co email, and co gdrive. Use when the user asks about their inbox, an…
computer-history
Answer questions about what the user recently did on their computer — who contacted them, what they were working on, where they left off — by reading the local Computer History summaries and raw event streams.