# 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.