tend

tend

A terminal runtime for coding agents. The server stays up when you leave. Each pane is marked working, blocked, or idle.

Install

curl -fsSL https://tend.auth.com.br/install.sh | sh

Download tend-linux-amd64 · arm64 · all builds

Puts a binary in ~/.local/bin (or $GOBIN / $TEND_INSTALL_DIR). Prefers a release build for this machine; otherwise clones and builds with Go.

From a checkout: make install.

1 claude ●

Claude Code  ~/src/tend

❯ keep the agents running after I detach

● The session is a background server.
  Closing this window does not stop them.

● Detach with ctrl+b d. Attach again
  and the same panes are there, still
  marked working, blocked or idle.

⠋ Writing the status line…
   esc to interrupt
2 codex ▲
codex  ~/src/tend

Do you want to proceed?

  Run make check before the commit

  internal/ui/draw.go
  cmd/tend/tui.go

❯ 1. Yes
  2. No

~/src/tend  feat/hero

work · tend · agents1:claude ●2:codex ▲

A session. The server is still there when nobody is looking.

With no arguments, tend opens a session and starts a server if there is not one. tend new -- claude opens a pane. tend ls lists what is running. -s NAME runs another session beside the first.

Written in Go. One binary. No cgo.

What stays when you detach

The programs
A session is a background server. ctrlb then d leaves the agents running. Opening tend again attaches to the same panes.
The state
A pane is working, blocked, or idle. The mark is what the screen is showing — a spinner, a permission prompt, a shell waiting — not a guess about the process name.
The layout
A space holds tabs. A tab holds panes. Split beside or below, zoom one pane, scroll its history, jump to the agent that stopped.

Tools, over the spaces

Six buttons at the top of the sidebar, each with a key after the prefix.

Files f
A panel beside your panes: the project's tree, a search through it, and its git changes — diff, stage, commit, push. It follows the pane you are working in.
Agents A
The agent CLIs tend knows — Claude Code, Codex, Gemini CLI, Cursor, OpenCode and more — which this machine has, and the install command for the rest, run in a tab once you say yes.
Sessions S
Every Claude Code conversation on the machine, by its title. Type to search, enter to resume one in a new tab where it was held, mark old ones and delete them.
GitHub I
The project's issues and pull requests, through gh. Comment, close, label, merge. w on an issue makes a worktree for it and starts your agent there, told to complete it.
Browser and context B C
A Chromium, Chrome or Edge window with tend's extension: pick elements on a page, note what you want of each, and send them to the agent, looked over first in the context panel.
Updates
tend notices a new release and says so. u in its notes installs it and moves the running session onto it, without stopping the programs in its panes.
GITHUB ISSUES · acme/shop                              4 of 4
 open   assigned to me   created by me   closed    Issues Pull requests
search label:bug 

#     title                              labels       author   age
42    Checkout button is grey on mobile  bug          ana      3h  
41    Footer links overlap the badge     bug, ui      bo       1d
38    Dark mode for the settings page    enhancement  ana      2d
35    Export orders as CSV               enhancement  carla    5d

enter open · w start work · c comment · x close · → pull requests · esc

The issues panel, prefix+I. w on #42 makes a worktree on issue-42-checkout-button-is-grey and starts your agent in it.

AGENT SESSIONS                               2 marked · 5 of 38
search shop 

  ● Checkout redesign            acme/shop       now   4.2M
    Footer links overlap         acme/shop        3h   812K
✓   Orders CSV export            acme/shop       34d   1.9M 
✓   Old payment experiment       acme/shop       41d    96K
  ✗ Shop setup as root           root/shop       52d   220K

type to search · enter resume · tab mark · ^o 30+ days · ^d delete · esc
● open in a pane · ✗ cannot be opened here

The sessions list, prefix+S. Enter resumes one in a new tab, where it was held; ctrlo marks what is a month old, ctrld deletes it. One open in a pane is never deleted.

Prefix is ctrl+b

ctrlb ? lists every key inside the session.

| -split beside, below
hjklmove focus
HJKLswap panes
rresize (then h j k l, esc)
zzoom a pane to the window
[scroll back through its history
xclose a pane
c n p 1–9tabs: new, next, previous, by number
N ( )spaces: new, previous, next
ashow every agent, grouped
gpick one and jump to it
ddetach, leaving everything running