Blazingly fast GIFs in your terminal. π¦π₯
Transform any GIF into beautiful art that plays directly in your terminal. Built with Rust for maximum performance and terminal aesthetics.
- π¨ Customizable characters - Use any character to render your GIFs
- πΎ Save & manage - Store your favorite GIFs locally with custom names
- π Interactive picker - Browse and select
- π Blazingly fast - Written in Rust for optimal performance
- π± Cross-platform - Works on macOS, Linux, and Windows
In alpha still, releases with easier build strategies will come.
git clone https://github.com/username/gifferno.git
cd gifferno
cargo build --release
cargo install --path .cargo install gifferno| Command | Description | Arguments |
|---|---|---|
run |
Play a GIF directly from file path | --file-path, --print-character |
save |
Save a GIF to local database | --file-path, --name |
get |
Retrieve and play a saved GIF | --name, --print-character |
pick |
Interactive GIF selector | None |
delete |
Remove a saved GIF | --name |
clear |
Clear entire GIF database | None |
--file-path/-f: Path to the GIF file--name/-n: Custom name for saving/retrieving GIFs--print-character/-p: Character used for rendering (default:#)
# Run a GIF directly from file
gifferno run --file-path ./my-gif.gif
# Use custom characters for rendering
gifferno run --file-path ./nyan-cat.gif --print-character "?"# Save a GIF with a memorable name
gifferno save --file-path ./epic-fail.gif --name "fail"
# Retrieve and play a saved GIF
gifferno get --name "fail"
# Play with custom characters
gifferno get --name "fail" --print-character ""
# Browse your collection interactively
gifferno pick
# Remove a specific GIF
gifferno delete --name "fail"
# Clear your entire collection (be careful!)
gifferno clear# Basic usage
gifferno run -f ./dance.gif
# Custom character rendering
gifferno run -f ./fire.gif -p "^"
# Save for later
gifferno save -f ./cat.gif -n "grumpy-cat"
# Quick access to saved GIFs
gifferno get -n "grumpy-cat" -p "~"
# Interactive mode
gifferno pickFound a bug? We'd love to hear about it! Please:
- Check existing issues first
- Provide detailed reproduction steps
- Include your system information
- Add relevant error messages or logs
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Write tests for your code
- Ensure tests pass
cargo test - Format your code
cargo fmt
- Run clippy
cargo clippy
- Commit your changes
- Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Please make sure your pull request is rebased on the latest version of the application.
- Create issues for bugs and feature requests
- Use gitmoji or howmoji conventional commit messages.
- Ensure all tests pass before submitting PR
- Update documentation for new features
- Follow Rust best practices and idioms
- Run
cargo fmtbefore committing - Ensure
cargo clippypasses without warnings - Add tests for new functionality
- Update README if adding new commands or features
# Run all tests
cargo test
# Run tests with output
cargo test -- --nocapture
# Run specific test
cargo test test_nameThis project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ and lots of π₯ by the gifferno community
Star β this repo if you find it useful!