Metadata-Version: 2.4
Name: splitty-cli
Version: 0.1.0b1
Summary: Splitting group expenses made it fun on your terminal
Project-URL: Homepage, https://github.com/0xlukem/Split-CLI
Author: Lucas Malizia
License: MIT License
        
        Copyright (c) 2026 Luke
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: cli,expenses,group-expenses,rich,terminal,typer
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial :: Accounting
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Requires-Dist: plotext<6.0,>=5.3
Requires-Dist: pydantic<3.0,>=2.7
Requires-Dist: rich<14.0,>=13.7
Requires-Dist: terminaltexteffects<0.16,>=0.15
Requires-Dist: typer<1.0,>=0.12
Provides-Extra: dev
Requires-Dist: build<2.0,>=1.2; extra == 'dev'
Requires-Dist: pytest<9.0,>=8.2; extra == 'dev'
Requires-Dist: twine<7.0,>=6.1; extra == 'dev'
Description-Content-Type: text/markdown

# splitty-cli

![Terminal first](https://img.shields.io/badge/terminal-first-00d1b2)
![ASCII powered](https://img.shields.io/badge/ASCII-powered-brightgreen)
[![PyPI version](https://img.shields.io/pypi/v/splitty-cli.svg)](https://pypi.org/project/splitty-cli/)
![Split drama](https://img.shields.io/badge/group_expense-drama_reduced-orange)
[![PyPI status](https://img.shields.io/pypi/status/splitty-cli.svg)](https://pypi.org/project/splitty-cli/)
[![Python versions](https://img.shields.io/pypi/pyversions/splitty-cli.svg)](https://pypi.org/project/splitty-cli/)
[![License](https://img.shields.io/pypi/l/splitty-cli.svg)](LICENSE)
[![Publish package to PyPI](https://github.com/0xlukem/Split-CLI/actions/workflows/publish-pypi.yml/badge.svg)](https://github.com/0xlukem/Split-CLI/actions/workflows/publish-pypi.yml)

`splitty-cli` is a Python terminal application for splitting shared expenses with a polished interactive flow, colorful terminal dashboards, and clean settlement suggestions.

## Features

- guided step-by-step CLI powered by Typer
- styled prompts, tables, panels, and dashboards with Rich
- animated intro and terminal charts, with a no-animation mode for simpler sessions
- equal split calculations with cent-accurate rounding
- minimized settlement transfers between debtors and creditors
- expense analytics with terminal charts
- optional JSON export for every completed session
- modular business logic with Pydantic validation and pytest coverage

## Installation

```bash
pip install splitty-cli
```

## Quickstart

Run the interactive app:

```bash
splitty-cli
```

Disable the animated intro when you want a quieter run, a simpler terminal capture, or better compatibility with a limited terminal:

```bash
splitty-cli --no-animations
```

You can also disable animations with an environment variable:

```bash
SPLITTY_NO_ANIMATIONS=1 splitty-cli
```

Follow the prompts to:

1. name the event
2. add the participants
3. enter each expense
4. review balances, settlements, and charts
5. optionally export the session to JSON

## JSON export

Write the final report to a JSON file:

```bash
splitty-cli --export-json reports/weekend-trip.json
```

In the interactive flow, JSON backups are stored by default in `~/.splitty-cli/backups/` and use the pattern `<event-name>-YYYY-MM-DD.json`.
If you confirm the export at the end of the session, the CLI only asks for the backup file name and keeps the file inside that folder.

The exported report includes:

- event summary
- participant balances
- settlement transfers
- analytics insights
- expense and payer breakdown data

