Terminal Module

Multi-terminal overlay with tiled/stacked layouts and automatic repo context switching

Overview

The Terminal module provides a full-featured terminal overlay that can be accessed from any module. It supports:

  • Multiple concurrent terminal sessions (up to 4 tiled or 6 stacked)
  • Two layout modes: tiled (grid) and stacked (main + sidebar)
  • Automatic repository context switching when focusing terminals
  • Pop-out terminals to separate windows
  • Persistent tmux-backed sessions
  • File path drag-and-drop from the file tree

Accessing the Terminal

Open the terminal overlay using: - Click the Terminal icon in the module switcher (left side) - The overlay appears on top of your current module (Code, Browser, etc.)

Layout Modes

Tiled Layout

Arranges terminals in a grid: - 1 terminal: Full screen - 2 terminals: Side by side (or stacked with vertical split) - 3 terminals: One large + two small - 4 terminals: 2x2 grid

Toggle split direction (horizontal/vertical) with the split button in the toolbar.

Stacked Layout

Main terminal on one side with smaller terminals stacked on the other: - Main terminal takes ~50% of width - Remaining terminals stack vertically - Toggle which side the main terminal appears on

Switch between layouts using the layout toggle button in the toolbar.

Repository Context Switching

When you focus a terminal in the overlay, the global repository context automatically switches to match that terminal’s repository. This means:

  • The file tree updates to show the focused terminal’s repo
  • The top bar reflects the new repository selection
  • All module state syncs to the new repo context

This allows you to quickly switch between projects by clicking on different terminal windows.

Toolbar

Button Description
+ Add new terminal (shows count: X/4 or X/6)
Split Toggle horizontal/vertical split (tiled mode, 2+ terminals)
Side Toggle main terminal left/right (stacked mode, 2+ terminals)
Search Open search bar (Ctrl+F)
Layout Switch between tiled and stacked layouts

Terminal Pane Features

Each terminal pane has:

  • Header: Shows terminal name and action buttons
  • Client badge: Shows connected client count (for shared sessions)
  • Find: Open search panel to search terminal output
  • Pop-out: Open terminal in a separate window
  • Close: Remove terminal from the layout
  • Focus border: Blue border indicates the currently focused terminal

Search through terminal output in the visible buffer.

  • Click the Find button in a terminal pane header
  • Press Cmd+F (Mac) or Ctrl+F (Windows/Linux)
  • Use the search button in the terminal overlay toolbar (searches all terminals)

Search Panel

When search is open, a search bar appears below the terminal header:

  • Type to search - matches are highlighted in the terminal as you type
  • Press Enter or click to go to next match
  • Press Shift+Enter or click to go to previous match
  • Press Escape or click X to close search

Search Features

  • Searches visible content and recent scrollback
  • Match highlighting with yellow for active match, darker yellow for other matches
  • Works in both terminal overlay and code module split terminal

tmux Search (Full Scrollback)

The built-in search only accesses the visible buffer. To search through tmux’s full scrollback history:

  1. Press Ctrl+B then [ to enter tmux copy-mode
  2. Press ? to search backwards (or / to search forwards)
  3. Type your search term and press Enter
  4. Press n to find next match, N for previous match
  5. Press q to exit copy-mode

This gives you access to tmux’s complete scrollback buffer (typically 2000+ lines).

Keyboard Shortcuts

Shortcut Action
Cmd/Ctrl+F Open search in focused terminal
Enter Next search match
Shift+Enter Previous search match
Escape Close search
Ctrl+Shift+T Add new terminal

File Drag-and-Drop

Drag files from the file tree into a terminal to insert the file path: - Paths are automatically escaped for shell use - Works with the code module’s file tree - Also supports dragging files from Finder (macOS)

Pop-out Windows

Click the pop-out button to open a terminal in a separate window: - Window reconnects to the same tmux session - Multiple windows can view the same session - Client count badge shows how many are connected

Toggleable Features

Access these features via Settings > Features > Terminal:

Feature Default Description
Clickable File Paths On Click file paths in terminal output to open them in the editor
Copy on Select Off Automatically copy text to clipboard when selected
Right-Click Paste On Paste from clipboard on right-click
Bell Sound Off Play a sound when the terminal bell character is received
Shared Terminal Sessions On Allow sharing terminal sessions with collaborators (experimental)

Settings

Terminal settings are available via Settings > Terminal. Changes apply immediately.

Appearance

Setting Options Description
Theme Dark, Light, Monokai, Solarized Dark Terminal color scheme
Font Family Menlo, Monaco, Consolas, Fira Code, JetBrains Mono, Source Code Pro, Ubuntu Mono, Courier New Monospace font for terminal text
Font Size 10-24px Size of terminal text
Line Height 1.0-2.0 Spacing between lines
Cursor Style Block, Underline, Bar Shape of the cursor
Cursor Blink On/Off Whether the cursor blinks

Overlay Indicator

The terminal overlay can show a colored border to indicate it’s active:

Setting Options Description
Show Terminal Border On/Off Display a colored border around the terminal
Border Color Custom or preset (Amber, Blue, Green, Red, Purple, Cyan, Pink, White) Color of the overlay border
Border Width 1-6px Thickness of the overlay border

Behavior

Setting Range Description
Scrollback Buffer 1,000-50,000 lines How many lines of history to keep
Bell Sound On/Off Play audio on terminal bell
Copy on Select On/Off Auto-copy selected text to clipboard
Right-Click Paste On/Off Paste clipboard contents on right-click

Editor Integration

Setting Options Description
Preferred Terminal Editor None (use GUI), Vim, Neovim, Emacs, Nano Editor to use when opening files from terminal

If set to “None”, clicking a file path opens it in TeamIDE’s built-in editor.

CLI Tool Mounting

When using Docker containers, you can mount CLI tools from your host system into containers. This allows tools like the Claude CLI, GitHub CLI, or cloud credentials to work inside containers.

Accessing Tool Mounting

  1. Open the Terminal module
  2. Look for the Tools section in the right panel
  3. Click Detect Tools to scan for available tools on your system

Available Tools

Tool Description
Claude CLI Anthropic Claude Code CLI for AI-assisted development
GitHub CLI GitHub CLI credentials (gh)
Docker Socket Docker socket for container management
AWS Credentials AWS credentials and config
Google Cloud Google Cloud Platform credentials
Kubernetes Config Kubernetes cluster configuration
SSH Keys SSH keys and config for remote access

How It Works

  1. Click Detect Tools to find available tools on your system
  2. Toggle on the tools you want to mount
  3. Click Restart Container to apply changes
  4. The tools are now available in your container terminal

Note: Changes require a container restart to take effect.

Changelog

Date Change
2026-02-02 Documentation audit: add toggleable features, complete settings documentation, add CLI tool mounting, remove internal component paths
2026-02-02 Add terminal search with scrollback buffer support
2026-02-02 Refactor CodeMain to use TerminalPane for consistent UI
2026-02-02 Add automatic repo context switching on terminal focus
2026-02-02 Fix terminal pane focus border visibility