# YNAB CLI
A command-line interface for interacting with YNAB (You Need A Budget).
## Usage
Full user documentation available [here](http://jeffsawatzky.github.io/ynab-cli)
## Project Structure
- `src/ynab_cli/`: Main source code
- `tests/`: Unit and integration tests
- `docs/`: Documentation (built with MkDocs)
## Getting Started
### Prerequisites
- Python 3.11+
- [uv](https://docs.astral.sh/uv/)
### Installation
Clone the repository:
```sh
$ git clone https://github.com/jeffsawatzky/ynab-cli.git
$ cd ynab-cli
```
Install dependencies with uv:
```sh
$ uv sync
```
### Running the CLI
With uv:
```sh
$ uv run ynab-cli --help
```
## Development
- Source code is in `src/ynab_cli/`.
- Use feature branches for new work.
- Follow PEP8 and use type hints where possible.
### Linting & Formatting
```sh
$ make lint
```
### Running Tests
```sh
$ make test
```
Or directly with pytest:
```sh
uv run pytest
```
## Documentation
- Docs are in `docs/` and built with MkDocs.
- To serve docs locally:
```sh
$ uv run mkdocs serve
```
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/your-feature`)
3. Commit your changes. Commits should follow conventional commits. The repo is configured with [commitizen](https://commitizen-tools.github.io/commitizen/)
4. Push to your fork and open a pull request
Please include tests for new features and bug fixes.
## License
See [LICENSE.md](LICENSE.md)
Raw data
{
"_id": null,
"home_page": null,
"name": "ynab-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "budget, cli, click, textual, ynab",
"author": "Jeff Sawatzky",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c7/c6/1990e7d9e0bc005d4b5eabc29a26319ef29c6a9282d9541883c34a54778c/ynab_cli-0.6.3.tar.gz",
"platform": null,
"description": "# YNAB CLI\n\nA command-line interface for interacting with YNAB (You Need A Budget).\n\n## Usage\n\nFull user documentation available [here](http://jeffsawatzky.github.io/ynab-cli)\n\n## Project Structure\n\n- `src/ynab_cli/`: Main source code\n- `tests/`: Unit and integration tests\n- `docs/`: Documentation (built with MkDocs)\n\n## Getting Started\n\n### Prerequisites\n- Python 3.11+\n- [uv](https://docs.astral.sh/uv/)\n\n### Installation\n\nClone the repository:\n```sh\n$ git clone https://github.com/jeffsawatzky/ynab-cli.git\n$ cd ynab-cli\n```\n\nInstall dependencies with uv:\n```sh\n$ uv sync\n```\n\n### Running the CLI\n\nWith uv:\n```sh\n$ uv run ynab-cli --help\n```\n\n## Development\n\n- Source code is in `src/ynab_cli/`.\n- Use feature branches for new work.\n- Follow PEP8 and use type hints where possible.\n\n### Linting & Formatting\n\n```sh\n$ make lint\n```\n\n### Running Tests\n\n```sh\n$ make test\n```\nOr directly with pytest:\n```sh\nuv run pytest\n```\n\n## Documentation\n\n- Docs are in `docs/` and built with MkDocs.\n- To serve docs locally:\n```sh\n$ uv run mkdocs serve\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/your-feature`)\n3. Commit your changes. Commits should follow conventional commits. The repo is configured with [commitizen](https://commitizen-tools.github.io/commitizen/)\n4. Push to your fork and open a pull request\n\nPlease include tests for new features and bug fixes.\n\n## License\n\nSee [LICENSE.md](LICENSE.md)",
"bugtrack_url": null,
"license": null,
"summary": "YNAB Command Line Interface",
"version": "0.6.3",
"project_urls": {
"Changelog": "https://github.com/jeffsawatzky/ynab-cli/blob/main/CHANGELOG.md",
"Documentation": "https://jeffsawatzky.github.io/ynab-cli/",
"Funding": "https://github.com/sponsors/jeffsawatzky",
"Releases": "https://github.com/jeffsawatzky/ynab-cli/releases",
"Source": "https://github.com/jeffsawatzky/ynab-cli"
},
"split_keywords": [
"budget",
" cli",
" click",
" textual",
" ynab"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "70df336abf1861e4ba53f4ebdac712bf46f8c5ebed051e62fae00907b0d0d3e6",
"md5": "a7228db4761c75ec56418c182b992ab7",
"sha256": "d89656801047241fbd52122362a7ada5dc008f8a686e579b8ff3a3936f9d62d0"
},
"downloads": -1,
"filename": "ynab_cli-0.6.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a7228db4761c75ec56418c182b992ab7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 213511,
"upload_time": "2025-07-12T01:43:15",
"upload_time_iso_8601": "2025-07-12T01:43:15.558984Z",
"url": "https://files.pythonhosted.org/packages/70/df/336abf1861e4ba53f4ebdac712bf46f8c5ebed051e62fae00907b0d0d3e6/ynab_cli-0.6.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c7c61990e7d9e0bc005d4b5eabc29a26319ef29c6a9282d9541883c34a54778c",
"md5": "7b68625b6425d5f77fe877bbbf025289",
"sha256": "0561a5340fd0bfaf0f0a8f86dff1f82504a08466479a4987032dd1cb2c972a87"
},
"downloads": -1,
"filename": "ynab_cli-0.6.3.tar.gz",
"has_sig": false,
"md5_digest": "7b68625b6425d5f77fe877bbbf025289",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 173557,
"upload_time": "2025-07-12T01:43:17",
"upload_time_iso_8601": "2025-07-12T01:43:17.059605Z",
"url": "https://files.pythonhosted.org/packages/c7/c6/1990e7d9e0bc005d4b5eabc29a26319ef29c6a9282d9541883c34a54778c/ynab_cli-0.6.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 01:43:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jeffsawatzky",
"github_project": "ynab-cli",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ynab-cli"
}