{"id":13686085,"url":"https://github.com/olexs/reconcli-for-ynab","last_synced_at":"2025-07-03T13:35:11.213Z","repository":{"id":37022149,"uuid":"495003590","full_name":"olexs/reconcli-for-ynab","owner":"olexs","description":"ReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts","archived":false,"fork":false,"pushed_at":"2025-06-25T02:42:25.000Z","size":2075,"stargazers_count":9,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-25T03:34:29.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olexs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-22T08:37:54.000Z","updated_at":"2025-06-25T02:42:28.000Z","dependencies_parsed_at":"2024-04-26T18:25:24.447Z","dependency_job_id":"1b8092fd-889b-4b3d-b42e-84490d8a6fd9","html_url":"https://github.com/olexs/reconcli-for-ynab","commit_stats":{"total_commits":54,"total_committers":5,"mean_commits":10.8,"dds":"0.31481481481481477","last_synced_commit":"19be6f9bd195976aa00913d3a594d30bc76ca07d"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/olexs/reconcli-for-ynab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olexs%2Freconcli-for-ynab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olexs%2Freconcli-for-ynab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olexs%2Freconcli-for-ynab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olexs%2Freconcli-for-ynab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olexs","download_url":"https://codeload.github.com/olexs/reconcli-for-ynab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olexs%2Freconcli-for-ynab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263335794,"owners_count":23450931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T14:01:04.128Z","updated_at":"2025-07-03T13:35:11.186Z","avatar_url":"https://github.com/olexs.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# ReconCLI for YNAB\n\n[![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)\n[![NPM Version](http://img.shields.io/npm/v/reconcli-for-ynab.svg?style=flat)](https://www.npmjs.org/package/reconcli-for-ynab)\n[![NPM Downloads](https://img.shields.io/npm/dm/reconcli-for-ynab.svg?style=flat)](https://npmcharts.com/compare/reconcli-for-ynab?minimal=true)\n[![Install Size](https://packagephobia.now.sh/badge?p=reconcli-for-ynab)](https://packagephobia.now.sh/result?p=reconcli-for-ynab)\n\nReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts\n\n[![Works with YNAB](https://api.youneedabudget.com/papi/works_with_ynab.svg)](https://api.youneedabudget.com/)\n\n## Features\n\n- Quickly reconcile your YNAB accounts from a terminal\n- Clear pending transactions and create a reconciliation transaction for the remaining difference, matching the YNAB app reconciliation flow\n- Fully local - your data stays between the YNAB API and your machine, no third party involved\n- Securely log in with a [Personal Access Token](https://api.youneedabudget.com/#personal-access-tokens)\n- Retrieve the token from a source of your choice:\n  - Direct input via command line parameter \n  - Password managers:\n    - [1Password CLI 2](https://developer.1password.com/docs/cli/get-started/)\n- Coin counting: if you use a coin counter, input the counts and calculate the new account balance automatically\n\n## Getting started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org) (versions ≥14 supported, lower may work but not guaranteed)\n- [Personal Access Token](https://api.youneedabudget.com/#personal-access-tokens) for your YNAB account\n\n### Installation\n\nUse the Node.js package manager of your choice to install as global:\n```shell\nnpm i -g reconcli-for-ynab\n```\n\nOr run directly with `npx`:\n```shell\nnpx reconcli-for-ynab\n```\n\n## Usage\n\n```\nUsage: reconcli-for-ynab [options]\n\nReconCLI for YNAB - a CLI for quickly reconciling YNAB accounts\n\nOptions:\n  -m, --token-mode \u003cmode\u003e         Token retrieval mode: direct input or 1Password CLI (choices: \"direct\", \"1password\", default: \"direct\")\n  -t, --token \u003ctoken\u003e             YNAB Personal Access Token (for direct input mode)\n  --op-item \u003citem\u003e                1Password: name of item (default: \"YNAB\")\n  --op-field-label \u003cfield-label\u003e  1Password: label of field containing the token (default: \"personal access token\")\n  -b, --budget \u003cbudget\u003e           Name of the YNAB budget (leave empty if there is only one budget in the account, or if the default budget is set)\n  -a, --account \u003caccount\u003e         Name of the YNAB account (ignored if there is only one account in the budget)\n  -i, --input \u003cmode\u003e              Amount input mode: simple number, or coin counts for cash (choices: \"number\", \"euro-coins\", \"usd-coins\", \"gbp-coins\", default: \"number\")\n  -h, --help                      display help for command\n```\n\n## Upcoming features\n\n- Non-interactive mode for integrating into scripts\n- Add missing transactions during reconciliation\n- Support for more token retrieval methods:\n  - Secure keyboard input\n  - MacOS Keychain\n  - ...\n\n## Built with\n\n- [YNAB API](https://api.youneedabudget.com/) (via the [JavaScript library](https://github.com/ynab/ynab-sdk-js))\n- [Commander.js](https://github.com/olexs/reconcli-for-ynab)\n- [TypeScript](https://www.typescriptlang.org/)\n- [Jest](https://jestjs.io/) and [ts-jest](https://kulshekhar.github.io/ts-jest/)\n\n## Acknowledgements\n\nInspired by [Reconcile for YNAB](https://github.com/JesseEmond/reconcile-for-ynab).\n\n## Contributing\n\nIssues and pull requests are welcome.\n\n### Local development\n\n```shell\nnpm ci         # install dependencies\nnpm run start  # run with ts-node once\nnpm run watch  # run with ts-node and nodemon, restarting for *.ts file changes\nnpm test       # run tests\nnpm run build  # build into /dist\nnpm run local  # builds and installs the package on the local machine, then runs the binary\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folexs%2Freconcli-for-ynab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folexs%2Freconcli-for-ynab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folexs%2Freconcli-for-ynab/lists"}