orthodox-spinner ☦
A terminal spinner shaped like an orthodox cross that breathes in and out.
☦ npm install
The ☦ pulses from bright to dim while any command runs, then clears — replacing whatever spinner the tool would have shown.
Installation
Recommended (isolated CLI tool):
pipx install git+https://github.com/samsonofzorah/orthodox-spinner.git
macOS + Homebrew Python 3.14 note: if pipx errors with
ImportError: dlopen … pyexpat, pipx's shared env is on Python 3.14 which has a broken libexpat on macOS. Fix it with:PIPX_DEFAULT_PYTHON=/opt/homebrew/bin/python3.12 pipx install git+https://github.com/samsonofzorah/orthodox-spinner.git
Or with pip (Python 3.11–3.13 all work):
pip install git+https://github.com/samsonofzorah/orthodox-spinner.git
CLI usage
Wrap any command — its output is buffered and shown after the spinner clears:
spin npm install
spin make build
spin -m "Deploying…" ./deploy.sh
| Flag | Description |
|---|---|
-m TEXT / --message TEXT |
Label beside the spinner (default: the command itself) |
--version |
Print version and exit |
Python library
from orthodox_spinner import Spinner
# context manager
with Spinner("installing"):
subprocess.run(["npm", "install"])
# manual control
s = Spinner("building").start()
do_work()
s.stop()
Shell integrations
To replace the built-in spinners of common tools system-wide, source the
provided shell file in your ~/.zshrc:
echo 'source /path/to/orthodox-spinner/shell/orthodox_spinner.zsh' >> ~/.zshrc
Or copy the relevant functions directly into your ~/.zshrc.
Covered tools: npm, pip, pip3, brew, yarn, cargo
Each wrapper only activates for slow subcommands (install, build, update, etc.) and falls through to the real binary for everything else.
How it works
spin <cmd> runs the command with its stdout/stderr captured, shows the
breathing ☦ spinner on stderr, then flushes the buffered output once the
command exits. The spinner is written to stderr so it does not pollute piped
output.
The animation uses ANSI 256-color grayscale codes (no dependencies beyond the Python standard library).
Requirements
- Python ≥ 3.8
- A 256-color terminal (iTerm2, Terminal.app on macOS, most modern terminals)
Release files for orthodox-spinner 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| orthodox_spinner-0.1.1.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| orthodox_spinner-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.6 kB
Release files / orthodox_spinner-0.1.1.tar.gz
| Download URL | orthodox_spinner-0.1.1.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2d62fbfd2add6b961b54d0afad974e4a37015ea08f967fcb0774970f94ff281
|
|
BLAKE2b-256 checksum How to use checksums |
751cb1c19596b14105d55920c17be299a4e37aadc1d8b1f7060963701f0a373f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / orthodox_spinner-0.1.1-py3-none-any.whl
| Download URL | orthodox_spinner-0.1.1-py3-none-any.whl |
|---|---|
| Size | 4.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94526354629267909ffdb7c1a5cf199640d176c0c0503e8939ac2e9824f6bf3f
|
|
BLAKE2b-256 checksum How to use checksums |
c1cfee516e51f191fdefccc969b22d8f592cdfaedb5ad7cac0c01cf40b450267
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|