Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 17:15
· 47 commits to main since this release

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 --resume handling so a restored Claude window picks its session
    back up.

Picker UI refresh

lazy-tmux TUI picker

  • 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.
  • Esc during 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 with capture-pane -J.

Configuration

  • Settings now come from a TOML config file — config gen scaffolds one,
    config show prints 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 --all no longer a silent no-op; ~ in tmux_bin is expanded.

CLI & docs

  • Background autosave daemon (daemon --interval) that snapshots sessions on a
    schedule, plus sleep/wakeup/forget for managing snapshots.
  • version / --version command 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.sh now retries transient download failures.

Maintenance

  • make release-patch|minor|major targets 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