rattles-terminal-spinners — Claude Code skill for Rust spinners
A Claude skill covering rattles, a minimal Rust library for terminal spinners. Useful when a CLI needs a loading indicator without extra dependencies.
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a claude-codeWhat rattles-terminal-spinners does
The skill walks through how rattles works and how to wire it into a project. A spinner here is a Rattler: a set of frames plus an interval. It holds no state, so you can build one inside a render loop, and that costs almost nothing.
Presets are grouped by category — arrows, ASCII, braille, emoji — and the rattle! macro defines custom keyframes at compile time. For environments without the standard library there is TickedRattler, which keeps state and advances on each tick() call. Stateless alternatives exist too: pick a frame by index, or pass an elapsed duration from your own timer. A separate section covers ratatui, where a Rattler is passed by reference and needs no Arc<Mutex<>> wrapper.
Add the library with cargo add rattles, or with --no-default-features for no_std. If the spinner freezes on its first frame, check that you flush stdout and overwrite the line with \r rather than \n.
What it helps with
- add a loading indicator to a Rust command-line tool
- pick a ready-made frame set instead of drawing a spinner by hand
- animate a spinner where the standard library is unavailable
- embed a spinner in a ratatui interface
- define custom keyframes and timing with a macro
Example prompts for the agent
- Add a rattles spinner to my Rust CLI using the dots preset
- How do I set up rattles in a no_std project?
- Create a custom spinner with the rattle! macro using three frames
How to install rattles-terminal-spinners
1Skills CLI (Vercel)
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a claude-code2Manually: put the files in place
~/.claude/skills/rattles-terminal-spinners/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/rattles-terminal-spinners/
1Skills CLI (Vercel)
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a codex2Manually: put the files in place
.agents/skills/rattles-terminal-spinners/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a cursor2Manually: put the files in place
.cursor/skills/rattles-terminal-spinners/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install reason-machines/trending-skills rattles-terminal-spinners2Manually: put the files in place
.github/skills/rattles-terminal-spinners/SKILL.md1Skills CLI (Vercel)
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a gemini-cli2Platform CLI
gemini skills install https://github.com/reason-machines/trending-skills --path skills/rattles-terminal-spinnersManually: put the files in place
.devin/skills/rattles-terminal-spinners/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about rattles-terminal-spinners
How do I install rattles-terminal-spinners in Claude?
Run npx skills add reason-machines/trending-skills --skill rattles-terminal-spinners -a claude-code. The skill file then lands at ~/.claude/skills/rattles-terminal-spinners/SKILL.md.
What does rattles-terminal-spinners do?
It helps the agent add the rattles library and write spinner code: presets, custom keyframes, no_std mode, and ratatui integration.
What does no_std mode require?
Install the library with default features turned off, then drive the animation through TickedRattler with tick(), by frame index, or by a duration from your own timer.