Spinny
🌀 Spinny is a tiny terminal spinner package for the Nim Programming Language.
Install / Use
/learn @molnarmark/SpinnyREADME
Spinny
Spinny is a tiny terminal spinner package for Nim Programming Language.

Getting Started
You can use Nimble to install the package by running:
nimble install spinny
This library uses threads for spinners, so you have to compile your application
(or add to your nim.cfg):
--threads:on
Usage
Spinny is quite easy to use. You can set the color, text or symbol of an already running spinner.
import spinny, os
var spinner1 = newSpinny("Loading file..".fgWhite, Dots)
spinner1.setSymbolColor(fgBlue)
spinner1.start()
# do some work here
for x in countup(5, 10):
sleep(500)
spinner1.success("File was loaded successfully.")
var spinner2 = newSpinny("Downloading files..".fgBlue, Dots5)
spinner2.setSymbolColor(fgLightBlue)
spinner2.start()
# do some work here
for x in countup(5, 10):
sleep(500)
spinner2.error("Sorry, something went wrong during downloading!")
You can even use custom spinners if predefined ones aren't suitable for your needs.
import spinny, os
# makeSpinner accepts two arguments - the interval between different frames,
# and frames themselves (as a sequence of strings)
var spinner3 = newSpinny("I'm custom.", makeSpinner(100, @["x", "y"]))
spinner3.setSymbolColor(fgGreen)
spinner3.start()
# do some magnificent work here
for x in countup(1, 5):
sleep(500)
spinner3.success("Looks like it's working!")
Spinny embeds the colorize library for terminal colors.
For spinners to use, take a look at the src/spinners.nim file. (Credit goes to sindresorhus)
API Reference
The following procs are available on a Spinny object:
setSymbolColor*(spinny: Spinny, color: proc(x: string): string)setSymbol*(spinny: Spinny, symbol: string)setText*(spinny: Spinny, text: string)start*(spinny: Spinny)stop*(spinny: Spinny)success*(spinny: Spinny, msg: string)error*(spinny: Spinny, msg: string)
Contributing
All contributions are welcome. Feel free to make this project better. :)
Authors
- Mark Molnar
License
- MIT
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.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.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
