Announcement: Command-line interface (CLI) for YNAB now available
I've built a basic CLI that provides access to all functionality exposed by the YNAB API (as of the date of writing). It currently hews very close to the API, without any “porcelain” to provide user-friendly functionality built on top of the API. For now, no data is cached locally.
Grab it here: borsboom.io/cli-for-ynab
This is an ALPHA release. While basic functionality is there, there are a few missing pieces and there are most certainly bugs.
Please let me know what you think. Any features you really want to see in a CLI? Found any bugs? Mention them here, or in the issue tracker.
Has anyone given this a try? I'd love some feedback. I'll also mention a few features since I didn't really go into that in the original announcement:
- Multiple output options. Default is an easy-to-read table, but also supports CSV and JSON for machine-readable output to use in scripts.
- Customizable columns. The default selections have the most commonly used columns, but you can have the table or CSV include all values (or fewer) if desired.
- Complete. Every API endpoint is supported by the CLI.
- Easy to install. Just download an executable and run it (available for Windows/macOS/Linux). No need for Java/Ruby/Python/node.js runtime environment to be installed.
- Well documented. The web site describes all commands and configuration.
Emanuel Borsboom Looking great, especially for an alpha. Great work. The site and documentation are awesome. I got up and running easily. And I love the support for delta requests.
In the README you write:
The default budget ID (last-used) will use your most recently used budget, but it doesn’t work reliably in many parts of the API.
We've been shoring up support for `last-used`. Are there still parts of the API where it's not working? Let me know and I'll get 'em working.
Also, I opened a PR to fix the links to the various builds on the README.
Lastly, great job! You've clearly put a lot of work into this and it shows.
Thanks for checking it out, and for the PR!
I just went back and looked into the last-used issue, and it turns out that it all stems from the fact that the `/budgets/last-used/settings` fails, as reported in Bug report: /budgets/last-used/settings errors with resource_not_found. Most of the CLI commands need to be able to get the settings in order to display and/or parse currencies and dates properly, so that one endpoint failing makes most of the CLI fail.