Core widgets:
- Project Launcher — jump into common project directories and see git state
- System Panel — CPU, RAM, disk, uptime, and top processes
- Git Panel — current branch, status, and latest commit
- Todo / Notes — quick scratchpad viewer for a local markdown todo file
- Media Controls — now-playing summary for playerctl/mpc-compatible players
- Services Panel — local listening services and Docker containers
- Quick Links — fast access to the terminals, dashboards, and local tools you use most
Popular add-ons:
- Clock — quick time/date glance
- Weather — one-line local weather
- Clipboard — short clipboard preview
- Tailscale — VPN / network status
- AI Status — local LM Studio / OpenAI-compatible endpoint check
WaveTerm custom widgets are defined in:
<WAVETERM_HOME>/config/widgets.json
This repo keeps the widget command logic in bin/ and provides a generator that renders a WaveTerm-ready widgets.json with absolute paths for your machine.
From the repo root:
Linux/macOS:
./scripts/install.shWindows PowerShell:
.\scripts\install.ps1Windows batch:
scripts\install.batOr run the cross-platform deploy script directly:
python3 scripts/deploy.pyBy default this writes to the first existing WaveTerm home it finds, usually one of:
$HOME/.waveterm/config/widgets.json$HOME/.config/waveterm/config/widgets.json
To target every likely home in one pass, use --all-homes:
python3 scripts/deploy.py --all-homesIf your WaveTerm home is different, set WAVETERM_HOME first or pass --home:
WAVETERM_HOME="$HOME/.config/waveterm" ./scripts/install.sh
python3 scripts/deploy.py --home "$HOME/.config/waveterm"It makes a timestamped backup of any existing widgets.json before replacing it.
Rollback / uninstall:
./scripts/rollback.sh
.\scripts\rollback.ps1
python3 scripts/deploy.py --rollback
python3 scripts/deploy.py --removepython3 scripts/render-widgets-json.py > /tmp/widgets.jsonbin/project-launcher.shbin/system-panel.shbin/git-panel.shbin/todo-notes.shbin/media-controls.shbin/services-panel.shbin/quick-links.shbin/clock.shbin/weather.shbin/clipboard.shbin/tailscale.shbin/ai-status.sh
- The scripts are dependency-light and should work on a plain Linux desktop.
media-controlsusesplayerctlfirst, thenmpc.services-panelshows listening ports and Docker containers when available.todo-notesreads from~/.local/share/wave-term-widgets/todo.mdby default.weatheruseswttr.inif available, withEdmontonas the default location.ai-statuschecks the local LM Studio-compatible endpoint at100.109.144.124:1234by default.
Good next additions later:
- Pomodoro / timer
- Calendar / today agenda
- Log tail widget
- Network / VPN status
- More interactive project and service launchers