Metadata-Version: 2.5
Name: shellwrapped
Version: 0.1.0
Summary: Spotify Wrapped for your terminal: your shell history's year in review, with a shareable card
Project-URL: Homepage, https://github.com/ArkaKhorchidian/shellwrapped
Project-URL: Issues, https://github.com/ArkaKhorchidian/shellwrapped/issues
Author: Arka Khorchidian
License-Expression: MIT
License-File: LICENSE
License-File: src/shellwrapped/fonts/OFL.txt
Keywords: bash,cli,fish,fun,history,shell,terminal,wrapped,year-in-review,zsh
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Shells
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Requires-Dist: pillow>=9.2
Requires-Dist: pyfiglet>=0.8
Requires-Dist: rich>=13
Provides-Extra: test
Requires-Dist: pytest>=7; extra == 'test'
Description-Content-Type: text/markdown

<h1 align="center">shellwrapped</h1>

<p align="center"><b>Spotify Wrapped for your terminal.</b><br>
Your shell history's year in review: top commands, git habits, typos, 2am sessions, and your terminal personality. Plus a card to share.</p>

<p align="center">
  <a href="https://pypi.org/project/shellwrapped/"><img src="https://img.shields.io/pypi/v/shellwrapped.svg" alt="PyPI"></a>
  <a href="https://github.com/ArkaKhorchidian/shellwrapped/actions/workflows/ci.yml"><img src="https://github.com/ArkaKhorchidian/shellwrapped/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <img src="https://img.shields.io/pypi/pyversions/shellwrapped.svg" alt="Python">
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
</p>

```bash
uvx shellwrapped        # or: pipx run shellwrapped
```

<p align="center">
  <img src="docs/demo.gif" alt="shellwrapped playing an animated year in review in the terminal" width="720">
</p>

When it's done, you get a card like this saved next to you:

<p align="center"><img src="docs/card.png" alt="shellwrapped share card: The Night Shell" width="720"></p>

<sub>Demo and card generated from a synthetic year of history.</sub>

## What it finds

- **Your top commands**, counted properly through pipes, `&&`, `sudo`, `env` and `VAR=value` prefixes
- **Your git habits**: how many `git status` it takes you to feel safe
- **Your most-repeated command**: a strong hint it deserves an alias
- **Your typos**: `gti`, `sl`, `claer`, `pyhton`, `cd..`, and friends
- **When you work**: your rush hour, your longest session, your busiest day, how much happens after 10pm
- **Habits**: `sudo !!`, `rm -rf`, `git push --force`, `cd` immediately followed by `ls`
- **Your terminal personality**: The Night Shell, The Git Whisperer, The Container Captain, The Pythonista, The Speed Typist, ...

Works with **zsh, bash, fish and PowerShell** on macOS, Linux and Windows. It finds your history files
automatically, including zsh's extended format with multi-line commands.

## Private by design

- Everything runs locally. No network requests.
- The share card shows only counts and program names (`git`, `docker`), never full commands, paths or arguments.
- Anything token-shaped is masked before a command is shown in your terminal.

## Options

```bash
shellwrapped --all-time            # your whole history instead of this year
shellwrapped --year 2025
shellwrapped --no-anim             # skip the animation, just the summary
shellwrapped --file ~/.zsh_history --shell zsh
shellwrapped --card wrapped.png    # where to save the card (or --no-card)
```

Year-by-year stats need timestamps in your history. zsh's `EXTENDED_HISTORY` and fish record
them automatically. In bash, add `export HISTTIMEFORMAT='%F %T '` to your `.bashrc`. Without timestamps,
shellwrapped covers everything your history remembers.

## License

MIT. Bundles the [Inter](https://github.com/rsms/inter) typeface under the SIL Open Font License.
