craftzdog/tmux-claude-hatch

tmux plugin that runs Claude Code sessions in popups per project directory, with an fzf picker showing each session's status and a bell that highlights the window that needs you.

What it solves

This project provides a way to manage multiple Claude Code agent sessions within tmux, allowing developers to run AI agents in the background without leaving their primary editor (like Neovim or Emacs). It eliminates the need to constantly switch windows or manually track which agents are working, waiting, or idle.

How it works

It is a collection of shell scripts that act as a tmux plugin. It launches Claude Code sessions in nested tmux sessions, which are then displayed in popups over the current window.

Key mechanisms include:

  • Session Management: Each agent gets its own nested session, so closing the popup doesn't kill the process.
  • Central Picker: Uses fzf to list all running agents, showing their live status (working, waiting, or idle) by parsing claude agents --json with jq.
  • Bell Forwarding: Relays terminal bells from the agent's session to the current window, highlighting it to notify the user when an agent needs attention.
  • Optional Plugin: An accompanying Claude Code plugin automates the bell and cache refresh configurations.

Who it’s for

Developers who use tmux and (Neo)vim or Emacs and prefer to keep their focus on their code while letting AI agents handle tasks in the background.

Highlights

  • Popup Interface: Launch and attach to Claude sessions via tmux popups (prefix + y).
  • Live Status Tracking: Real-time visibility into whether agents are working, waiting, or idle in a central picker (prefix + u).
  • Crosstalk Notification: Visual highlights in the current window when a background agent rings the bell.
  • Smart Jump: Automatically switches the client to the window where the agent was launched and opens the popup.
  • Live Preview: See the agent's screen directly within the fzf picker.

Related

  • Project
  • Project
  • Project
  • Project