Run
Scrape transactions from one or more banks.
Basic usage
$ beanscrape run ./mybank.csx
Multiple banks
Pass multiple .csx file paths to scrape in parallel (each in its own browser tab):
$ beanscrape run ./amex.csx ./discover.csx ./schwab.csx
Options
| Flag | Short | Description | Default |
|---|---|---|---|
--outdir | -d | Output directory | output/ |
--format | -f | Output format: json or csv | json |
--keep-open | -k | Keep browser open after scraping (for review) | off |
--node | Node.js mode: system, download, or auto | auto | |
--debug | Enable debug logging | off |
Output
Transactions are written to <outdir>/<bank-id>.json (or .csv).
JSON format
{
"bank": "amex",
"scrapedAt": "2026-01-13T21:22:25Z",
"transactions": [
{
"date": "2026-01-12",
"payee": "GROCERY STORE",
"memo": null,
"outflow": 85.50,
"inflow": null,
"runningBalance": 1228.78,
"isPending": false,
"category": "Supermarkets"
}
]
}
CSV format
Columns: date, payee, memo, outflow, inflow, runningBalance, isPending, category.
Progress UI
While scraping, a browser panel shows real-time progress with step indicators. You can pause or cancel from this panel.
2FA
If your bank requires two-factor authentication, Beanscrape pauses and waits for you to complete the verification in the browser. Once you approve, scraping resumes automatically.
Importing results
Import the output into Surebeans via ☰ → Import → From Beanscrape, or use File Import with the generated CSV.