Show HN: PowerKit for Tmux – 32 Plugins
by fabioluciano | 2025-12-12 04:18:18+00:00
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 SUPPORT

Linux: 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?