Files
automaker/docs/terminal.md
SuperComboGamer ca506a208e docs: add terminal documentation
Explains terminal features including:
- Password protection and how to disable it
- Keyboard shortcuts (Alt+D, Alt+S, Alt+W)
- Theming, font size, scrollback
- Architecture overview
- Troubleshooting tips

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 02:00:52 -05:00

2.6 KiB

Terminal

The integrated terminal provides a full-featured terminal emulator within Automaker, powered by xterm.js.

Unlocking the Terminal

The terminal is password-protected by default. To unlock:

  1. Go to Settings (gear icon in sidebar)
  2. Navigate to the Terminal section
  3. Enter your password and click Unlock

To disable password protection entirely:

  1. Unlock the terminal first
  2. Toggle off Require password to unlock terminal
  3. The terminal will now be accessible without a password

Keyboard Shortcuts

When the terminal is focused, the following shortcuts are available:

Shortcut Action
Alt+D Split terminal right (horizontal split)
Alt+S Split terminal down (vertical split)
Alt+W Close current terminal

Global shortcut (works anywhere in the app):

Shortcut Action
Cmd+`` (Mac) / Ctrl+`` (Windows/Linux) Toggle terminal view

Features

Multiple Terminals

  • Create multiple terminal tabs using the + button
  • Split terminals horizontally or vertically within a tab
  • Drag terminals to rearrange them

Theming

The terminal automatically matches your app theme. Supported themes include:

  • Light / Dark / System
  • Retro, Dracula, Nord, Monokai
  • Tokyo Night, Solarized, Gruvbox
  • Catppuccin, One Dark, Synthwave, Red

Font Size

  • Use the zoom controls (+/- buttons) in each terminal panel
  • Or use Cmd/Ctrl + Scroll to zoom

Scrollback

  • The terminal maintains a scrollback buffer of recent output
  • Scroll up to view previous output
  • Output is preserved when reconnecting

Architecture

The terminal uses a client-server architecture:

  1. Frontend (apps/app): xterm.js terminal emulator with WebGL rendering
  2. Backend (apps/server): node-pty for PTY (pseudo-terminal) sessions

Communication happens over WebSocket for real-time bidirectional data flow.

Shell Detection

The server automatically detects the best shell:

  • WSL: User's shell or /bin/bash
  • macOS: User's shell, zsh, or bash
  • Linux: User's shell, bash, or sh
  • Windows: PowerShell 7, PowerShell, or cmd.exe

Troubleshooting

Terminal not connecting

  1. Ensure the server is running (npm run dev:server)
  2. Check that port 3008 is available
  3. Verify the terminal is unlocked

Slow performance with heavy output

The terminal throttles output at ~60fps to prevent UI lockup. Very fast output (like cat on large files) will be batched.

Shortcuts not working

  • Ensure the terminal is focused (click inside it)
  • Some system shortcuts may conflict (especially Alt+Shift combinations on Windows)