Skip to Content
WorkspaceTerminal

Terminal

The terminal brings full shell access directly into Blueberry with multi-tab support, session persistence that survives network interruptions, and smart integrations.

Multi-Tab Terminal

Run multiple terminal sessions with drag-and-drop tab management:

Tab Features

  • Create tabs - Cmd+T opens a new terminal session
  • Rename tabs - Double-click tab name
  • Reorder tabs - Drag tabs to rearrange
  • Tab indicators - Green pulsing dot shows running server
  • Startup commands - Configure commands to auto-run when tab opens

Auto-Naming

  • Tabs automatically rename to “Server” when a dev server is detected
  • Tabs rename to the agent name when an AI agent is detected (see below)
  • Manual renames are preserved

Split Panes

Split terminal tabs into multiple groups with tmux-style horizontal and vertical splits.

Creating Splits

  • Horizontal split - Divide the terminal side by side
  • Vertical split - Stack terminals top and bottom
  • Nested splits - Splits can be nested recursively for complex layouts

Working with Split Groups

Each split group has its own tab bar and active session:

  • Drag tabs between groups - Move terminal sessions across split panes
  • Focused group - Keyboard shortcuts (Cmd+T, Cmd+number) target the currently focused group
  • Auto-close - Empty groups close automatically when other groups exist
  • Resize - Drag the handle between groups, or double-click to reset to 50/50

Split layouts persist per workspace, surviving project switches and restarts.

AI Agent Detection

Blueberry automatically detects AI coding agents running in terminal tabs:

Supported Agents

  • Claude Code - Anthropic’s coding agent
  • Codex - OpenAI’s coding agent
  • Gemini CLI - Google’s coding agent
  • OpenCode - Open-source coding agent

How It Works

Blueberry scans child processes of each terminal session to detect known agent binaries. When an agent is detected:

  • The tab automatically renames to the agent name (e.g., “Claude”)
  • An agent icon appears on the tab
  • Both clear when the agent process exits

Session Persistence

Terminal sessions survive network interruptions, laptop sleep, and browser refreshes:

How It Works

  • 30-minute grace period - PTY processes stay alive after disconnect
  • 50KB output buffer - Recent output replayed on reconnection
  • Heartbeat monitoring - Server detects stale connections via ping/pong

Reconnection

  • Exponential backoff: 1s → 2s → 4s → 8s → 16s → 30s (max 10 attempts)
  • Yellow spinner during reconnection
  • Attempt counter: “Reconnecting (attempt 3/10)”
  • Reload button after max attempts

Cmd+click on file paths and URLs in terminal output:

  • Absolute paths: /Users/foo/project/src/file.ts:42:10
  • Relative paths: ./src/file.ts, src/file.ts
  • With line numbers: file.ts:42 or file.ts:42:10
  • Opens file in editor at specified line
  • Full URLs: https://example.com
  • Localhost: localhost:3000, 127.0.0.1:8080
  • Opens in preview browser panel

Server Auto-Detection

Blueberry automatically detects when you start a dev server:

Detection Process (macOS)

  1. Monitors child processes every 2 seconds
  2. Scans for listening ports via lsof
  3. Verifies HTTP server with HEAD request
  4. Notifies via WebSocket message

When Server Detected

  • Tab auto-renames to “Server”
  • Green pulsing indicator appears on tab
  • Preview browser can auto-navigate to server URL

Terminal Settings

Terminal Settings
Configure the name and startup command for this terminal tab.
This command will run automatically when the project opens.

Per-Tab Settings

  • Tab name (with manual override protection)
  • Startup command (auto-runs on tab open)

Global Settings

  • Font size (adjustable)
  • Scrollback buffer: 5000 lines

Keyboard Shortcuts

ActionShortcut
New terminal tabCmd+T
Close current tabCmd+W
Line continuationOption+Enter
Delete to line startCmd+Backspace
Delete wordOpt+Backspace
Jump to line start/endCmd+Left/Right
Jump wordOpt+Left/Right
Open link in system browserCmd+Shift+click
Last updated on