The interactive session

Get fluent in Tau's terminal UI — prompting, steering, the command palette, tool output, and pickers.

Running tau with no arguments opens the interactive terminal UI (TUI). This is where most work happens. This guide covers the moving parts; for the exact keys see Keyboard shortcuts.

Sending a prompt

Type into the prompt box at the bottom and press Enter to submit. The editor keeps its padded block size and background, while a single left border changes color to reflect focus, shell mode, and active runs without boxing it in. Shift+Enter inserts a newline for multi-line prompts. Tau streams the assistant’s reply above the prompt, showing tool calls as they run. In supported terminal emulators, Tau also updates the tab title: named sessions show as τ | <name>, and active runs add an animated running indicator so you can see work continuing from another tab. When a run fully settles while Tau’s terminal surface is unfocused, Tau emits a desktop notification by default on supported terminals: OSC 9 for Ghostty, iTerm2, and MinTTY, and OSC 99 for Kitty. Unknown terminals are left untouched. Set turn_notification to "bell" to let the terminal mark the tab or apply its configured bell behavior instead, or "off" to disable notifications. BEL and operating-system desktop notifications may produce sounds according to the user’s terminal and system settings; see Configuration.

Clicking anywhere in the window returns focus to the prompt, so you can scroll the transcript and keep typing without tabbing back.

If a provider request fails after retries, Tau shows the failure as an explicit error block in the transcript, using the provider’s own error message (for example server_is_overloaded details instead of a generic failure). The block includes a diagnostic log path and a reminder that the run ended. You can submit another prompt without starting a new session; empty failed provider turns are retained for diagnostics but are not replayed to the model as invalid conversation history.

Cancelling and steering a run

While the agent is working you don’t have to wait:

The command palette and slash commands

In-session commands start with /. Open the command palette with Ctrl+K to search and run them. Common ones:

The full list is in the Slash commands reference.

Running shell commands directly

You can run a shell command yourself without asking the model:

As soon as the input starts with !, the whole input and its left border turn the same amber/orange color as a tool while it is running, and the τ prompt prefix becomes a matching $, so you can tell at a glance that submitting will execute a shell command instead of messaging the model.

While typing a path after !/!!, press Tab to complete filenames from the working directory. Dot-prefixed paths such as .env and .agents/ are included.

Aliases

These commands (and the agent’s bash tool) run in a non-interactive shell, so your ~/.zshrc/~/.bashrc aliases aren’t loaded automatically. To use your own aliases, set a shellCommandPrefix — see Shell settings.

Referencing files with @

Type @ in the prompt to open file suggestions from the project tree, and insert a path like @src/app.py. Use an explicit parent-relative path such as @../ to complete files and directories outside the project root. External completion follows only the path you type instead of scanning the surrounding filesystem. Dot-prefixed content such as .env and .agents/ is included. Tau still skips known metadata and generated directories such as .git, .venv, node_modules, __pycache__, build, and dist.

Dropping files into the prompt

Drag one or more files from your file manager onto the terminal window and Tau inserts their filesystem paths into the prompt at the cursor, separated by spaces. Paths that contain spaces are quoted automatically, and any text you already typed is preserved. This works anywhere over the TUI, not just above the input box, because the terminal delivers the drop as text input.

Drops are also accepted from sources that do not give the terminal keyboard focus first, such as the macOS Dock’s Downloads stack.

Tool output

Tool calls keep a static marker in the transcript while they run: orange means in progress, green means success, and red means failure. The prompt-area activity indicator provides the run-wide animation without adding a second spinner to each tool row.

Tool results (like long read or bash output) render as compact previews so the transcript stays readable. Tau asks the model to give each bash call a brief description such as Running tests. Long or multiline calls pair that description with a short prefix taken from the real command, so model-generated text is always accompanied by deterministic command text. Short shell commands remain visible and ignore the description. Calls without a description use a deterministic fallback: multiline commands and heredocs show their first line plus a line count, inline code shows its interpreter plus a character count, and other commands over 120 characters show a shortened preview.

Toggle the exact commands and full tool output with Ctrl+O. Command compaction affects only the TUI display; execution, session history, and print-mode transcripts retain the complete command.

Markdown link hover styling underlines only the linked text, never the rest of its row. User message blocks use the same theme background as the prompt field and sidebar, with light vertical padding so they read as blocks rather than highlighted lines. This visually ties submitted prompts to the composer.

Long sessions

Tau keeps long transcripts responsive by mounting only a window of messages in the terminal at once. Your complete session remains in display state and durable history. When older or newer messages are outside the current window, a small boundary row appears; keep scrolling toward it to page through the rest of the conversation.

Paging does not summarize, delete, or compact context. Use /compact separately when you want to reduce what is sent to the model.

Picking models and themes

The sidebar

On wide-enough terminals Tau shows the session name prominently without a redundant section label, followed by active-branch turn and tool-call totals, provider-reported token usage, latest-request and session prompt-cache hit rates, estimated cost, automatic-compaction threshold, and loaded tools, skills, prompt templates, extensions, and context files such as AGENTS.md. Tool and extension names use compact comma-separated lists limited to three rendered lines. Skills and prompt templates are grouped under their resource origins (for example, ./.tau/skills, ~/.agents/skills, or ./.tau/prompts), and every loaded skill and prompt is shown. If the sidebar content is taller than the available space, scroll it to see the remaining resource groups; the Tau version mark stays pinned at the bottom. Context files use a bullet list with one path per line, limited to five entries. Truncated sections end with ...(X more) showing how many context entries are hidden. Project context paths are relative to the working directory; context loaded from the home directory starts with ~/, while other context loaded from outside the project uses its full path.

The wider, borderless sidebar uses the prompt field’s background color, bright section headings, quieter gray values, and keeps Tau’s versioned τ = 2π mark pinned to its bottom edge. Tau does not render separate top-header or shortcut-footer rows. Named sessions remain visible in the sidebar and terminal tab title; /hotkeys lists shortcuts when needed. The sidebar hides automatically when the terminal is small, while the tab title continues to identify the session.

Cumulative usage and cost cover the active branch, including history replaced by compaction. Input usage counts tokens processed on every provider request, so it can be much larger than the context used by the next request. Cost is an estimate based on provider-reported usage and configured catalog rates; the sidebar shows $N/A when Tau lacks complete pricing data.

The cache line separates the latest model request from the cumulative session. Both rates are the share of prompt tokens the provider served from its cache instead of processing again. The latest rate makes a cache miss immediately visible and, after tool use, describes the most recent model continuation. The session rate includes every request on the active branch, including the initial cold request. A low latest rate usually means something early in the request changed, such as a reloaded tool list or thinking level, or that a pause outlived the provider’s cache. Tau hides both figures for providers that do not report cache usage.

The compact status block below the prompt puts provider:model (thinking) on its first line and provider-anchored active context as used/limit on the second. When no valid provider usage exists yet, such as immediately after compaction, it shows ?/limit until a fresh response reports usage. Unlike cumulative usage, this active count describes the system prompt, tools, and active messages Tau expects to send on the next request. It can decrease after compaction while cumulative usage continues to increase. The working-directory name and model are emphasized while the parent path, Git branch, and provider use the quieter metadata color.

The sidebar appears on the right by default. It can be moved to the left or turned off entirely by setting sidebar_position in ~/.tau/tui.json — see Configuration.

Next