Skip to main content

Pokémon-inspired terminal companion that levels up as you use your shell

Project description

TerminalMon

Pokémon-inspired terminal experience. Gain XP by running shell commands and earn and use "moves" (custom scripts). Unaffiliated with official Pokémon branding — all names are original and user-created.

Features

  • Name a TerminalMon that gains XP as you use your shell.
  • Level up (every level × 10 XP) and evolve at levels 30, 60, and 90.
  • Learn, forget, and run "moves" (shell scripts).
  • Keep multiple TerminalMon, switch your buddy, rename, and release them.

Install

TerminalMon is a Python package. It runs on Linux and macOS (Unix shells).

pip install terminalmon

or, to keep it isolated:

pipx install terminalmon

This puts the tmon command on your PATH.

Enable XP tracking

To earn XP automatically from the commands you run, install the shell hook:

tmon hook install            # auto-detects bash or zsh from $SHELL
tmon hook install --shell zsh

Then restart your shell (or source ~/.bashrc / source ~/.zshrc). Prefer to wire it up yourself? tmon hook print emits the snippet.

Usage

Run tmon with no arguments the first time to create your buddy:

tmon

Every command runs immediately and saves to disk — there is no daemon to start or stop. Run tmon --help (or tmon <command> --help) for details.

Command Description
tmon stats Show your buddy's stats
tmon xp <amount> Add XP
tmon learn <move> Learn a move (creates its script)
tmon forget <move> Forget a move
tmon use <move> Run a learned move
tmon edit <move> Open a move's script in your $EDITOR (--path prints the path instead)
tmon new <name> Create a new TerminalMon
tmon buddy <name> Switch your active buddy
tmon list List all TerminalMon
tmon rename <old> <new> Rename a TerminalMon
tmon release <name> Delete a TerminalMon (not your buddy)
tmon hook install Install the shell XP tracker

Where data is stored

TerminalMon stores your creatures and move scripts in your per-user data directory (e.g. ~/.local/share/terminalmon on Linux, ~/Library/Application Support/terminalmon on macOS). Set the TERMINALMON_HOME environment variable to override the location.

Move scripts are opened with $VISUAL/$EDITOR (falling back to vi). Colored output is disabled automatically when piped or when NO_COLOR is set.

Development

git clone https://github.com/bsafig/TerminalMon
cd TerminalMon
pip install -e ".[dev]"
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terminalmon-0.1.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

terminalmon-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file terminalmon-0.1.0.tar.gz.

File metadata

  • Download URL: terminalmon-0.1.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for terminalmon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c459cebc13fff432cf4770a6f0aaf58211d74caa85523d18a5926598ac821a3a
MD5 b834fc30d4c89b3a1d1992ce0853d019
BLAKE2b-256 b2fa49088eca098cfb6af105904f62bed3adaee673f1e76254f6b1beb4a6133b

See more details on using hashes here.

Provenance

The following attestation bundles were made for terminalmon-0.1.0.tar.gz:

Publisher: publish.yml on bsafig/TerminalMon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file terminalmon-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: terminalmon-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for terminalmon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b99b812b4060f5467a4281e575f7ed89669ee2197774b32af746802ed5e24c11
MD5 eb1670b879e76045a3957ad820bf8e01
BLAKE2b-256 9bf065a6effb4b4d1013ba44ff1028df52a363b7bbd3a937afa68744a6ac203e

See more details on using hashes here.

Provenance

The following attestation bundles were made for terminalmon-0.1.0-py3-none-any.whl:

Publisher: publish.yml on bsafig/TerminalMon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page