CrabCrust is a Rust toolkit for adding expressive, terminal-native animation to command-line workflows. It uses braille rendering and lightweight command wrappers to explore how CLI tools can communicate state with more personality and better visual feedback.
Most command-line tools tell you what happened after the fact. This project explores a more designed interaction model: what if terminal workflows could signal motion, progress, success, and intent while still staying inside the shell?
CrabCrust treats the terminal as an interface surface, not just a text stream. The work is intentionally experimental, but the goal is practical: clearer feedback, stronger affordances, and more memorable command experiences.
- Braille-based graphics for high-density terminal rendering.
- Procedural animations for save, push, pull, download, merge, and celebratory states.
- Command wrappers that map shell actions to themed visual responses.
- Modular rendering and animation layers written in Rust.
- Experimental media conversion pipeline for GIF and video-driven terminal playback.
- Demo mode for testing animations outside wrapped commands.
- A command wrapper intercepts a workflow such as
git pushorgit commit. - The executor runs the underlying command and preserves output plus exit code.
- The animation engine selects and renders a procedural animation in parallel with the workflow.
- The braille renderer converts motion into dense terminal graphics with color support.
- Control returns to the shell with the original command result intact.
The repository also includes animation examples and experimental DMD/video assets under examples/ and docs/.
- Rust toolchain
- Cargo
git clone https://github.com/newjordan/CrabCrust.git
cd CrabCrust
cargo build --release
cargo run -- demo allcargo run -- git commit -m "Prototype CLI feedback"
cargo run -- git pushOptional shell alias:
alias git="crabcrust git"- Extend wrappers beyond Git into build, deploy, and agent workflows.
- Add configurable animation mappings for different command outcomes.
- Improve operator cues for failures, warnings, and long-running tasks.
- Explore accessibility and legibility patterns for terminal motion design.