Files
2026-05-03 14:38:49 +02:00

92 lines
1.9 KiB
Markdown

# ynabmunger
A CLI tool for importing bank exports into YNAB.
## Installation
You can download binaries from the [Releases page](https://git.shee.sh/james/ynabmunger/releases).
To build locally, you need Rust installed and you can either:
```bash
cargo install --git https://git.shee.sh/james/ynabmunger
```
or clone the repo locally and run:
```bash
cargo install --path .
```
## Usage
All commands that interact with YNAB require your API token, available from [YNAB developer settings](https://app.ynab.com/settings/developer). Set it via the `--token` flag or the `YNAB_API_TOKEN` environment variable.
### Commands
#### `plans`
List available YNAB budgets:
```bash
ynabmunger plans --token YOUR_TOKEN
```
#### `accounts`
List accounts in a budget:
```bash
ynabmunger accounts --token YOUR_TOKEN --plan "My Budget"
```
You can reference a budget by name (`--plan`) or ID (`--plan-id`).
#### `transactions`
List recent transactions (last 30 days):
```bash
ynabmunger transactions --token YOUR_TOKEN --plan "My Budget"
```
Filter by account with `--account` or `--account-id`.
#### `convert`
Convert a bank export to YNAB-compatible CSV for manual import:
```bash
ynabmunger convert --format bulder bank_export.csv > ynab_import.csv
```
Reads from stdin if no input files are given:
```bash
cat bank_export.csv | ynabmunger convert --format bulder > ynab_import.csv
```
#### `import`
Import a bank export directly into a YNAB account:
```bash
ynabmunger import --token YOUR_TOKEN \
--plan "My Budget" \
--account "Checking" \
--format bulder \
bank_export.csv
```
## Bank Formats
Currently supported formats:
| Format | Description |
|--------|-------------|
| `bulder` | Bulder bank semicolon-delimited export |
### Adding New Formats
Add a new variant to the `BankFormat` enum in `src/csv.rs` and implement the reader and transform methods.