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/atomicbot-ai/atomic-agent/currencynpx skills add AtomicBot-ai/atomic-agent --skill currencygit clone --depth 1 https://github.com/AtomicBot-ai/atomic-agentWhat 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.00033 | $0.00851 |
| Opus 5 | $0.00016 | $0.00426 |
| Sonnet 5 | $0.00007 | $0.00170 |
| Haiku 4.5 | $0.00003 | $0.00085 |
Grade A, and why
currency scanned grade A with 1 finding 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
[{ "tool": "os.shell.run", "args": { "cmd": "curl", "args": ["-fsS", "--max-time", "25", "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR&amount=100"] } }] How it starts
The opening of the file, as written. The whole thing — 85 lines — stays where its author put it; the contents beside it link to each section on GitHub.
currency
Fetch exchange rates and convert money amounts through the free, key-less
Frankfurter API (ECB-sourced fiat rates, updated
daily ~16:00 CET). Prefer os.http.request GET; if the host allowlist is
not null, it must include api.frankfurter.dev.
Fiat only — no crypto, no precious metals on v1. Rates refresh on business days, so weekend/holiday requests return the most recent business-day rate.
Endpoints (v1, stable)
Base URL: https://api.frankfurter.dev/v1
| Goal | URL |
|---|---|
| Latest, EUR base, all currencies | /latest |
| Latest with base + targets | /latest?base=USD&symbols=EUR,GBP |
| Convert an amount | /latest?base=USD&symbols=EUR&amount=100 |
| Historical (single day) | /2024-01-15?base=USD&symbols=EUR |
| Time series (date range) | /2024-01-01..2024-01-31?base=USD&symbols=EUR |
| Supported currencies | /currencies |
symbols is a comma-separated list of ISO 4217 codes. amount multiplies the
returned rate, so amount=100&base=USD&symbols=EUR gives "100 USD in EUR".
Calling convention
Latest rate with os.http.request:
[{ "tool": "os.http.request", "args": { "method": "GET", "url": "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,GBP" } }]
Convert 250 USD to JPY:
[{ "tool": "os.http.request", "args": { "method": "GET", "url": "https://api.frankfurter.dev/v1/latest?base=USD&symbols=JPY&amount=250" } }]
Fallback if os.http.request is unavailable or the host is not allowlisted:
[{ "tool": "os.shell.run", "args": { "cmd": "curl", "args": ["-fsS", "--max-time", "25", "https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR&amount=100"] } }]
Response shape
{ "amount": 100.0, "base": "USD", "date": "2026-05-29", "rates": { "EUR": 92.13 } }
rates[<symbol>] already reflects amount. Always report the date so the user
knows how fresh the quote is.
When to use
- "What's the USD/EUR rate?", "convert 50 GBP to PLN", "rate of X in Y".
- Historical FX on a given date, or a rate trend over a period.
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 · 85 lines · 33 tokens per session scan A c3e6228139ca
currency is a skill published in the GitHub repository AtomicBot-ai/atomic-agent (2,438 stars, last pushed today), licensed MIT. It adds 33 tokens to every session and 851 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
x402
Set up Browser Use Cloud payments with x402 — pay per request from a crypto wallet (USDC on Base mainnet), no signup or API key. Two setups it works out up front — "just use it" (set up a wallet so you or Claude Code can run cloud browser tasks paid from the wallet — Claude writes and runs throwaway scripts, nothing…
agent-agentic-payments
Agent skill for agentic-payments - invoke with $agent-agentic-payments.
agent-payments
Agent skill for payments - invoke with $agent-payments.
credit-note-fixer
Fix the tiny credit-note formatting bug and rerun the exact targeted test command.
risk-scoring
Score how concentrated and risky a portfolio is on a 0-100 scale from its position weights. Use when the user asks how risky their portfolio is, whether it is too concentrated, or for a diversification check.
valuation
Estimate whether a stock looks cheap or expensive using a price-to-earnings (P/E) based fair-value method. Use when the user asks if a stock is over- or under-valued, or for a fair-value / target price.