A CLI tool to track your Wolt expenses by fetching order history and generating interactive HTML reports. Helps you understand the "real" cost of food delivery so we can cry together.
This is a "quick and dirty" implementation mostly to satisfy curiosity and offload most of the code generation to Gemini, don't expect anything smart in the source code.
Website & live demo: https://setevik.github.io/wolt-cli/
- Incremental Sync: Fetches only new orders to save time / avoid non-necessary API calls.
- Local Storage: Saves order history locally in
~/.wolt-cli/orders.json. - HTML Reports: A single self-contained, searchable, filterable HTML report: lifetime and yearly totals (compared with the same period last year), monthly chart, fee breakdown, activity calendar, top venues and items, habits, and a full order list. Light and dark mode.
- Multi-currency: Orders paid in different currencies are totalled separately, with a currency switcher.
- CSV Export: Export order history to CSV for use in spreadsheets.
- Token Validation: Validates your API token on save so you know immediately if it's expired.
- Demo Mode:
wolt-cli demobuilds a report from realistic made-up data, no account needed.
Screenshots come from the demo report (made-up data).
Requires Node.js 20.12 or newer.
- Clone the repository:
git clone <repository-url> cd wolt-cli
- Install dependencies:
npm install
- Link the CLI globally (optional):
npm link
You need your Wolt Authorization token.
- Log in to Wolt in your browser.
- Open Developer Tools (Network tab).
- Navigate to the "Order History" page.
- Find a request to
order_history. - Copy the value of the
Authorizationheader (it starts withBearer ...).
Run the config command:
wolt-cli configand provide token value when prompted. The token is validated against the Wolt API before saving. To skip validation:
wolt-cli config --skip-validationUnfortunately, automatic token retrieval is blocked due to Wolt's bot-detection. So you'll need to do this periodically.
Fetch your order history and save it locally.
wolt-cli syncTo force a full re-sync (delete local cache and fetch everything again):
wolt-cli sync --forceGenerate an HTML report from your local data.
wolt-cli report --output expenses.htmlTo generate and open in your browser in one step:
wolt-cli report --openThe report loads Chart.js from jsDelivr to draw its charts; everything else, including your data, is inside the HTML file.
Generate a report from realistic, reproducible demo data: a Berlin-based persona paying in EUR, with trips to Prague paid in CZK. Totals always add up to items + delivery fee + service fee.
wolt-cli demo --open
wolt-cli demo --seed 3 --as-of 2026-06-30 --output demo.html --json demo-orders.jsonOr without linking the CLI: npm run demo.
Export your order history to a CSV file for use in Excel, Google Sheets, etc.
wolt-cli export
wolt-cli export --output my-orders.csvView a quick summary of your local data without generating a report.
wolt-cli status Wolt CLI Status
───────────────────────────────
Orders stored: 247
With details: 247/247
Date range: 2022-03-15 to 2026-01-28
Total spent: 48231.50 (valid orders)
Storage size: 4.2 MB
Storage path: ~/.wolt-cli/orders.json
- Orders:
~/.wolt-cli/orders.json - Config:
~/.wolt-cli/config.json
The GitHub Pages site lives in docs/ (Settings → Pages → Deploy from branch → master / docs).
docs/demo/index.html is the demo report; regenerate it after changing the report or the demo generator:
npm run site # demo history ends today
npm run site -- --as-of 2026-09-23 # or pin the end date

