https://github.com/jeffsawatzky/ynab-cli
A python command line tool to help keep YNAB organized
https://github.com/jeffsawatzky/ynab-cli
python ynab
Last synced: about 1 month ago
JSON representation
A python command line tool to help keep YNAB organized
- Host: GitHub
- URL: https://github.com/jeffsawatzky/ynab-cli
- Owner: jeffsawatzky
- License: mit
- Created: 2024-10-04T16:39:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-10T10:46:35.000Z (4 months ago)
- Last Synced: 2025-12-16T17:33:02.213Z (3 months ago)
- Topics: python, ynab
- Language: Python
- Homepage: https://jeffsawatzky.github.io/ynab-cli/
- Size: 2.11 MB
- Stars: 19
- Watchers: 1
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# 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)