Skip to content

v2.29.0

Latest

Choose a tag to compare

@joshmedeski joshmedeski released this 02 Sep 14:39
preview

This is a big one! Excited to introduce worktree support and the new window feature. Lots of contributors here and if you're not already I recommend you switch to the built-in picker.

I'm making a new video talking all about what you might have missed with sesh, so make sure to subscribe to YouTube if you're not already.

Features

  • Git worktree support. New sesh worktree connect|list|picker commands (alias wt) create a worktree for an issue or PR number and connect to it in one step, driven by per-repo [[worktree]] config. On macOS, --browser reads the issue or PR from the active browser tab.
    By @joshmedeski in #435
  • Windows in existing sessions. sesh window connect selects or creates a window inside a running session, creating the session first if needed, and moves your client to it. This works from outside tmux too. Note: this is a breaking change to how -c behaves.
    By @joshmedeski in #458
  • Live previews. sesh preview --watch keeps refreshing active tmux previews while the picker is open. Tune the poll rate with --interval (default 500ms).
    By @migoll in #433
  • Name substitution rules. Opt-in [[name_substitution]] find/replace rules trim long path prefixes before a session name is derived, so deeply nested directories get short, sensible names.
    By @ChrisJr404 in #437
  • Configurable window names in the native picker. New [tui] window_name_format accepts any tmux format string, so you can show pane titles instead of window names, for example.
    By @t-monaghan in #434
  • An agent skill for sesh. A skill that teaches coding agents to reach for sesh instead of raw tmux new-session or tmux new-window, distributed through skills.sh.
    By @joshmedeski in #459

Bug Fixes

  • Switching sessions from a tmux popup moved the wrong terminal. Popups have no pane identity, so tmux guessed which client to switch and sometimes picked one attached to an unrelated session. Sesh now names the client explicitly.
    By @joshmedeski in #454
  • Reconnecting to a wildcard-matched session reran its startup command. Connecting by path to a directory matching a [[wildcard]] pattern always took the create path, even when the session was already running.
    By @joshmedeski in #455
  • Broken star history chart links in the README.
    By @Dessalines39394 in #436

Performance

  • Faster picker rendering. Match highlighting now renders once per run of same-styled characters instead of once per character, which was most of the per-keystroke cost.
    By @joshmedeski in #447
  • Wildcard patterns expand once. Configured [[wildcard]] patterns are expanded once and cached instead of on every lookup for every session.
    By @joshmedeski in #446

Maintenance

  • Added lister and picker benchmarks at 10, 100, and 1000 sessions, with CI tracking to catch regressions.
    By @joshmedeski in #444
  • Benchmarks now run for a fixed duration instead of 100 iterations, so results are stable enough to alert on.
    By @joshmedeski in #449
  • Moved to Go 1.27 and mockery v3.7.4.
    By @joshmedeski in #450
  • Overhauled CI: split test and release workflows, upgraded actions, pinned tooling.
    By @joshmedeski in #439
  • Moved artifact actions off Node.js 20.
    By @joshmedeski in #448
  • Added Fedora Copr install instructions. Big thanks to @buckaroogeek for the Fedora support!
    By @joshmedeski in #438
  • Bumped Go dependencies.
    By @dependabot in #441 and #461

New Contributors

Full Changelog: v2.28.0...v2.29.0