Skip to content

feat: cool CLI with figlet banner and styled output - #23

Merged
clawdeeo merged 7 commits into
mainfrom
feat/cool-cli
Apr 22, 2026
Merged

feat: cool CLI with figlet banner and styled output#23
clawdeeo merged 7 commits into
mainfrom
feat/cool-cli

Conversation

@clawdeeo

Copy link
Copy Markdown
Collaborator

Summary

Make the CLI a lot cooler with colors, formatting, and a figlet banner.

Changes

  • ASCII art figlet banner (cyan, bold) shown on install, list, update, uninstall, search, platform, self-update commands
  • Colored output throughout:
    • Green checkmarks for success
    • Cyan highlights for important info
    • Dimmed text for secondary details
    • Green bold for new versions
  • Styled formatting: headers, separators, key-value pairs
  • NO_COLOR support for colorless terminals

Commands Styled

    • Styled dry-run, install complete messages
    • Styled package list with separators
    • Styled update available messages
    • Styled success message
    • Styled release list with colored tags/assets
    • Styled platform info
    • Styled check and update messages

Dependencies Added

  • for terminal colors
  • Uses existing for NO_COLOR detection

Testing

All tests pass. Tested with:


/ \ / | / |/ |/ \ / | / \ / | / |
/$$$$$$ |$$ | $$ |$$$$$$$$/ $$ \ /$$ |/$$$$$$ |$$ | $$ |
$$ |__$$ |$$ | $$ | $$ | $$$ \ /$$$ |$$ | $$/ $$ | $$ |
$$ $$ |$$ | $$ | $$ | $$$$ /$$$$ |$$ | $$ | $$ |
$$$$$$$$ |$$ | $$ | $$ | $$ $$ $$/$$ |$$ | __ $$ | $$ |
$$ | $$ |$$ _$$ | $$ | $$ |$$$/ $$ |$$ _/ |$$ _$$ |
$$ | $$ |$$ $$/ $$ | $$ | $/ $$ |$$ $$/ $$ $$ |
$$/ $$/ $$$$$$/ $$/ $$/ $$/ $$$$$$/ $$$$$$$ |
/ _
$$ |
$$ $$/
$$$$$$/

Detected platform: linux aarch64
Compiled for: Linux
OS aliases: ["linux"]
Arch aliases: ["aarch64", "arm64"] - Shows banner


/ \ / | / |/ |/ \ / | / \ / | / |
/$$$$$$ |$$ | $$ |$$$$$$$$/ $$ \ /$$ |/$$$$$$ |$$ | $$ |
$$ |__$$ |$$ | $$ | $$ | $$$ \ /$$$ |$$ | $$/ $$ | $$ |
$$ $$ |$$ | $$ | $$ | $$$$ /$$$$ |$$ | $$ | $$ |
$$$$$$$$ |$$ | $$ | $$ | $$ $$ $$/$$ |$$ | __ $$ | $$ |
$$ | $$ |$$ _$$ | $$ | $$ |$$$/ $$ |$$ _/ |$$ _$$ |
$$ | $$ |$$ $$/ $$ | $$ | $/ $$ |$$ $$/ $$ $$ |
$$/ $$/ $$$$$$/ $$/ $$/ $$/ $$$$$$/ $$$$$$$ |
/ _
$$ |
$$ $$/
$$$$$$/


[INFO] [DRY RUN] Would install BurntSushi/ripgrep

Release 15.1.0
Asset ripgrep-15.1.0-aarch64-unknown-linux-gnu.tar.gz
Install dir packages/BurntSushi/ripgrep
Binary packages/BurntSushi/ripgrep/ripgrep
Symlink bin/ripgrep
------------------------------------------------------------ - Styled output


/ \ / | / |/ |/ \ / | / \ / | / |
/$$$$$$ |$$ | $$ |$$$$$$$$/ $$ \ /$$ |/$$$$$$ |$$ | $$ |
$$ |__$$ |$$ | $$ | $$ | $$$ \ /$$$ |$$ | $$/ $$ | $$ |
$$ $$ |$$ | $$ | $$ | $$$$ /$$$$ |$$ | $$ | $$ |
$$$$$$$$ |$$ | $$ | $$ | $$ $$ $$/$$ |$$ | __ $$ | $$ |
$$ | $$ |$$ _$$ | $$ | $$ |$$$/ $$ |$$ _/ |$$ _$$ |
$$ | $$ |$$ $$/ $$ | $$ | $/ $$ |$$ $$/ $$ $$ |
$$/ $$/ $$$$$$/ $$/ $$/ $$/ $$$$$$/ $$$$$$$ |
/ _
$$ |
$$ $$/
$$$$$$/

Detected platform: linux aarch64
Compiled for: Linux
OS aliases: ["linux"]
Arch aliases: ["aarch64", "arm64"] - Colorless output

- Add banner.rs module with:
  - ASCII art figlet banner
  - Colored output functions (success, error, info, warning)
  - Styled headers and separators
  - NO_COLOR env var support
- Add 'colored' dependency
- Show banner on install, platform, and self-update commands

Still need to:
- Apply styling to actual install output
- Improve spacing and formatting throughout
- Add colored imports to registry.rs
- Style 'list' output with headers, separators, and colors
- Package names in green, versions in dimmed
- Show banner for list command

Todo:
- Style install output (download progress, extract, etc.)
- Style uninstall command
- Update command styling
- Add styled extraction message during install
- Add styled checksum verification message
- Style uninstall success message

Todo:
- Update command styling
- Clean command styling
- Final review
- Style update_one with colored status messages
- Green checkmark for 'up to date', dimmed for versions
- Style update_all summary with separator

Todo:
- Clean command styling
- Final review
- Add banner and colored imports to github.rs
- Style search_releases with colored headers
- Green tag names, dimmed asset names, cyan sizes
- Add separators between releases

Todo:
- Self-update command styling
- Final review
- Add banner and colored imports to self_update.rs
- Style check_for_update with headers, key-value pairs
- Style perform_update with banners and colored messages
- Green checkmark for 'up to date', green bold for new version

All commands now have styled output with the figlet banner!
- Add unreleased section with styling features
- Document figlet banner, colored output, NO_COLOR support
@clawdeeo
clawdeeo merged commit 1b1e24f into main Apr 22, 2026
8 checks passed
@clawdeeo
clawdeeo deleted the feat/cool-cli branch April 22, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant