Personal command-line utilities written in Go for my own system management and media handling needs. These are leisure-time tools designed with my personal preferences for aria2c and yt-dlp workflows.
| Utility | Description | Requirements |
|---|---|---|
check_updates |
Check for package updates on Arch Linux (official + AUR) | pacman-contrib, paru or yay |
dlfast |
High-performance file downloader using aria2c | aria2c |
ytmax |
Download YouTube videos with quality preferences | yt-dlp, aria2c |
Install required dependencies:
# Arch Linux
sudo pacman -S go pacman-contrib aria2 yt-dlp mpv paru
# Or with yay instead of paru
sudo pacman -S go pacman-contrib aria2 yt-dlp mpv yay# Clone repository
git clone https://github.com/Evren-os/GoferShell.git
cd GoferShell
# Initialize Go module
go mod init github.com/Evren-os/GoferShell
# Build all utilities
go build check_updates.go
go build dlfast.go
go build ytmax.go
# Install to local bin directory
mkdir -p ~/.local/bin
cp check_updates dlfast ytmax ~/.local/bin/
chmod +x ~/.local/bin/*
# Add to PATH (add to your shell config)
export PATH="$HOME/.local/bin:$PATH"Check for available package updates on Arch Linux.
check_updates [-no-ver]Options:
-no-ver: Hide version information in output
Example:
check_updatesDownload files with high performance using aria2c.
dlfast [options] <URL> [URL2 ...]Options:
-d <path>: Target directory for downloads-max-speed <speed>: Limit download speed (e.g., 1M, 500K)-timeout <seconds>: Download timeout (default: 60)-parallel <num>: Number of parallel downloads (default: 3)-quiet: Suppress progress output
Examples:
dlfast https://example.com/file.zip
dlfast -d ~/Downloads https://example.com/file.zip
dlfast -max-speed 1M -parallel 2 url1 url2 url3Download YouTube videos with quality and codec preferences.
ytmax [options] <URL> [URL2 ...]Options:
-codec <name>: Preferred codec (av1orvp9, default:av1)-d <path>: Output directory or full file path-socm: Download in MP4 format optimized for social media-cookies-from <browser>: Use browser cookies (e.g.,firefox,chrome)-p <num>: Parallel downloads for batch mode (default: 4)
Examples:
# Single download
ytmax -codec vp9 -d ~/Videos https://youtu.be/VIDEO_ID
# Batch download
ytmax -d ~/Videos -p 6 "URL1" "URL2" "URL3"
# With browser cookies
ytmax --cookies-from firefox "URL1" "URL2"- Personal workflow: Designed around my specific aria2c and yt-dlp preferences
- Shell-agnostic: Standalone binaries that work in any shell
- High performance: Optimized for speed with aria2c integration
- Quality control: Configurable video quality and codec preferences
- Batch processing: Support for downloading multiple files/videos concurrently
- Error handling: Robust error recovery and signal handling
MIT License - see LICENSE file for details.