Skip to content

Terminal tab

A terminal tab is a command-line terminal opened in the tab bar: from the tab bar down, the whole page is a character grid running the shell you picked. This page covers how to open a terminal tab, what works inside it, and how it divides responsibilities with file tabs.

Terminal tabs open on Windows, macOS and Linux alike, and they are a paid feature that requires an active license.

Opening a terminal tab

Both entry points sit in a right-click menu, and both are flyouts: hovering one lists the shells installed on this machine, and clicking a shell opens the tab.

Menu entryWhere you right-clickWhich folder the terminal starts in
Open terminal tab here ▸Empty space in the file areaThe folder you were looking at when you right-clicked
New terminal tab ▸Empty space on the tab barThe folder of the most recently used file tab in that group

The candidates come in a fixed order, the first entry being the default:

SystemCandidates
WindowsPowerShell 7, Windows PowerShell, cmd, Git Bash, and then each WSL distribution
macOS / LinuxDefault shell (the one $SHELL points at), then bash, zsh and fish

Shells installed through Homebrew on macOS are found as well — those live outside the system's default search path, where a double-clicked application usually cannot see them. When no shell can be found at all, the parent entry shows greyed out with a tip reading No shell found.

When the starting folder is unavailable, tessoa falls back step by step: the folder the menu offered, then the group's most recent file tab folder, then your home folder. The menu entry is not greyed out over an unavailable folder. The starting folder is fixed the moment you right-click; navigating elsewhere while the menu is open does not change the result.

Note

Without an active license the two entries show greyed out, but they still respond to a click. The tip reads Terminal tabs require an active license; clicking raises a toast with an Unlock button, and clicking Unlock opens the About › License page. Terminal tabs that already exist are not affected by a license running out; restarting the terminal and session restore keep working.

Right-clicking a file or folder offers no such entry. The background menu holds a separate Open in Terminal entry: it opens a system terminal window outside tessoa, which is a different thing from a terminal tab. On Windows it is the same shell flyout with the same candidates, only its result is an external window; on macOS and Linux it stays a single entry.

The not-running state

While the grid is empty, the few lines in the middle of the screen are themselves clickable (a background appears under the pointer), and pressing any key does the same as clicking. The three situations show different text:

SituationWhat the middle of the screen shows
Restored with the sessionClick or press any key to start, with Working directory: … on the line below
The process endedProcess ended (exit code N) (just Process ended when no code is available), then Click or press any key to restart
Starting failedThe reason in red — No shell found, Working directory no longer exists (common after unplugging a drive or deleting the folder and then restoring the session), or Failed to start: followed by the system's reason — then Click or press any key to retry

When the process ends with output still on screen, this block is not shown, so it does not cover what you are about to read. To restart then, use Restart Terminal in the tab's right-click menu; after one Clear Buffer, the block appears again.

Working inside the terminal

  • Input methods work: the composition is drawn under the cursor cell, and text is sent to the shell only after you confirm it; unconfirmed text does not enter the command line.
  • Mouse selection: press and drag on the grid to select; the cursor over the grid is a text cursor. A selection follows its content — after further output pushes those lines into the scrollback, the selection stays on the same text. Dragging past the top or bottom edge scrolls the history line by line.
  • Scrollback scrollbar: a bar sits at the grid's right edge; drag the thumb, or click empty track to jump to that position; the wheel scrolls as usual.
  • Clear Buffer: an entry in the right-click menu. It does not send cls to the shell and works while a program is running; it keeps the line the cursor is on and empties the scrollback.

Double-clicking to select a word, and dropping a file to insert its path, are not implemented yet.

The terminal's context menus

A terminal tab has two right-click menus of its own. On the character grid:

Menu entryWhat it does
CopyCopies the selected text; shown greyed out with no selection
PasteSends the clipboard's text to the shell
Select AllSelects everything, including the scrollback
Clear BufferClears the screen and the scrollback, keeping the cursor's line

Right-clicking the terminal tab itself offers, besides the closing family, Restart Terminal (restart with the same shell) and Restart with Shell ▸ (the same shell flyout, restarting with a different one). This menu has no bookmark entries: a terminal tab has no path to bookmark.

Shortcuts inside the terminal

The terminal page has a key table of its own. The table cannot be changed, and it does not appear on the Keyboard Shortcuts page. On Windows and Linux it is this one:

KeyAction
Ctrl+CWith a selection: copy and clear the selection; with none: the interrupt signal
Ctrl+VPaste
Ctrl+Shift+C / Ctrl+Shift+VCopy (keeping the selection) / paste
Ctrl+Insert / Shift+InsertCopy / paste
Ctrl+Shift+ASelect all
Ctrl+Shift+TNew tab (Ctrl+T belongs to the shell here)
Shift+PageUp / Shift+PageDownPage through the scrollback

macOS has a table of its own, following Terminal.app's conventions:

KeyAction
+CCopy, keeping the selection
+VPaste
+ASelect all
Ctrl+CAlways the interrupt signal, selection or not
Shift+PageUp / Shift+PageDownPage through the scrollback

Any combination not in that table goes to the global shortcuts, so +T for a new tab and +W for closing keep working inside a terminal tab; no Ctrl combination belongs to tessoa there, and they all go to the shell.

On Windows and Linux, global shortcuts fall into two kinds inside the terminal: the Ctrl+Shift combinations (opening Settings, switching tabs, and so on) keep working, so there is always a way out of the page; everything else — bare keys, F keys, Ctrl+letter — goes to the shell, so Ctrl+W or Ctrl+F no longer trigger tessoa actions here. To keep using an action inside the terminal, rebind it to a Ctrl+Shift combination on the Keyboard Shortcuts page.

Note

With Ctrl+V assigned to paste, two keys change with it. Running Vim inside the terminal, visual block mode is entered with Ctrl+Q instead; and Ctrl+Shift+A means select-all here, no longer the global Invert Selection.

Behaviour as a tab

  • The title shows shell · folder. The folder in the title is the one from creation time; cd inside the terminal does not change the title.
  • A terminal tab can be dragged to a new position, to another pane, torn off into a new window, and included in a split, the same as a file tab.
  • The session remembers it: after restarting tessoa every terminal tab is kept, but the process is not restarted automatically — what comes back is an empty grid with the block of text in the middle, and the scrollback is not saved. When the recorded shell has been uninstalled, the default one is used instead, with the folder unchanged.
  • Opening a new tab from a terminal tab (with New Tab Folder set to Match Current Tab) lands in the folder the terminal is currently in: a folder reported by the shell wins, then one read off the prompt line on screen; when neither is available (with a custom prompt such as oh-my-posh or starship, for example), it falls back to the creation-time folder.
  • A terminal tab has no address bar and no footer. The header line above the grid shows the shell name and the working directory; the line is not clickable. View switching and zooming do not apply to terminal tabs.

Division of work with file tabs

A file tab's folder and the terminal's working directory are not linked. The terminal inherits a folder once, at creation, and the two change independently from then on: navigating in a file tab does not cd the terminal, and cd in the terminal does not move any file tab.

Dropping files onto a terminal tab is refused: no file is copied in, and no path is inserted into the command line.

User docs for tessoa