Spinners
π 60+ Elegant terminal spinners for Rust
Install / Use
/learn @FGRibreau/SpinnersREADME
Spinners - π 60+ Elegant terminal spinners for Rust
<p align="center"><img src="https://media.giphy.com/media/3oxHQyZfOJjlL3bhRK/giphy.gif"></p>β€οΈ Shameless plug
- Open-Source Webhook as a Service
- Charts, simple as a URL. 1 url = 1 chart - Charts API
- Keycloak Identity and Access Management (IAM) as a Service
- Recapro.ai - AI meeting recorder, offline-first, 100% private, no data sent to third parties
- Natalia - AI-powered phone assistant, auto-answers, qualifies & routes calls 24/7
- Bunker - Sovereign cloud hosting, deploy on EU infrastructure, 60% cheaper than AWS
Install
See Cargo page
Usage
use spinners::{Spinner, Spinners};
use std::thread::sleep;
use std::time::Duration;
fn main() {
let mut sp = Spinner::new(Spinners::Dots9, "Waiting for 3 seconds".into());
sleep(Duration::from_secs(3));
sp.stop();
}
Example
cargo run --example cycle
cargo run --example simple
Feature flags
osc-progress
Enables native terminal progress bar support via the ConEmu OSC 9;4 protocol. Terminals like Ghostty, Windows Terminal, iTerm2, Kitty, and WezTerm render these as GUI progress bars in the title/tab bar. Unsupported terminals silently ignore the sequences.
[dependencies]
spinners = { version = "4.1.0", features = ["osc-progress"] }
The progress bar is emitted as an indeterminate/pulsing indicator while the spinner is active, and cleared when the spinner is stopped or dropped. Sequences are only emitted when the output stream is a terminal, so piped output is unaffected.
Signal handling caveat: If the process is killed abruptly (e.g. SIGINT via Ctrl+C, SIGKILL), the Drop implementation may not run and the progress bar won't be cleared. Terminals like Ghostty mitigate this with a ~15-second auto-clear timeout, but for immediate cleanup, applications should install their own signal handler that stops the spinner (e.g. by dropping it or calling .stop()) before exiting.
License
MIT Β© FranΓ§ois-Guillaume Ribreau, James Cordor
Related Skills
himalaya
352.5kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
352.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
352.5kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
111.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
