Skip to main content

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


Download files

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

Source Distribution

orthodox_spinner-0.1.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

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

orthodox_spinner-0.1.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

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

Hashes for orthodox_spinner-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b2d62fbfd2add6b961b54d0afad974e4a37015ea08f967fcb0774970f94ff281
MD5 46f73cd326a7237696db8380118e7983
BLAKE2b-256 751cb1c19596b14105d55920c17be299a4e37aadc1d8b1f7060963701f0a373f

See more details on using hashes here.

File details

Details for the file orthodox_spinner-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for orthodox_spinner-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94526354629267909ffdb7c1a5cf199640d176c0c0503e8939ac2e9824f6bf3f
MD5 453209d52924ddcf1e75b6fd712f423b
BLAKE2b-256 c1cfee516e51f191fdefccc969b22d8f592cdfaedb5ad7cac0c01cf40b450267

See more details on using hashes here.

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