unicode-animatio
Lightweight Unicode and ASCII terminal animations for Python.
GitHub · Install · What Ships · Website · X
- 58 terminal animation families as raw frame data
- 10 categories for browsing and selection
- typed Python API with JS-style compatibility aliases
- built-in terminal preview CLI and local browser demo
- no runtime dependencies
unicode-animatio is the public package and repo name. The Python import root
remains unicode_animations, while the public CLI entrypoints use
unicode-animatio and unicode-animatio-web.
Official project links
- GitHub:
https://github.com/openminion/unicode-animatio - Issues:
https://github.com/openminion/unicode-animatio/issues
What the package provides
unicode-animatio provides:
- immutable spinner frame data via
unicode_animations.spinners - canonical names and categories via
SPINNER_NAMES,CATEGORY_NAMES, andSPINNER_CATEGORIES - braille-grid helpers:
make_gridandgrid_to_braille - compatibility aliases:
makeGridandgridToBraille - a structural animation provider entry point for consumers such as OpenMinion
- a terminal preview CLI:
unicode-animatio - a local web preview CLI:
unicode-animatio-web
What the package does not provide
This package does not provide:
- async terminal rendering frameworks
- progress bars, task orchestration, or job-state tracking
- ANSI styling, background colors, or status text in frame data
- hosted demo infrastructure or remote APIs
- framework-specific adapters for Rich, Textual, or Typer
Install
Install from PyPI:
python3 -m pip install unicode-animatio
Editable install during local development:
python3 -m pip install -e ".[dev]"
Quick start
from unicode_animations import spinners
spinner = spinners["braille"]
print(spinner.frames)
print(spinner.interval)
Grid helpers:
from unicode_animations import grid_to_braille, make_grid
grid = make_grid(4, 4)
grid[0][0] = True
grid[1][1] = True
grid[2][2] = True
grid[3][3] = True
print(grid_to_braille(grid))
Provider boundary:
from unicode_animations import get_provider
provider = get_provider()
spec = provider.get("helix")
print(provider.provider_id)
print(spec.frames)
print(spec.interval_ms)
The provider returns raw frame strings and timing only. Foreground colors, backgrounds, reduced-motion behavior, labels, and layout remain owned by the rendering application.
CLI and demos
Terminal preview:
unicode-animatio --list
unicode-animatio --categories
unicode-animatio --list --category graph
unicode-animatio
unicode-animatio helix
unicode-animatio edgepulse
unicode-animatio helix --color auto --foreground gray
Local browser demo:
unicode-animatio --web
unicode-animatio-web --port 8765
unicode-animatio-web --host 0.0.0.0 --port 8765 --no-open
Python API terminal demo:
python examples/terminal_demo.py
python examples/terminal_demo.py --seconds-per-spinner 2 --loops 2
python examples/terminal_demo.py helix
python examples/terminal_demo.py --list
Available animations
The package ships 58 deterministic animations across 10 categories:
| Category | Presets |
|---|---|
subtle |
braille, pulse, orbit, breathe, softdot, slowbreath, quietorbit, dimwave |
scan |
scan, scanline, snake, diagswipe, hscan, vscan, radar, focusbeam |
build |
blocks, stack, assemble, brickline |
thinking |
ellipsis, mindwave, synapse, neuron |
tool |
terminalblink, gearspin, wrench, sparkplug |
data |
braillewave, dna, rain, cascade, columns, waverows, helix, bitstream, packetflow, matrixrain, columns2 |
graph |
nodes, edgepulse, cluster, orbitnodes |
progress |
fillsweep, meter, ladder, risingblocks, fillbar2 |
alert |
sparkle, warningpulse, heartbeat, ping, flashdot |
dense |
checkerboard, plasma, noise, moire, shimmergrid |
Selected first-frame examples:
| Name | Category | First frame | Interval |
|---|---|---|---|
braille |
subtle |
⠋ |
80ms |
focusbeam |
scan |
---- |
90ms |
synapse |
thinking |
*.. |
100ms |
terminalblink |
tool |
$_ |
160ms |
packetflow |
data |
[>]--- |
100ms |
edgepulse |
graph |
o---o |
90ms |
meter |
progress |
[ ] |
120ms |
shimmergrid |
dense |
.+. |
90ms |
Choosing a preset
- Use
subtlefor calm background activity. - Use
scanordatafor indexing and retrieval work. - Use
thinkingfor model activity andtoolfor command execution. - Use
graphfor relation traversal and knowledge-graph work. - Use
progresswhen steady forward motion matters. - Use
alertsparingly for attention states.
For a live preview:
unicode-animatio --list
unicode-animatio --categories
unicode-animatio --list --category graph
unicode-animatio edgepulse --foreground gray
unicode-animatio --web
Development
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e ".[dev]"
python3 -m pytest -q
python3 -m ruff check .
python3 -m build
Package docs
Trust and Brand Safety
- Official GitHub:
https://github.com/openminion/unicode-animatio - Official website:
https://www.openminion.com - Official X account:
https://x.com/OpenMinion
unicode-animatio has no official token, coin, NFT, airdrop, staking
program, treasury product, or investment offering. Any claim otherwise is
unauthorized and should be treated as a scam.
License and brand-use boundary
- Source code license:
MIT - Brand/trademark grant:
none
The software license grants rights to use, modify, and redistribute the code. It does not grant rights to use the unicode-animatio or OpenMinion names, logos, branding, website identity, or social identity except for truthful attribution. Forks, clones, and derivative distributions must not present themselves as the official unicode-animatio package or imply affiliation, endorsement, or maintenance by unicode-animatio or OpenMinion contributors unless that is actually true.
Community
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 unicode_animatio-0.0.3.tar.gz.
File metadata
- Download URL: unicode_animatio-0.0.3.tar.gz
- Upload date:
- Size: 41.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae7cbbf81d97ddb6fab9694c1ce5fc86bb77873a006b39d3c101ea2c87a4c892
|
|
| MD5 |
a7005fa51ac90aaecc15bc229bb4e210
|
|
| BLAKE2b-256 |
874de8730c521e95b6ec1ddba53e0b6ed68a2b24cae09653ee992f8c50bffbcd
|
Provenance
The following attestation bundles were made for unicode_animatio-0.0.3.tar.gz:
Publisher:
release.yml on openminion/unicode-animatio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unicode_animatio-0.0.3.tar.gz -
Subject digest:
ae7cbbf81d97ddb6fab9694c1ce5fc86bb77873a006b39d3c101ea2c87a4c892 - Sigstore transparency entry: 2199155637
- Sigstore integration time:
-
Permalink:
openminion/unicode-animatio@d9ee2dc2d93f9ec3f69c605fbfd4dc7cfc77a80a -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/openminion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9ee2dc2d93f9ec3f69c605fbfd4dc7cfc77a80a -
Trigger Event:
push
-
Statement type:
File details
Details for the file unicode_animatio-0.0.3-py3-none-any.whl.
File metadata
- Download URL: unicode_animatio-0.0.3-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99579494f1e4886d06be4767a009ab1aba803ec26dde5ccad2158f6c6cf6cce5
|
|
| MD5 |
b8510021081193a275fde16940ff76d9
|
|
| BLAKE2b-256 |
513b31ed32a2f0d5aa3f9b43d6c81cac16495c500cd423978a97dba991fe0fee
|
Provenance
The following attestation bundles were made for unicode_animatio-0.0.3-py3-none-any.whl:
Publisher:
release.yml on openminion/unicode-animatio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unicode_animatio-0.0.3-py3-none-any.whl -
Subject digest:
99579494f1e4886d06be4767a009ab1aba803ec26dde5ccad2158f6c6cf6cce5 - Sigstore transparency entry: 2199155776
- Sigstore integration time:
-
Permalink:
openminion/unicode-animatio@d9ee2dc2d93f9ec3f69c605fbfd4dc7cfc77a80a -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/openminion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9ee2dc2d93f9ec3f69c605fbfd4dc7cfc77a80a -
Trigger Event:
push
-
Statement type: