skillfed

yaspin

Yet Another Terminal Spinner

yaspin v3.4.0 6.2M downloads/30d#1,947 on PyPI915
Permissive license MIT AGING released

What it is and what it does

Yaspin is a terminal spinner library that animates a loading indicator while code executes, helping users understand that a long-running operation is still in progress. It wraps operations via context manager or function decorator, requiring minimal code changes to integrate into existing projects. The library supports 70+ spinner animations from cli-spinners, all termcolor colors and text attributes (bold, blink, etc.), and allows dynamic updates to spinner style, text, and color mid-operation. Output goes to stdout by default but can be redirected to any stream, and the library handles POSIX signals and safe pipes/redirects.

The single runtime dependency is termcolor, and the package is pure Python with low install friction. It targets Python 3.10+ and runs on CPython and PyPy. The API is designed for ease of integration—spinners can be controlled manually via start/stop or automatically via context manager, and the library provides methods like .write() to emit messages without colliding with the spinner animation.

Use it for:

  • Display progress feedback during file downloads, API calls, or database queries in CLI tools.
  • Wrap long-running data processing functions with a decorator to show activity without modifying the function body.
  • Provide visual feedback in scripts that perform batch operations or system administration tasks.
  • Integrate with prompt-toolkit or other terminal UI libraries to show background task progress.
  • Log operation milestones (via .write()) while keeping the spinner animated in the foreground.
  • Create custom spinner animations by defining frame sequences and intervals for domain-specific indicators.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Yaspin displays an animated terminal spinner to indicate progress during long-running operations, with support for 70+ spinner styles, colors, and text attributes via a context manager or decorator interface.

Yes, if you need a lightweight, low-friction terminal spinner for CLI tools or scripts. The library is mature (Production/Stable), has no security vulnerabilities, and integrates easily via context manager or decorator. However, maintenance is aging (251 days since last release), so consider this if you need active bug fixes or Python version support updates; for stable, fire-and-forget use cases it is reliable.

Install

yaspin on PyPI

pip

pip install yaspin

uv

uv add yaspin

poetry

poetry add yaspin

Installing yaspin

Before you install

Low friction: pure Python wheel with a single runtime dependency (termcolor). Maintenance status is aging—last release was 251 days ago and the repo shows no recent activity, though it remains archived=false with 915 stars and no known vulnerabilities.

License in practice

MIT license (permissive) imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.

Quickstart

pip install yaspin

import time
from yaspin import yaspin

with yaspin(text="Loading") as spinner:
    time.sleep(2)
    spinner.ok("✅")

Requires Python 3.10 or later (supports 3.10, 3.11, 3.12, 3.13, 3.14). Terminal must support ANSI escape sequences for spinner animation.

Verify before relying

  • Whether aging maintenance status (251 days since last release) affects compatibility with newer Python patch versions or terminal emulators.
  • Performance characteristics when used with very high-frequency spinner updates or in resource-constrained environments.

Package facts

License MIT (permissive)
Python support supports the current Python release (<4.0,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — termcolor
Maintenance aging — 251 days since the last release
Last repo commit
First released
Downloads 6,249,241/month — #1,947 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: yaspin-3.4.0-py3-none-any.whl

Keywords: spinner, console, terminal, loader, indicator

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS XEnvironment :: Other EnvironmentIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Other AudienceIntended Audience :: System AdministratorsLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: ImplementationProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software DevelopmentTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: User InterfacesTopic :: System :: LoggingTopic :: System :: MonitoringTopic :: System :: ShellsTopic :: TerminalsTopic :: Utilities

Tags

terminal spinner progress indicatorconsole loading animationCLI progress bar alternativelong-running task feedbackterminal activity indicatorcommand-line spinner libraryasync operation progress display
cli-uiprogress-feedback

More Software Development packages