Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/olexs/reconcli-for-ynab
ReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts
https://github.com/olexs/reconcli-for-ynab
Last synced: about 2 months ago
JSON representation
ReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts
- Host: GitHub
- URL: https://github.com/olexs/reconcli-for-ynab
- Owner: olexs
- License: mit
- Created: 2022-05-22T08:37:54.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-23T17:39:57.000Z (2 months ago)
- Last Synced: 2024-10-25T08:19:39.360Z (about 2 months ago)
- Language: TypeScript
- Size: 1.07 MB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ReconCLI for YNAB
[![Build Status](https://github.com/olexs/reconcli-for-ynab/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/olexs/reconcli-for-ynab/actions?query=workflow%3A%22npm-publish%22)
[![NPM Version](http://img.shields.io/npm/v/reconcli-for-ynab.svg?style=flat)](https://www.npmjs.org/package/reconcli-for-ynab)
[![NPM Downloads](https://img.shields.io/npm/dm/reconcli-for-ynab.svg?style=flat)](https://npmcharts.com/compare/reconcli-for-ynab?minimal=true)
[![Install Size](https://packagephobia.now.sh/badge?p=reconcli-for-ynab)](https://packagephobia.now.sh/result?p=reconcli-for-ynab)ReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts
[![Works with YNAB](https://api.youneedabudget.com/papi/works_with_ynab.svg)](https://api.youneedabudget.com/)
## Features
- Quickly reconcile your YNAB accounts from a terminal
- Clear pending transactions and create a reconciliation transaction for the remaining difference, matching the YNAB app reconciliation flow
- Fully local - your data stays between the YNAB API and your machine, no third party involved
- Securely log in with a [Personal Access Token](https://api.youneedabudget.com/#personal-access-tokens)
- Retrieve the token from a source of your choice:
- Direct input via command line parameter
- Password managers:
- [1Password CLI 2](https://developer.1password.com/docs/cli/get-started/)
- Coin counting: if you use a coin counter, input the counts and calculate the new account balance automatically## Getting started
### Prerequisites
- [Node.js](https://nodejs.org) (versions ≥14 supported, lower may work but not guaranteed)
- [Personal Access Token](https://api.youneedabudget.com/#personal-access-tokens) for your YNAB account### Installation
Use the Node.js package manager of your choice to install as global:
```shell
npm i -g reconcli-for-ynab
```Or run directly with `npx`:
```shell
npx reconcli-for-ynab
```## Usage
```
Usage: reconcli-for-ynab [options]ReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts
Options:
-m, --token-mode Token retrieval mode: direct input or 1Password CLI (choices: "direct", "1password", default: "direct")
-t, --token YNAB Personal Access Token (for direct input mode)
--op-item 1Password: name of item (default: "YNAB")
--op-field-label 1Password: label of field containing the token (default: "personal access token")
-b, --budget Name of the YNAB budget (leave empty if there is only one budget in the account, or if the default budget is set)
-a, --account Name of the YNAB account (ignored if there is only one account in the budget)
-i, --input Amount input mode: simple number, or coin counts for cash (choices: "number", "euro-coins", "usd-coins", "gbp-coins", default: "number")
-h, --help display help for command
```## Upcoming features
- Non-interactive mode for integrating into scripts
- Add missing transactions during reconciliation
- Support for more token retrieval methods:
- Secure keyboard input
- MacOS Keychain
- ...## Built with
- [YNAB API](https://api.youneedabudget.com/) (via the [JavaScript library](https://github.com/ynab/ynab-sdk-js))
- [Commander.js](https://github.com/olexs/reconcli-for-ynab)
- [TypeScript](https://www.typescriptlang.org/)
- [Jest](https://jestjs.io/) and [ts-jest](https://kulshekhar.github.io/ts-jest/)## Acknowledgements
Inspired by [Reconcile for YNAB](https://github.com/JesseEmond/reconcile-for-ynab).
## Contributing
Issues and pull requests are welcome.
### Local development
```shell
npm ci # install dependencies
npm run start # run with ts-node once
npm run watch # run with ts-node and nodemon, restarting for *.ts file changes
npm test # run tests
npm run build # build into /dist
npm run local # builds and installs the package on the local machine, then runs the binary
```