Metadata-Version: 2.4
Name: ynab-cli
Version: 0.7.0
Summary: YNAB Command Line Interface
Project-URL: Changelog, https://github.com/jeffsawatzky/ynab-cli/blob/main/CHANGELOG.md
Project-URL: Documentation, https://jeffsawatzky.github.io/ynab-cli/
Project-URL: Funding, https://github.com/sponsors/jeffsawatzky
Project-URL: Releases, https://github.com/jeffsawatzky/ynab-cli/releases
Project-URL: Source, https://github.com/jeffsawatzky/ynab-cli
Author: Jeff Sawatzky
License-Expression: MIT
License-File: LICENSE.md
Keywords: budget,cli,click,textual,ynab
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Utilities
Requires-Python: <4.0.0,>=3.11
Requires-Dist: anyio~=4.10
Requires-Dist: attrs~=25.3
Requires-Dist: click-default-group~=1.2
Requires-Dist: click~=8.2
Requires-Dist: httpx~=0.28
Requires-Dist: lagom~=2.7
Requires-Dist: python-dateutil~=2.9
Requires-Dist: python-dotenv~=1.1
Requires-Dist: rapidfuzz~=3.14
Requires-Dist: rich~=14.1
Requires-Dist: rule-engine~=4.5
Requires-Dist: textual-fspicker~=0.6
Requires-Dist: textual~=6.1
Requires-Dist: typing-extensions~=4.15
Requires-Dist: uvloop~=0.21
Description-Content-Type: text/markdown

# 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)