Command Line
Documentation in progress
Some sections are still incomplete.
Everything ThinkTerm does from a shell goes through one binary, thinkterm.
thinkterm --helpSubcommands
| Command | What it does |
|---|---|
start | Start 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 |
ssh | Establish an SSH session |
serial | Open a serial port |
cli <subcommand> | Interact with a running multiplexer server |
imgcat <file> | Output an image to the terminal |
ls-fonts | Display information about the fonts in use |
show-keys | Show the current key assignments |
set-working-directory | Tell the terminal the current working directory, for shell integration |
record | Record a terminal session as an asciicast |
replay | Replay an asciicast |
shell-completion | Emit 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
| Command | What it does |
|---|---|
list | List windows, tabs and panes |
list-clients | List connected clients |
get-pane-direction | Report the pane in a given direction |
Creating and destroying
| Command | What it does |
|---|---|
spawn | Start a new tab or window |
split-pane | Split an existing pane |
move-pane-to-new-tab | Move a pane out into a tab of its own |
kill-pane | Close a pane |
Moving around and resizing
| Command | What it does |
|---|---|
activate-pane | Focus a pane |
activate-pane-direction | Focus the pane in a direction |
activate-tab | Focus a tab |
adjust-pane-size | Resize a pane |
zoom-pane | Zoom a pane to fill its tab |
Text in and out
| Command | What it does |
|---|---|
send-text | Write text into a pane, as if typed |
get-text | Read the text currently on a pane's screen |
Naming and infrastructure
| Command | What it does |
|---|---|
set-tab-title | Rename a tab |
set-window-title | Rename a window |
rename-workspace | Rename a workspace |
agent | Query agent status. Read-only today |
tlscreds | Obtain TLS credentials |
proxy | Start 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 backAnything 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.
Related
- Agent Status — what
cli agentreports on - TUI — the workspace in a plain terminal
