devmachine

How it works

Session indicators

devmachine sessions lists the tmux sessions of each workspace. For each session it says whether the agent in it is busy and whether it wants you. Both are best guesses from what tmux shows, not facts from the agent.

Why the CLI reads the sessions

The reading lives in one place, in Go. The macOS app and the Linux app both call devmachine sessions and show the answer, so they cannot disagree.

The command uses the multiplexed SSH connection that run uses. The connection stays open, so asking every 5 seconds costs one small command each time, not a new login.

Busy is a guess

A session is busy when its screen changed in the last 5 seconds. The CLI reads the time of the last change from tmux.

An agent that is thinking and draws nothing shows as idle. A plain terminal that prints a log shows as busy. When no agent runs in the session, any program other than a shell counts as busy.

Attention needs the bell

A session needs attention when tmux holds a bell mark in one of its windows. The mark appears only when the agent rings the terminal bell.

Claude Code does not ring it by default. To turn it on, set "preferredNotifChannel": "terminal_bell" in ~/.claude.json, or run claude config set --global preferredNotifChannel terminal_bell.

tmux clears the mark when you open the window.

Times come from the machine

Age and busy use the clock of the machine that runs tmux, not the clock of your computer. The command reads that clock in the same call as the sessions. A computer whose clock is wrong still shows the right ages.