https://awesome.codewithshin.com/
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
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s installAdd to your shell config:
export PATH=$HOME/.local/share/bin:$PATHReload your shell:
source ~/.zshrc # or source ~/.bashrcYou can update your current awesome package:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s updateUse the following to uninstall awesome package:
Interactive mode:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s uninstallThe following skips all confirmations and removes everything:
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | FORCE_UNINSTALL=true bash -s uninstall# 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| 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 |
# 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# 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# 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# 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 --allCreate ~/.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.
- GUIDE.md - Complete command reference and advanced usage
β¨ 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
Commands not found?
# Check PATH
echo $PATH | grep ".local/share/bin"
# Add if missing
echo 'export PATH=$HOME/.local/share/bin:$PATH' >> ~/.zshrc
source ~/.zshrcNetwork issues?
# Increase retries in config
echo 'MAX_RETRY_ATTEMPTS=5' >> ~/.config/awesome/configPackage issues?
# Run health check
awesome doctor
# Check specific package
awesome info <package-name>
# View logs
tail ~/.local/share/awesome/logs/awesome.log- UNIX-like system (macOS, Linux, BSD)
- Bash 3.2 or higher
- Git
curl -s https://raw.githubusercontent.com/shinokada/awesome/main/install | bash -s uninstallThis removes all packages, symlinks, configuration, and logs.
Contributions welcome! When contributing:
- Maintain backward compatibility
- Add tests for new features
- Update documentation
- Run test suite:
shellspec -s bash
- π Documentation: awesome.codewithshin.com
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- β Sponsor: Ko-fi
MIT License - See LICENSE for details
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! π
