Skip to content

Command Line

Documentation in progress

Some sections are still incomplete.

Everything ThinkTerm does from a shell goes through one binary, thinkterm.

thinkterm --help

Subcommands

CommandWhat it does
startStart the GUI, optionally running an alternative program. Aliased as -e
tui [DOMAIN…]Open the ThinkTerm interface in the current terminal
connect <name>Connect to a ThinkTerm multiplexer
sshEstablish an SSH session
serialOpen a serial port
cli <subcommand>Interact with a running multiplexer server
imgcat <file>Output an image to the terminal
ls-fontsDisplay information about the fonts in use
show-keysShow the current key assignments
set-working-directoryTell the terminal the current working directory, for shell integration
recordRecord a terminal session as an asciicast
replayReplay an asciicast
shell-completionEmit a completion script for bash, zsh, fish, elvish or PowerShell

Talking to a running multiplexer

thinkterm cli addresses a server that is already running — the one behind your GUI window, or a background mux server. Because the multiplexer can address any pane across windows, Threads and connected clients, these commands reach sessions you are not currently looking at.

Finding things

CommandWhat it does
listList windows, tabs and panes
list-clientsList connected clients
get-pane-directionReport the pane in a given direction

Creating and destroying

CommandWhat it does
spawnStart a new tab or window
split-paneSplit an existing pane
move-pane-to-new-tabMove a pane out into a tab of its own
kill-paneClose a pane

Moving around and resizing

CommandWhat it does
activate-paneFocus a pane
activate-pane-directionFocus the pane in a direction
activate-tabFocus a tab
adjust-pane-sizeResize a pane
zoom-paneZoom a pane to fill its tab

Text in and out

CommandWhat it does
send-textWrite text into a pane, as if typed
get-textRead the text currently on a pane's screen

Naming and infrastructure

CommandWhat it does
set-tab-titleRename a tab
set-window-titleRename a window
rename-workspaceRename a workspace
agentQuery agent status. Read-only today
tlscredsObtain TLS credentials
proxyStart an RPC proxy pipe

Output can be requested as a table or as JSON where a command produces a listing.

Two programs in two panes can talk to each other

send-text and get-text are enough to let one program drive another, with no changes to either of them:

Program A ──send-text──►  Program B's terminal input
                          B does the work and prints a response
Program A ◄──get-text───  reads the result back

Anything interactive can take part — a coding assistant, a shell script, a REPL. The pane is the interface, so nothing has to be built for this specifically.

Today the exchange happens by injecting terminal input, which means there is no message identity, no structured response, and completion has to be polled for. A more structured protocol is under design.

  • Agent Status — what cli agent reports on
  • TUI — the workspace in a plain terminal