A local single-page web UI for running and monitoring the expense
agent. It lives in dashboard/ and runs entirely on your machine.
npm run dashboard
or double-click start-dashboard.bat (opens the browser for you). Then go to http://localhost:4820.
Tip: to have the dashboard (and its schedule) start automatically at logon, press Win+R, type
shell:startup, and put a shortcut tostart-dashboard.batthere.
| Feature | How |
|---|---|
| Process inbox now | Spawns a headless Claude Code run (claude -p) of the expense-agent skill: extracts, validates, appends to ledger.csv, regenerates summary.xlsx, then runs node sync-ledger.js to mirror the ledger to Google Sheets. |
| Schedule | Enable automatic runs every N minutes/hours, daily at a time, or weekly on chosen days. Powered by node-cron inside the dashboard server, so the dashboard must be running for scheduled runs to fire. The schedule is saved in dashboard/config.json. |
| Needs review | Shows every file in review/ with the extracted figures and the reason it was flagged (from review/pending.json, maintained by the skill). Pick Y (log it) or N (drop it) per row and click Apply decisions — a headless agent run applies them, regenerates summary.xlsx, and re-syncs the sheet. |
| Show summary | Live category totals per currency, computed directly from ledger.csv. |
| Open summary.xlsx | Opens the workbook in Excel. |
| Status / history | Every run shows its steps with date/time — from “run started” through “Google Sheets updated”. The header always shows when the sheet was last synced. Full agent output is kept in dashboard/logs/. |
claude --version) and logged in.node sync-ledger.js auth.dashboard/status.json (last 50 runs).