A terminal spinner shaped like an orthodox cross ☦
Project description
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orthodox_spinner-0.1.1.tar.gz.
File metadata
- Download URL: orthodox_spinner-0.1.1.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2d62fbfd2add6b961b54d0afad974e4a37015ea08f967fcb0774970f94ff281
|
|
| MD5 |
46f73cd326a7237696db8380118e7983
|
|
| BLAKE2b-256 |
751cb1c19596b14105d55920c17be299a4e37aadc1d8b1f7060963701f0a373f
|
File details
Details for the file orthodox_spinner-0.1.1-py3-none-any.whl.
File metadata
- Download URL: orthodox_spinner-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94526354629267909ffdb7c1a5cf199640d176c0c0503e8939ac2e9824f6bf3f
|
|
| MD5 |
453209d52924ddcf1e75b6fd712f423b
|
|
| BLAKE2b-256 |
c1cfee516e51f191fdefccc969b22d8f592cdfaedb5ad7cac0c01cf40b450267
|