๐ Awesome Package Manager
January 16, 2026 ยท View on GitHub
https://awesome.codewithshin.com/
What is Awesome?
Awesome is a lightweight shell script package manager that installs packages from GitHub repositories. It's designed for scripts and tools that aren't available in traditional package managers like Homebrew or apt.
Quick facts:
- โก Fast and simple - just shell scripts
- ๐ง Manages packages from any GitHub repository
- ๐พ Installs to
~/.local/share/awesome - ๐ Creates convenient symlinks in
~/.local/share/bin - ๐ฅ Built-in health checks and diagnostics
- ๐ Supports batch operations
Quick Start
Installation
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s install
Add to your shell config:
export PATH=$HOME/.local/share/bin:$PATH
Reload your shell:
source ~/.zshrc # or source ~/.bashrc
Update
You can update your current awesome package:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s update
Uninstallation
Use the following to uninstall awesome package:
Interactive mode:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s uninstall
The following skips all confirmations and removes everything:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | FORCE_UNINSTALL=true bash -s uninstall
Basic Usage
# Health check
awesome doctor
# Install a package
awesome install shinokada/gitstart
# Get package info
awesome info gitstart
# List installed packages
awesome ls
# Update all packages
awesome update --all
# Remove a package
awesome rm gitstart
Key Features
| Feature | Command | Description |
|---|---|---|
| ๐ฅ Health Check | awesome doctor | Verify installation and check for issues |
| ๐ฆ Package Info | awesome info <pkg> | See package details, size, and git info |
| ๐ Statistics | awesome stats | View disk usage and package counts |
| ๐ Batch Update | awesome update --all | Update all packages at once |
| ๐พ Backup | awesome export | Save package list for migration |
| ๐ฅ Restore | awesome import | Install packages from backup file |
| โ๏ธ Configuration | ~/.config/awesome/config | Customize behavior and settings |
| ๐ Logging | Auto-enabled | Track operations for debugging |
Common Tasks
Installing Packages
# From user/repo format
awesome install shinokada/gitstart
# With custom script name
awesome install raylee/tldr-sh-client tldr
# From full URL
awesome install https://github.com/shinokada/cleanit
Managing Packages
# List installed packages
awesome ls
# Get detailed info
awesome info gitstart
# Update single package
awesome update gitstart
# Update all packages
awesome update --all
# Remove package
awesome rm gitstart
System Maintenance
# Health check
awesome doctor
# View statistics
awesome stats
# Backup packages
awesome export ~/my-packages.txt
# View logs (if enabled)
tail -20 ~/.local/share/awesome/logs/awesome.log
TAB completion
# If installed from source or cloned repo:
source completions/awesome-completion.bash
# Or download directly:
# curl -o ~/.local/share/awesome/awesome-completion.bash \
# https://raw.githubusercontent.com/shinokada/awesome/main/completions/awesome-completion.bash
# source ~/.local/share/awesome/awesome-completion.bash
awesome update <TAB> # Should show --all
Configuration
Create ~/.config/awesome/config to customize:
# Directories
AWESOME_DIR="$HOME/.local/share/awesome"
BIN_DIR="$HOME/.local/share/bin"
# Performance
GIT_CLONE_DEPTH=1 # Shallow clones save space
# Reliability
MAX_RETRY_ATTEMPTS=3
RETRY_DELAY=2
# Logging
ENABLE_LOGGING=true
LOG_DIR="$HOME/.local/share/awesome/logs"
See awesome.config.example for all options.
Documentation
- GUIDE.md - Complete command reference and advanced usage
What's New in v0.6.0
โจ New Commands:
awesome doctor- System health checksawesome info <package>- Detailed package informationawesome stats- Package statisticsawesome update --all- Batch updatesawesome export/import- Backup and restore
๐ง Improvements:
- Configuration file support
- Automatic retry on failures
- Network connectivity checks
- Comprehensive logging
- Package manifests
- Enhanced error messages
Troubleshooting
Commands not found?
# Check PATH
echo $PATH | grep ".local/share/bin"
# Add if missing
echo 'export PATH=$HOME/.local/share/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
Network issues?
# Increase retries in config
echo 'MAX_RETRY_ATTEMPTS=5' >> ~/.config/awesome/config
Package issues?
# Run health check
awesome doctor
# Check specific package
awesome info <package-name>
# View logs
tail ~/.local/share/awesome/logs/awesome.log
Requirements
- UNIX-like system (macOS, Linux, BSD)
- Bash 3.2 or higher
- Git
Uninstallation
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s uninstall
This removes all packages, symlinks, configuration, and logs.
Contributing
Contributions welcome! When contributing:
- Maintain backward compatibility
- Add tests for new features
- Update documentation
- Run test suite:
shellspec -s bash
Support
- ๐ Documentation: awesome.codewithshin.com
- ๐ Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- โ Sponsor: Ko-fi
License
MIT License - See LICENSE for details
Credits
Created by Shinichi Okada
Read more: A New Simple Package Manager for Script Languages
Ready to get started? Run awesome doctor to verify your installation! ๐