Metadata-Version: 2.3
Name: typer-swissknife
Version: 0.1.0
Summary: lightweight companion library for Typer that helps you build cleaner, more expressive CLI applications.
Author: aaltatan
Author-email: aaltatan <a.altatan@gmail.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Dist: pyfiglet>=1.0.4
Requires-Dist: typer>=0.26.8
Requires-Python: >=3.12
Project-URL: Homepage, https://github.com/aaltatan/typer-swissknife
Project-URL: Issues, https://github.com/aaltatan/typer-swissknife/issues
Description-Content-Type: text/markdown

# typer-swissknife

typer-swissknife is a lightweight companion library for [Typer](https://typer.tiangolo.com/) that helps you build cleaner, more expressive CLI applications.

It focuses on a small set of practical helpers for common CLI patterns such as alias-aware commands, nested sub-apps, and richer help output.

## Why use it

- Keep command registration simple and readable.
- Organize larger CLIs into smaller, reusable Typer components.
- Improve discoverability with optional visual help text.
- Stay close to Typer's native behavior while adding a bit more structure.

## Features

- Alias-aware command decorators
- Nested Typer app registration
- Optional ASCII-enhanced help sections
- Simple integration into existing Typer projects

## Installation

```bash
pip install typer-swissknife
```

## Quick example

```python
import typer
from typer_swissknife import add_typer, command

app = typer.Typer()
admin = typer.Typer()

@command(app, name="list", aliases=("ls",))
def list_items():
    print("Listing items...")

@command(admin, aliases=("rm",))
def remove(item: str):
    print(f"Removing {item}")

add_typer(
    app,
    admin,
    name="admin",
    ascii_name="Admin",
    aliases=("a",),
    help="Administrative commands",
)

if __name__ == "__main__":
    app()
```

## Project philosophy

This package is intentionally compact and focused. As the project grows, the goal is to keep the documentation high-level and feature-oriented rather than listing every helper in detail.

## License

typer-swissknife is licensed under the GNU General Public License v3 (GPLv3).
