ynabing
ynabing is a local-first CLI for reconciling YNAB with banks, credit cards,
screenshots, statements, and eventually receipts.
The first workflow extracts Apple Card transactions from iPhone screenshots using macOS Vision OCR, normalizes a YNAB CSV export, and produces an ordered comparison report.
Layout
.
├── data/
│ ├── iphone-screenshots/
│ └── ynab-export/
├── reports/
├── src/ynabing/
├── tests/
├── pyproject.toml
└── ynabing.toml.example
The repository does not track financial data, screenshots, exports, or generated reports.
Install for development
cd "$MATRIX/packages/ynabing"
export UV_PROJECT_ENVIRONMENT="$APOGEE_UV_VENV_ROOT/ynabing"
uv sync --all-groups
uv run ynabing --help
Configure paths
Local repository configuration:
uv run ynabing config init --path "$PWD/ynabing.toml" --data-root "$PWD/data" --reports-root "$PWD/reports"
Or define a global data location:
export YNABING_DATA_ROOT="/path/to/ynabing-data"
Resolution order:
- CLI options
YNABING_DATA_ROOTandYNABING_CONFIG_FILE./ynabing.toml~/.config/ynabing/config.toml./dataand./reports
Apple Card reconciliation
Put screenshots in:
data/iphone-screenshots/
Put the YNAB export in:
data/ynab-export/
Then run:
uv run ynabing apple-card reconcile --as-of 2026-06-23 --exclude-top 0.12
When --ynab is omitted, the newest CSV in data/ynab-export/ is selected.
Reports are written to:
reports/apple-card/YYYY-MM-DD/
Generated files include:
apple_transactions.csvynab_transactions.csvordered_comparison.csvscreenshot_counts.csvtop_anchor_candidates.csvsummary.txt
Roadmap
- Generic account and institution adapters
- Statement reconciliation
- Pending authorization tracking
- Cross-month authorization/posting detection
- Receipt indexing and attachment paths
- Duplicate and amount-change detection
- Persistent local database
- Optional YNAB API integration
Privacy
Transaction exports, screenshots, receipts, and reports remain local. Do not commit them to Git.
License
MIT
Metadata
Release files for ynabing 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ynabing-0.1.0.tar.gz | 6.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ynabing-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.0 MB
Release files / ynabing-0.1.0.tar.gz
| Download URL | ynabing-0.1.0.tar.gz |
|---|---|
| Size | 6.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e34655cba6bbde5672b499c2fdd411914d9b0588875086154779bd5b3be57e17
|
|
BLAKE2b-256 checksum How to use checksums |
d6b2273316459d0be7c8342782cd9ecf4f180a339b38d4bd74322e493bbcf001
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ynabing-0.1.0-py3-none-any.whl
| Download URL | ynabing-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8c095590a61fcf5064dd891f5b17b63b8354ce556978470c246332f98e10b81
|
|
BLAKE2b-256 checksum How to use checksums |
838198cd966c2cf70605dd2f897304e2b2f6bd2faf536c743122b645a8058b94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|