Skip to content

Layout and keys

wdx tide is the Terminal IDE: one window per project, in your own terminal, with every agent, worktree, doc, plan and file of the project on the left, what you open on the right, and the project’s terminals below. It is a client of the daemon, as the CLI is: quit it and everything keeps running, and it comes back as you left it.

wdx tide · shop-api
The project pane on the left, the agent pane on the right, the terminal pane below. The focused pane has the heavy green border. Click, scroll and type: it is live, and runs nothing.
  • The project pane, a quarter of the width: the project’s sections, Agents, Worktrees, Docs, Plans and Code, in the order tide.section_order says. Each is a list you move through with the arrows; a click on a heading folds it.
  • The agent pane, the rest of the width: tabs of what you opened, an agent live, a diff, a doc, a plan, a file, settings. Each tab has (-) to close it.
  • The terminal pane, a quarter of the height at the bottom: the project’s terminals, a tab each, live.
  • The status line names the project and the pane in focus, and lists the keys that work there.

Start it from anywhere; it opens on the project it showed last, or asks which:

Terminal window
wdx tide

TIDE takes very few keys for itself, as every key it takes is lost to the agents and shells in its panes.

Key What it does
Alt+← Alt+→ move the focus: the project pane, then each tab in turn
Alt+↓ Alt+↑ to the terminal pane, and back to the top pane that had the focus
Alt+Shift+← Alt+Shift+→ switch to the previous or next open project
C-] zoom the focused pane to the whole window, or back
C-\ show or hide the terminal pane, focusing it when it opens
C-q the menu: every action that applies where you are, a letter each (The menu)
C-q q quit TIDE; agents and terminals keep running
C-q \ C-q ] C-q C-q send C-\, C-] or C-q to the program in the focused pane

In the project pane, the menu’s letters work without C-q: a new agent, t new terminal, s settings, / filter, q quit. In the agent and terminal panes, keys go to the program there.

wdx tide · shop-api
C-] gives the pane you are in the whole window; C-] again puts it back. Click, scroll and type: it is live, and runs nothing.
  • The mouse works as in a terminal: a click focuses a pane, picks a row or a tab; the wheel scrolls; a double click on a pane’s title, or its [⤢], zooms it. Dragging selects text within a pane and copies it, through OSC 52 and the system’s clipboard tool. Programs that ask for the mouse, as vim does, get it inside their pane.
  • Quitting keeps everything. Agents and terminals run in the daemon, not in TIDE. The daemon also keeps TIDE’s view: the project shown, the tabs, the focus, the zoom, folds and cursors, so the next wdx tide opens where you left.
  • Live. The daemon sends TIDE every change of the project as it happens: an agent going idle or asking a question, a file changed in a worktree, a doc updated by an agent. Nothing is polled.
  • In your terminal. It runs in GNOME Terminal, Konsole, xterm and macOS Terminal.app, among others. On macOS, Terminal.app sends Alt only with “Use Option as Meta key” turned on.
  • Colors come from the tide.theme setting, its own dark palette; with color off it paints none.
  • No JSON. wdx tide is interactive by nature, so --json fails with usage: scripts use the other commands.

wdx tide --node <name> since 0.5.0 opens TIDE on another node of your account, through a session into it (Hub): that node’s projects, agents and terminals, which you type into as if you sat at it.

Terminal window
wdx tide --node desk
  • Never taken for a local one: the status line is cyan and starts with the node’s name, desk › app · project, and the window’s title is wdx tide · desk.
  • The code is asked first, in the terminal before the window opens, when no session into the node is open. Where WDX_AGENT_ID is set, as for an agent wdx runs, it fails with remote_not_for_agents.
  • Only that node: its terminals are shells there, where wdx is its own. What runs on this machine goes on, untouched.
  • Its view is kept in memory, not by either daemon: it starts on the switcher each time, and the node’s own TIDE keeps its view and tabs as they were.
  • No settings tab: the menu says settings are changed on the node itself, since a session reaches none of them.
  • A new project takes an absolute path on the node, typed, in place of the directory browser, which shows this machine’s files.
  • Copying a selection still goes to this machine’s clipboard, where you are; editing a file runs the editor on the node.
  • One TIDE per machine, whichever node it shows: a second is refused with tide_running.

When the session ends, closed on either node, by the node’s daemon restarting, idle, or remote access turned off there, a message takes the whole window and says why. Type the code to open a new session, and TIDE goes on with what it showed; or C-q to quit. A network that drops for a moment shows reconnecting to desk… in the status line first; after 30 seconds without reaching the node, the message comes.

A TIDE on this machine since 0.5.0 shows when another node has a session into it: the status line turns cyan and starts with remote: and the nodes, remote: laptop · app · project, or remote: laptop, work for two, for as long as any is open. It follows them as they open and close, never on a timer. wdx hub session list says the same from the CLI, and wdx hub session close ends one. Wrong codes other nodes tried since the last session opened show beside them, wrong codes: 3, as wdx hub status counts them.

The Sessions dialog since 0.5.0, C-q H or a click on the status line’s remote:, lists those sessions, one row per session in the order they opened: the node, when it opened, when it was last used, and when it closes unused. It follows them as the status line does, and closes itself when the last one ends. Each key asks first, y to go on, n or Esc to keep things as they are:

Key What it does
x close the session under the cursor, as wdx hub session close --id does: whoever is connected from that node is cut off at once, attaches included, and needs the code again to come back
X close every session into this node; this node’s own sessions into others stay open
D remove the node under the cursor from your account, as wdx hub node remove does: the hub cuts it off from all your nodes and its sessions close everywhere; it logs in anew to come back
↑ ↓ move the cursor
Esc close the dialog

What was done shows on the status line, closed the session with laptop or removed laptop from the account, and a failure stays in the dialog. To let no one in, turn hub.remote_access off in the settings tab, which closes every session into this node. The dialog is not in a TIDE opened with --node: the host’s sessions are not reached through a session.

CommandWhat it does
wdx tideWork in the terminal IDE: a project, an agent and terminals in one window