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.
What you see
Section titled “What you see”- The project pane, a quarter of the width: the project’s sections, Agents, Worktrees, Docs, Plans and Code, in the order
tide.section_ordersays. 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:
wdx tideTIDE 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.
How it behaves
Section titled “How it behaves”- 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 tideopens 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
Altonly with “Use Option as Meta key” turned on. - Colors come from the
tide.themesetting, its own dark palette; with color off it paints none. - No JSON.
wdx tideis interactive by nature, so--jsonfails withusage: scripts use the other commands.
On another node
Section titled “On another node”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.
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 iswdx 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_IDis set, as for an agent wdx runs, it fails withremote_not_for_agents. - Only that node: its terminals are shells there, where
wdxis 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.
Sessions into this node
Section titled “Sessions into this node”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.
Commands
Section titled “Commands”| Command | What it does |
|---|---|
wdx tide | Work in the terminal IDE: a project, an agent and terminals in one window |