English | 日本語
Cast your everyday commands as spells.
mahojin is a wrapper you can put in front of any CLI command. Before running the command,
it unfolds a magic circle made just for that command, right in your terminal.
$ mahojin git status- The same spell always summons the same circle. The circle is derived from the SHA-256 of
the command string. Cast
git statusand you get this purple triangle, any time, on any machine - Change one character and you get a completely different circle.
lsandls -lalook nothing alike - The writing on the rings is the command itself. The invented magic script on the bands spells out the command one byte at a time. The same character has the same glyph in every circle
- Some spells are bigger than others. Each command is a minor, standard, major or ultimate spell, and the circle grows from 8 to 36 terminal rows. The bigger, the rarer
- It stays out of your way. The circle unfolds in about a second, and all of it goes to stderr. stdout, the exit code and pipes stay the command's own
| Start | cargo install mahojin && mahojin --skills, then /mahojin-setup in Claude Code or Codex |
| Cast | mahojin git status |
| Chant every command | mahojin --on … mahojin --off |
| Collect | mahojin --grimoire |
| Show off | mahojin --share git status |
| Stop | /mahojin-teardown |
/mahojin-setup asks which shell you use and writes the mahojin --init line and a short alias to its rc.
/mahojin-teardown cleans up what mahojin put in place. Prebuilt binaries are on Releases.
- Usage: options, when to cast, failed spells, sharing, language
- Setup: install, chanting mode, supported terminals and tmux, environment variables, stopping
- Spells: tiers, the grimoire, how a circle is decided
The GIF and gallery in assets/ are the images mahojin actually sent to the terminal, framed by python3 scripts/demo.py (needs cargo, ImageMagick and script(1)). License: MIT.

