v0.2.0
lazy-tmux v0.2.0
The first proper milestone since 0.1 — a reworked picker, first-class program
integrations (starting with Claude Code), a TOML config file, a live restore
animation, and control over exactly what gets re-run on restore.
Highlights
Program integrations + Claude Code (#147)
- New extensible integration framework — programs can plug in behaviour and
status without touching picker internals. - Live Claude status dots in the picker: see at a glance which Claude
windows are working, awaiting a permission/answer, or idle — no more
switching around only to find Claude was blocked on a yes/no. - Hook-based, precise detection with a zero-setup fallback, plus
claude --resumehandling so a restored Claude window picks its session
back up.
Picker UI refresh
- Cohesive themed UI with mouse support, color-coded action modes, and an
amber browse-mode accent. - Keybinding help panel (
?) and chord hints in the command palette (#9). - Capture time shown as a relative age; wider name/cmd columns, tighter
meta columns; the fzf build gets the same color + declutter treatment.
Restore experience
- ASCII loading animation rendered inside the picker frame while a picked
session restores. Escduring restore cancels cleanly, kills the partial session, and
returns you to the picker — fast.- Decide exactly what re-runs on restore: an allowlist and a denylist,
matched as regexes over the full command line. - Preserve an explicitly launched shell across save/restore; join wrapped
lines withcapture-pane -J.
Configuration
- Settings now come from a TOML config file —
config genscaffolds one,
config showprints the resolved config. - Configure the restore allow/denylist, sort order, tmux binary path, and more.
tmux compatibility & robustness
- Verified against tmux 2.9–3.7b.
- Treat a missing socket as "no server running" instead of erroring.
- Borderless popup (
-B) for the picker keybinding — a single clean frame. - Real isatty probe for the attach guard; attach correctly when run
outside tmux. - Last-used ordering now counts native tmux switches (
prefix+L), not
just picker restores. save --allno longer a silent no-op;~intmux_binis expanded.
CLI & docs
- Background autosave daemon (
daemon --interval) that snapshots sessions on a
schedule, plussleep/wakeup/forgetfor managing snapshots. version/--versioncommand sourced from the release tag.- ASCII crescent-moon banner in
--help(#38). - Brand-new documentation site (React + Vite + Gravity UI) with a generative
ASCII background, a dedicated Integrations page, a live version badge, and
freshly recorded demo GIFs. install.shnow retries transient download failures.
Maintenance
make release-patch|minor|majortargets with guarded tag + push.- Full linter suite enabled across the codebase.
- Dependency updates (React 19, bubbletea/bubbles/lipgloss v2, Vite 7, …).
Full changelog: v0.1.0...v0.2.0
