Norwegian: to weave
A terminal multiplexer for Linux and macOS.
Like tmux, minus the prefix key. Like mosh, minus mosh. One binary.
curl -fsSL https://raw.githubusercontent.com/bnema/vev/main/install.sh | sh
# Arch Linux: yay -S vev-bin
# or: go install github.com/bnema/vev@latestReleases support Linux x86_64/arm64 and macOS Apple silicon.
vev create an ephemeral session
vev new <name> create a named session
vev attach <name> attach to a local session (alias: a)
vev attach user@host[:session] attach to a remote daemon
vev ls [<host>|--all] list sessions
vev host add|rm <host> manage remote hosts
vev host list list remote hosts
vev kill <name>|--all kill sessions
The daemon starts on first use and exits after the last session. Numbered sessions survive detach; named sessions also survive daemon restarts. See durable-session recovery.
Note
A release that bumps vev's protocol version resets named sessions saved by an older protocol. Session names are retained, but layouts, tabs, terminal history, recovery transcripts, and process-recovery state are discarded. Each local or remote daemon applies this reset to its own sessions when it first starts with the new protocol.
No prefix key; bindings use Alt.
| Key | Action |
|---|---|
| Alt+Space | command palette |
| Alt+f | floating terminal |
| Alt+1 … 9 | switch tab |
| Alt+h/j/k/l or Alt+Arrow | focus pane |
| Alt+a | jump to a session needing attention |
Type a code or fuzzy-search the palette. Common default codes:
| Code | Action | Code | Action |
|---|---|---|---|
CNT |
new tab | CNS |
new named session |
SPR / SPL |
split right / left | SPU / SPD |
split up / down |
STP / TFS |
stack / toggle stack | TFP |
floating terminal |
MFP / MAT |
move pane / tab | SSP |
session picker |
DET |
detach | NTC |
notifications |
Scroll up to enter copy mode; use vim motions, v to select, and y to copy. All codes and bindings are configurable in configuration.
vev attach user@host[:session]SSH bootstraps an authenticated direct UDP connection that resumes after sleep or network changes. Set VEV_REMOTE_TRANSPORT=stdio to use SSH only. The remote host needs vev installed; see remote resilience for firewall, transport, and host-list details.
vev cmd controls a running daemon without starting one:
vev cmd split-right
vev cmd toast -l warn "build failed"
vev cmd list-panes --jsonUse vev cmd --help for commands and targeting options.
- Configuration: bindings, palette, theme, overlays, and bar anchors
- Terminal compatibility
- Remote resilience
- Durable session recovery
- Performance
make test # go test ./... -race
make lint # goimports check, go vet
make mocks # regenerate mocks
make demo # regenerate docs/assets/demo.gif (needs Docker)