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 commands/peerjakobsen/smartspender/command-formatgit clone --depth 1 https://github.com/peerjakobsen/smartspenderWhat 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.00000 | $0.00780 |
| Opus 5 | $0.00000 | $0.00390 |
| Sonnet 5 | $0.00000 | $0.00156 |
| Haiku 4.5 | $0.00000 | $0.00078 |
Grade A, and why
command-format 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.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Command File Format
Context
All command files follow a consistent markdown structure so Claude can execute them reliably. This standard defines the required and optional sections.
Required Structure
# /smartspender:[command]
## Trigger
How the user invokes this command (slash command and natural language alternatives).
## Arguments
What arguments the command accepts and their valid values.
## Workflow
Step-by-step instructions for Claude to follow.
## Output
What the user sees when the command completes.
Section Guidelines
Title
- Format:
# /smartspender:[command] - Include the full namespaced command name
Trigger
- The primary slash command:
/smartspender:sync [bank] - Natural language alternatives: "sync my transactions", "download Nykredit data"
- List 2-3 natural language phrases users might say
Arguments
- Use a table for structured argument documentation:
| Argument | Required | Values | Default |
|----------|----------|--------|---------|
| bank | yes | nykredit, danske-bank, nordea, all | - |
| period | no | 1m, 3m, 6m, 1y | 3m |
Workflow
- Numbered steps that Claude follows in order
- Mark human-in-the-loop steps clearly: [USER ACTION]
- Reference specific bank adapters or skills by path: "Load
banks/nykredit/BANK.md" - Include error handling inline: "If no CSV downloads within 10 seconds, report timeout"
Output
- Show the exact format of the success message
- Include an example with realistic data
- List possible error messages
Optional Sections
Prerequisites
What must be true before this command can run (e.g., "Google Sheets MCP must be configured").
Side Effects
What changes this command makes (e.g., "Writes to Transactions sheet, logs to Action Log").
Related Commands
Other commands the user might want to run after this one.
Example Command File
# /smartspender:sync
## Trigger
- `/smartspender:sync [bank]`
- "sync my transactions"
- "download transactions from Nykredit"
## Arguments
| Argument | Required | Values | Default |
|----------|----------|--------|---------|
| bank | yes | nykredit, danske-bank, nordea, all | - |
## Prerequisites
- Google Sheets MCP configured
- Bank account added via /smartspender:add-account
## Workflow
1. Identify target bank from argument
2. Load bank adapter: `banks/{bank}/BANK.md`
3. Open bank netbank URL in browser
4. Announce: "Please log in with MitID. Let me know when you're logged in."
5. **[USER ACTION]**: User completes MitID login
6. **[USER ACTION]**: User confirms login complete
7. Navigate to export page (per bank adapter)
8. Execute export automation (per bank adapter)
9. Wait for CSV download
10. Parse CSV using `banks/{bank}/export-format.md`
11. Normalize to common transaction schema (per `skills/transaction-schema.md`)
12. Connect to Google Sheets via MCP
13. Deduplicate against existing data by tx_hash
14. Append new transactions to "Transactions" sheet
15. Log sync event to "Action Log" sheet
## Output
"Synced {count} new transactions from {bank} ({date_range})"
Example: "Synced 47 new transactions from Nykredit (Jan 15 - Feb 1)"
## Side Effects
- Writes to "Transactions" sheet
- Writes to "Action Log" sheet
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 · 114 lines · 0 tokens per session scan A 76ef28f4b6dd
command-format is a command published in the GitHub repository peerjakobsen/smartspender (5 stars, last pushed 6mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 780 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-08-31.
Other commands, from other repositories
battlecard
Create a sales-ready competitive battlecard — positioning, feature comparison, objection handling, and win strategies.
better-auth:add-plugin
Add a better-auth plugin to an existing project. Configures server and client plugins with proper imports.
numbers-to-excel
Convert a Numbers document to Excel.
prompt
System instructions for writing effective prompts. Apply when generating commands, skills, agents, or any LLM instructions.
add-skill
Add a new Skill to the current plugin with proper structure.
hello
Greet the user with a friendly, personalized message.