A Tampermonkey userscript that exports your Wealthsimple transactions to a CSV file.
- Date range presets (Last 30 days, 3/6/12 months, Year to date, All time) — choose how far back to export
- Smart loading optimization — stops loading more transactions once past the selected date range
- Automatically loads transactions by clicking "Load more" until the date range is covered
- Expands each transaction's detail panel to extract full information
- Exports 9 data columns: Date, Time, Payee, Category, Amount, Currency, Status, Account, Card Number
- Handles transfers by including the destination account in the payee field
- Normalizes Unicode minus signs and extracts currency codes
- Persists across SPA navigation — the export button re-injects when you navigate back to Activity
- Shows a progress spinner during export with status updates
- A browser with Tampermonkey installed (Chrome, Firefox, Edge, Safari)
- A Wealthsimple account
- Build the project (see Development) or obtain the built
.user.jsfile - Open the
.user.jsfile in your browser — Tampermonkey will prompt you to install it - Click Install
git clone https://github.com/dashed/wealthsimple-export-transactions.git
cd wealthsimple-export-transactions
make install
make buildThe built userscript will be in dist/. Open it in your browser to install via Tampermonkey.
- Log in to Wealthsimple and navigate to the Activity page
- Select a date range from the dropdown next to the "Activity" heading (defaults to "Last 3 months")
- Click the Export transactions button
- Wait for the script to load and process transactions within the selected range
- A CSV file will download automatically when complete
See docs/USAGE.md for detailed usage instructions and CSV format.
make install # Install dependencies
make dev # Start dev server (auto-injects userscript via Tampermonkey)
make build # Build for production
make test # Run unit tests
make test-watch # Run tests in watch mode
make lint # Lint with oxlint
make lint-fix # Lint and auto-fix
make format # Format code with oxfmt
make format-check # Check formatting
make clean # Remove dist/ and node_modules/See docs/DEVELOPMENT.md for project structure, architecture, and contribution guidelines.
GitHub Actions runs on every push to main and on pull requests: lint, format check, type check, tests, and build. See .github/workflows/ci.yml.
The exported CSV includes 9 columns with full transaction details:
| Column | Format | Example |
|---|---|---|
| Date | YYYY-MM-DD |
2026-05-27 |
| Time | Free text | 12:15 am |
| Payee | Free text | Uber Canada/Ubertrip |
| Category | Free text | Purchase |
| Amount | Dollar value | -$37.36 |
| Currency | 3-letter ISO | CAD |
| Status | Free text | Settled |
| Account | Free text | Credit card • Wealthsimple credit card |
| Card Number | Masked | ••••3025 |
Example output:
"Date","Time","Payee","Category","Amount","Currency","Status","Account","Card Number"
"2026-05-27","12:15 am","Uber Canada/Ubertrip","Purchase","-$37.36","CAD","Settled","Credit card • Wealthsimple credit card","••••3025"
"2026-05-27","","Hetzner Online Gmbh","Purchase","-$251.35","CAD","Pending","Credit card • Wealthsimple credit card",""This project is based on the original userscript by:
Original gist: rksully1/decaf7f770727bb39450bbe290501caa