A Claude Code skill for analysing personal finances via the Up Banking API.
Ask natural language questions about your money — "what am I spending the most on?", "how much am I saving?", "what are my regular expenses?" — and get answers backed by real transaction data.
A shell script (bin/up) wraps the Up API, handling authentication, pagination, rate limiting, and caching. A Claude Code skill (.claude/skills/finances.md) teaches Claude how to use the script and interpret the data. Claude composes the right queries and uses jq to aggregate results for whatever question you ask.
There are no hardcoded analyses. The skill gives Claude the building blocks (account data, transaction data with filters, category taxonomy) and lets it reason about any financial question. The skill also includes validation steps to reduce the risk of incorrect analysis.
- Get a personal access token from the Up app (or https://api.up.com.au)
- Copy
.env.exampleto.envand add your token - Verify it works:
bin/up ping - Ask Claude a question about your finances, or invoke the skill with
/finances
- Claude Code
jqfor JSON processingcurlfor API requests- An Up account with API access
- "What am I spending the most money on?"
- "How much do I spend on eating out each week?"
- "What are my regular recurring expenses?"
- "How much money am I saving each month?"
- "How should I budget?"
- "Show me all my transactions at Woolworths last month"
The script (bin/up) is user-agnostic. User-specific configuration (like transactions to exclude from analysis, how to treat certain income/expense categories) goes in PERSONAL.md, which Claude reads automatically (referenced from CLAUDE.md). This keeps the tool generic while allowing per-user customisation.
Ultimately, I want mainstream end-users to be able to use that, which would require improvements in the ecosystem:
- Secrets management.
- Ability to create skills in web/app UI. (Bonus points: "skill marketplace" or other way to distribute.)
- Ability to sandbox
bash/curl/jq. Given widespread utitly of "fetch and process JSON API" feels like smart minds should be working on this.