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.
git clone --depth 1 https://github.com/peerjakobsen/smartspenderWrote 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/commands/peerjakobsen/smartspender/sync)<a href="https://agentmods.dev/commands/peerjakobsen/smartspender/sync"><img src="https://agentmods.dev/badge/commands/peerjakobsen/smartspender/sync/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/commands/peerjakobsen/smartspender/sync"><img src="https://agentmods.dev/badge/commands/peerjakobsen/smartspender/sync.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.00010 | $0.02610 |
| Opus 5.5 | $0.00004 | $0.01044 |
| Sonnet 5.5 | $0.00002 | $0.00522 |
| Haiku 4.5 | $0.00001 | $0.00261 |
Grade A, and why
sync 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 — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/smartspender:sync
Trigger
/smartspender:sync/smartspender:sync all- "Synkroniser mine transaktioner"
- "Hent transaktioner"
- "Sync my transactions"
Arguments
| Argument | Required | Values | Default |
|---|---|---|---|
| target | no | all | all |
If all (or no argument), syncs all active accounts in accounts.csv.
Prerequisites
- Bank account added via
/smartspender:add-account - Enable Banking configured and session active
Vigtigt: Enable Banking API-kald koerer lokalt via
eb-api.py— Cowork kan ikke koere dem direkte. Denne kommando genererer alle terminalkommandoer paa een gang (inkl. en combine+clipboard kommando). Brugeren koerer dem i terminalen og indsaetter resultatet med Cmd+V.
File Naming Convention
All temporary JSON files are written to ~/Documents/SmartSpender/.
| Data | File Name |
|---|---|
| Status | eb-status.json |
| Transactions | eb-transactions-{slug}.json |
| Balances | eb-balances-{slug}.json |
Slug computation: Take account_name from accounts.csv, lowercase it, replace spaces with hyphens.
Slug collision: If two accounts produce the same slug, append -1, -2 etc. to subsequent accounts.
Workflow
Step 1: Read accounts and compute commands
- Read accounts.csv to get all active accounts
- If no active accounts found: "Ingen konti konfigureret. Koer /smartspender:add-account foerst."
- For each active account:
- Compute the filename slug from
account_name(lowercase, spaces to hyphens) - Check for slug collisions across accounts; append numeric suffix if needed
- Determine
last_synceddate from accounts.csv; if empty, default to 90 days ago
- Compute the filename slug from
Step 2: Present batch commands
Build a single code block with all commands. Always start with mkdir -p to ensure the directory exists, then status, then transactions per account, then balances per account. End with the combine+clipboard command that merges all JSON files and copies to clipboard.
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 · 208 lines · 10 tokens per session scan A afe8e8272b48
sync is a command published in the GitHub repository peerjakobsen/smartspender (5 stars, last pushed 8mo ago), licensed MIT. It adds 10 tokens to every session and 2,610 once invoked, about $0.0000 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-31.
Other commands, from other repositories
research
Professional equity research analysis with institutional-grade formatting.
better-auth:add-plugin
Add a better-auth plugin to an existing project. Configures server and client plugins with proper imports.
better-auth:setup
Interactive setup wizard for better-auth authentication. Guides through database, framework, OAuth providers, and plugin configuration.
cloudflare-r2:presigned-url
Generate presigned URLs for secure client-side uploads or downloads.
bun:migrate
Migrate existing Node.js/npm projects to Bun.
cloudflare-turnstile:setup
Interactive wizard for setting up Cloudflare Turnstile. Generates templates, configuration, and provides step-by-step guidance based on framework and environment.