A command-line swiss army knife with diverse functionality.
- YouTube Downloads - Download audio, albums/playlists, and videos with aria2c acceleration
- Smart Video Quality - Automatically detects your screen resolution and downloads appropriate quality
- Git Identity Management - Manage multiple git identities for different domains and folders
- Backup/Restore - Backup and restore directories with automatic verification (macOS/Linux)
- Font Installation - Install custom fonts with a single command
- Curated Binary Management - Install and update supported standalone binaries into
~/.bio/bin - Volume Control - Cross-platform system volume control (macOS, Windows, Linux)
- macOS Utilities - Other macOS-specific tools
- Self-Managing - Automatically downloads and manages its own yt-dlp binary
- Go 1.25+ (for building from source)
- aria2c - Required for accelerated downloads
Install aria2c:
# macOS
brew install aria2
# Linux (Debian/Ubuntu)
sudo apt install aria2
# Linux (Fedora)
sudo dnf install aria2
# Windows
scoop install aria2
# or
choco install aria2# Clone the repository
git clone https://github.com/ppowo/zzk.git
cd zzk
# Install build tools
go generate
# Build using Mage
mage build
# Install to ~/.bio/bin
mage install# Download audio
zzk yt aud https://youtube.com/watch?v=dQw4w9WgXcQ
# Download album/playlist
zzk yt alb https://youtube.com/playlist?list=...
# Download video (smart quality based on screen resolution)
zzk yt vid https://youtube.com/watch?v=dQw4w9WgXcQOutput: Audio to ~/Music/, Videos to ~/Movies/
# Backup .bio directory
zzk backup bio
# Restore .bio from a code
zzk backup bio abc123Available targets: bio, openemu (macOS only)
Manage multiple git identities (user, email, SSH keys) for different domains and folders.
Create ~/.git-identities.json:
{
"identities": [
{
"name": "work",
"domain": "github.com",
"user": "John Doe",
"email": "john@company.com",
"folders": ["~/work/"]
},
{
"name": "personal",
"domain": "github.com",
"user": "johndoe",
"email": "john@personal.com",
"folders": ["~/personal/", "~/projects/"]
}
]
}Commands:
zzk git sync # Generate SSH keys, update git config, and configure SSH
zzk git ls # List all identities
zzk git where # Show which identity applies to current directory
zzk git info <identity-name> # Show detailed information about an identity# Install DMCA Sans Serif font
zzk font-install dmcaInstall and update curated standalone binaries that zzk knows about. These tools are installed into ~/.bio/bin, but zzk only manages the binaries it explicitly supports.
# List binaries that zzk can manage
zzk bin ls
# Install cs into ~/.bio/bin
zzk bin install cs
# Show installed vs latest version
zzk bin version cs
# Show install/update status
zzk bin status cs
# Update one tool or all managed tools
zzk bin update cs
zzk bin update --allControl system volume (cross-platform: macOS, Windows, Linux)
# Set volume to default (17)
zzk vol
# Set volume to specific level (0-100)
zzk vol 50Platform Requirements:
- macOS: Uses AppleScript (built-in)
- Windows: Uses Windows Audio API
- Linux: Automatically detects PulseAudio (
pactl) or ALSA (amixer)
This project uses Mage for build automation.
mage build # Build the project
mage install # Install to ~/.bio/bin
mage test # Run tests
mage fmt # Format code
mage vet # Run go vet
mage check # Run all checks (fmt + vet + test)
mage clean # Clean build artifacts- Go: 1.25 or higher
- OS: macOS, Linux (X11), Windows
- Linux requires
xrandrfor screen resolution detection
- Linux requires
- aria2c: Must be installed and in PATH
See LICENSE file for details.