rook

module
v0.44.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2026 License: MIT

README

rook

A rebuild from an empty Go module, around open-source tooling instead of under it. rook is what you run after starting your terminal, in place of tmux.

The bet. The multiplexer and the jump list are solved — tmux, zoxide. What is not solved is the layer above them: N agents in N sessions, each producing turns, and no way to route attention across them. That layer is the product. Everything else is a dependency and stays one — until its data model caps the product, which is how sesh's ideas got absorbed into rook ls / preview / connect instead of staying a dependency.

What this is not. Not a terminal emulator, not an editor, not a multiplexer. Ghostty and neovim are tenants. tmux is a depends_on, never vendored.

What is here. rook boots a bare tmux: its own server socket (-L rook) under a config rook generates — the user's ~/.tmux.conf is never read, their tmux is never touched. internal/tmux.Settings is the proxy: one field per tmux option, rendered atomically to ~/.local/state/rook/tmux.conf at boot, reconciled live via set-option on the socket. Colours are ANSI names on purpose: the glass owns the palette, rook owns structure and emphasis.

Run it.

make install     # go build -o rook ./cmd/rook, then into ~/.local/bin
rook             # attaches to a session named for the current directory

One binary, over a rook-owned tmux server. rook ls / preview / connect are the session manager; the bottom strip carries per-pane git and the active pane's spend; the attention feed routes what needs you across every session (vera is its first publisher).

Pulling things back. The previous rook — the Zig app, the plugin vocabulary, the environments graph, the providers — is intact on the pre-tmux branch. Take a file when it earns its place, not by default:

git checkout pre-tmux -- docs/plugins/VOCABULARY.md

Directories

Path Synopsis
cmd
rook command
Command rook boots an opinionated tmux session: run it in place of `tmux` and you are attached to a session named after the current directory, on a rook-owned server that never loads the user's tmux.conf.
Command rook boots an opinionated tmux session: run it in place of `tmux` and you are attached to a session named after the current directory, on a rook-owned server that never loads the user's tmux.conf.
internal
attention
Package attention is rook's inbound contract: anything that wants a say in rook's chrome — the status bar, the picker, the preview — writes items into the attention feed, and rook renders them without knowing who wrote them.
Package attention is rook's inbound contract: anything that wants a say in rook's chrome — the status bar, the picker, the preview — writes items into the attention feed, and rook renders them without knowing who wrote them.
config
Package config loads rook's user configuration from ~/.config/rook/rook.toml (XDG_CONFIG_HOME respected).
Package config loads rook's user configuration from ~/.config/rook/rook.toml (XDG_CONFIG_HOME respected).
sessions
Package sessions is rook's own session model — the layer that used to be delegated to sesh.
Package sessions is rook's own session model — the layer that used to be delegated to sesh.
tmux
Package tmux boots and addresses the rook-owned tmux server.
Package tmux boots and addresses the rook-owned tmux server.
sdk
provider module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL