Sesh is a CLI that creates and manages tmux sessions from anywhere on your machine. Instead of remembering which sessions exist and manually cd-ing to a project before attaching, you fuzzy-find across your running sessions, your zoxide history, and your configured projects β€” then jump straight in. If a session doesn’t exist yet, sesh creates it and names it for you.

Features

  • ⚑ Smart session creation β€” names sessions after the git repo, git remote, or directory so you never end up with 0, 1, and 2.
  • πŸ“ Zoxide integration β€” your most-visited directories become sessions you can jump to instantly.
  • βš™οΈ Per-project configuration β€” define startup commands, windows, and preview commands for a project in sesh.toml.
  • ✳️ Wildcard configs β€” apply one config to every project matching a glob instead of repeating yourself.
  • πŸ” Built-in picker β€” an interactive session selector out of the box, or wire it up to fzf, television, or gum.
  • πŸͺŸ Window management β€” sesh window lists, switches, and creates windows the same way sesh connect handles sessions.
  • πŸ”„ Last session switching β€” bounce between your two most recent sessions with a single command.
  • πŸ“‹ Clone and connect β€” clone a git repo and start a session for it in one step.
  • ⌨️ Shell completions β€” tab completion for Bash, Zsh, fish, and PowerShell.

Get started

Sesh installs via Homebrew, Go, Nix, Conda, and the AUR. Installation steps, the full sesh.toml reference, and example tmux keybindings all live on GitHub.

joshmedeski/sesh

Smart session manager for the terminal

Videos

Appearances