Show HN: PowerKit for Tmux – 32 Plugins
1 points • fabioluciano • about 12 hours ago • 0 comments
PowerKit is an open-source, modular status bar framework for tmux. It provides 32+ built-in plugins for displaying system information, development context, security status, and media information—all with intelligent caching and a semantic color system.
WHY I BUILT THIS
I was frustrated with the fragmented tmux status bar ecosystem. Most solutions required cobbling together multiple plugins, each with different configuration styles, no caching, and inconsistent theming. I wanted:
1. One framework with consistent configuration across all plugins 2. Smart caching to avoid hammering system calls every status refresh 3. Semantic colors that work across different themes 4. Conditional display - plugins that hide when not relevant (e.g., VPN only shows when connected)
TECHNICAL HIGHLIGHTS
Intelligent Caching: Every plugin has configurable TTL caching. Results are stored in ~/.cache/tmux-powerkit/ with timestamps. Default TTLs are tuned per-plugin based on data volatility—camera/microphone checks every 1s for privacy, while package updates cache for 1 hour.
Semantic Colors: Instead of hardcoding hex values, plugins use semantic names like 'warning' and 'error'. The active theme resolves these at runtime. Switch themes without reconfiguring plugins.
Threshold-Based Colors: Many plugins support multi-tier thresholds. CPU can turn yellow at 70%, red at 90%.
Conditional Display: Plugins intelligently hide when not relevant: - git: only shows in git repositories - vpn: only shows when connected - network: only shows above configurable traffic threshold - camera: only shows when camera is active - kubernetes: can show only when cluster is reachable
PLUGINS (32+)
System Monitoring: cpu, gpu (NVIDIA/AMD/Intel), memory, disk, loadavg, temperature, fan, uptime, brightness
Network: network (bandwidth), wifi (with signal strength), vpn (WireGuard, OpenVPN, Tailscale, etc.), external_ip, ping, ssh, bluetooth, weather
Development Tools: - git: branch with modified repo detection - kubernetes: context/namespace with interactive fzf selectors - cloud: AWS/GCP/Azure context with production warnings - terraform: workspace with production highlighting, OpenTofu support
Security: smartkey - hardware security key detection (YubiKey, SoloKeys, Nitrokey) with "waiting for touch" indicator
Media & Audio: audiodevices (with device switching popup), microphone (with mute toggle), nowplaying (Spotify, Apple Music, MPRIS), volume, camera (privacy indicator)
Package Managers: packages - unified updates for brew, yay, apt, dnf, pacman
Time: datetime, timezones (multiple zones with aliases like nyc, tokyo, london)
INTERACTIVE KEYBINDINGS
prefix + ? : Browse all PowerKit options prefix + K : Kubernetes context selector prefix + N : Kubernetes namespace selector prefix + W : Terraform workspace selector prefix + J/O : Audio input/output device selector prefix + m : Microphone mute toggle prefix + Q : Clear all caches
EXTERNAL PLUGIN INTEGRATION
Wrap any external tmux plugin with PowerKit's styling using the external() function. Supports custom icons, colors, and cache TTL.
INSTALLATION
set -g @plugin 'fabioluciano/tmux-powerkit'
set -g @powerkit_theme 'tokyo-night'
set -g @powerkit_plugins 'datetime,cpu,memory,git,battery'
PLATFORM SUPPORTLinux: Full support macOS: Full support (some plugins use different backends) BSD: Partial support WSL: Works with Linux-compatible plugins
STACK
Pure shell (bash/zsh compatible). No compiled dependencies. Uses standard Unix tools (df, ps, /proc/*, etc.) with fallbacks per platform.
Themes included: Tokyo Night, Kiribyte. More welcome via PR.
Feedback and contributions welcome. What plugins would be useful for your workflow?