with one click
toshl
// Toshl Finance automation - sync data to local cache and generate monthly financial reports
// Toshl Finance automation - sync data to local cache and generate monthly financial reports
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | toshl |
| description | Toshl Finance automation - sync data to local cache and generate monthly financial reports |
| context | inherit |
| allowed-tools | ["Bash","Read","Write","Edit","Grep","Glob"] |
| model | sonnet |
| user-invocable | true |
Automate Toshl Finance data synchronization and monthly reporting with multi-entity financial strategy context (NS/DS/LW/VN + CCA extraction planning).
Data source: Toshl Finance API (via toshl MCP server)
Cache: Local CSV/JSON in toshl/data/ (git-tracked)
Reports: Markdown files in toshl/reports/
Sync Toshl data to local CSV cache with reconciliation vs. prior state.
Usage:
/toshl sync-data # Current month MTD
/toshl sync-data 2026-03 # Single month
/toshl sync-data 2026-01 2026-04 # Inclusive month range
Implementation: Runs scripts/monthly_sync.py which calls the Toshl API directly (not via MCP — avoids token-limit spills). Stdlib only, no venv needed.
# Current month MTD
python3 toshl/scripts/monthly_sync.py --current
# Specific month
python3 toshl/scripts/monthly_sync.py 2026-03
# Range
python3 toshl/scripts/monthly_sync.py 2026-01 2026-04
# With reconcile report
python3 toshl/scripts/monthly_sync.py --current --json-report /tmp/reconcile.json
Script behavior:
TOSHL_API_TOKEN from toshl/.env/entries (per_page=200) for each month's date rangedata/_{account,category,tag}_lookup.jsondata/{YYYY-MM}_entries.csv (denormalized, UTF-8, sorted date desc)CSV format (denormalized, human-readable):
date,description,amount,currency,category,account,tags,type
2026-02-05,Groceries,-45.50,EUR,Food & Dining,Cash,shopping,expense
2026-02-10,Freelance Income,2500.00,EUR,Consulting,Cash,revenue,income
When to use MCP vs. this script:
monthly_sync.py): for bulk backfill, monthly ritual, reconciliation. Always preferred for writing CSVs.mcp__toshl__*): for live querying during analysis ("what did I spend on X?"). Never use for bulk export — token-limit spills on months >40 entries.Generate markdown financial report for specified month. Auto-triggers sync-data first.
Usage:
/toshl monthly-report 2026-02
Workflow:
/toshl sync-data {YYYY-MM} first (cache refresh)data/{YYYY-MM}_entries.csvreports/{YYYY-MM}.mdStatus indicators:
Implementation:
reports/ directory existsEntity structure:
Targets:
CCA (compte courant d'associé): Currently ~€100K balance. Monthly reports track personal expenses to plan CCA extraction from entities.
Phase 2 (future):
See reference.md for account/category mappings and report template.