92 lines
1.9 KiB
Markdown
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.
|