Skip to content
AASC
Documentation pages

Terminal & SSH

Creating terminals, managing PTY sessions, and terminal features.

Creating a Terminal Session

Open the New Terminal Session form. Click + in the session panel's strip, or + NEW on the empty LIVE page. The folder icon next to the + relaunches a recent folder in one click.

Connection Types

The form starts a local terminal. It has no fields for SSH or tmux. The server still supports these types through POST /api/terminals, and it uses them to bring back SSH sessions from a saved workspace.

  • Local. AASC starts your $SHELL with node-pty.
  • Remote SSH. AASC runs the system ssh -t with your port, key and user@host. The host key is accepted the first time you connect. GET /api/ssh-keys lists the keys in ~/.ssh/.
  • tmux attach. AASC runs tmux attach -t 'session'.
  • tmux new. AASC wraps the command in tmux new-session -s 'claude-name' 'command'. The session name is made up for you.

Configuration Fields

  • Working Directory (required). It has a history dropdown and a Browse button. The default is the folder you used last, or ~.
  • Command (required). It runs in the working directory. Use claude, codex or any command. The default is the command you used last.
  • Session Title. Optional. If you leave it empty, AASC gives the session a name for you.
  • Room. Optional. The default is no room.
  • Central session. Off, Global, This room or This project. See Central Sessions.
  • API Key. An optional override for this session. It sets ANTHROPIC_API_KEY for Claude and OPENAI_API_KEY for Codex.
  • Enable Remote Control. Claude only. It runs /remote-control with a name after Claude starts. A second checkbox turns it on for future Claude sessions.
  • Model and Effort Level. Claude only. The effort levels are low, medium, high, xhigh, max and ultracode. AASC passes them as --model and --effort launch flags.
  • Codex Model. Codex only. It lists the models your Codex account can use.
  • Commands Terminal. An extra shell tab for manual commands in the same folder.

When the command starts with claude, AASC adds -n with the session title, so the title also shows in Claude. AASC also answers Claude's "Yes, I trust this folder" prompt for you.

Terminal Features

xterm.js Integration

Each terminal is a full xterm.js instance with these add-ons:

  • @xterm/addon-fit: resizes the terminal to its container.
  • @xterm/addon-unicode11: correct widths for wide characters.
  • @xterm/addon-canvas: the renderer. It keeps text selection correct for Chinese, Japanese and Korean text.

Links are clickable. A web link opens in your browser. A file path opens a small chooser: open in the app, open with your system app, or reveal it in your file manager.

Select text in the terminal to open an Explain or Translate menu. It runs in a floating AI session. The sparkle button in the toolbar turns this off for a session.

The toolbar also has a theme picker, Send Escape, Paste, Scroll to bottom, Auto-scroll, Refresh, Clear output, Clone, Fork, Restart session, Reconnect and Pop out. Some of these show only when they apply.

Terminal Themes

The theme picker offers Auto and 8 named themes. The choice is remembered per session.

  • Auto: follows the dashboard theme. This is the default.
  • Default, Dark, Monokai, Dracula, Solarized-dark, Nord, Windows-xp and Github-dark.

Output Buffer

Each terminal keeps a replay buffer on the server. When another browser tab or device opens the terminal, it gets the buffer first, so you see earlier output without running anything again.

The default is 1 MB. Change it in Settings, ADVANCED, Terminal. The range is 0.25 to 32 MB. A new size applies to terminals created afterwards. The same page sets how many lines of live scrollback each open terminal keeps in memory. The default is 5,000 lines.

Fullscreen Mode

Click the fullscreen button, or press Alt+F11. Press it again to exit. You can rebind the shortcut in Settings.

Claude Code's fullscreen mode

AASC sets CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 for the terminals it starts. Without it, Claude Code's fullscreen display takes over mouse tracking and you could not select text. If you want fullscreen mode back, set CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=0 in your shell profile.

Shell-Ready Detection

Before sending the launch command, the server waits for the shell prompt:

  1. It buffers the terminal output (up to 4096 bytes) and strips ANSI escape sequences.
  2. After 50 ms of silence, it checks whether the last line ends with $, #, % or >.
  3. Local timeout: 2 seconds. Remote SSH timeout: 10 seconds.

If the timeout ends first, the command is sent anyway and a warning is logged.

Session Linkage

When you create a terminal and launch Claude or Codex inside it, AASC links the session to the terminal:

  1. The terminal is created with the AGENT_MANAGER_TERMINAL_ID environment variable. For SSH and tmux, AASC exports it in the launch command, because SSH does not pass environment variables on.
  2. The hook script reads this variable.
  3. Hook events carry it as agent_terminal_id.
  4. The server matches the hook to the terminal by that id.

This lets the detail panel show the terminal output and the session's data side by side. See Session Management for the full matching order.

Prompt Queue

The QUEUE tab in the detail panel stages prompts for a session. A compact queue also sits under the terminal. The queue is stored on your computer and is shared with your other devices.

  • Add. Type in the compose row and click Add. The paperclip, paste and drag and drop attach images and text files.
  • Types. An item is once, loop (every interval) or schedule (at a time). EDIT opens an editor where you can add steps before and after the main prompt.
  • Send. SEND sends a plain one-time item right away. NOW starts a looped, scheduled or chained item right away.
  • Auto-send. This switch is per session and on by default. When it is on, the next item is sent when the session is idle, waiting or waiting for input.
  • Auto-enter. This switch is per session and on by default. When it is on, AASC presses Enter after typing the prompt. When it is off, the text is only typed.
  • Reorder. Drag an item by its grip, or use the up and down arrows.
  • Move. MOVE sends an item to another session's queue.

AASC holds a queue while you have stopped the last turn with Esc, and while subagents or background shells still run. A Resume button appears. Loops and schedules run in the dashboard, so they pause when no dashboard window is open.

Terminal Limits

AASC allows at most 50 sessions at once. A Commands Terminal does not count against the 50. There is also a limit of 130 terminals in total. At the limit, AASC refuses new terminals with a message. Kill a session you no longer need to free a slot.

Resume & Reconnect

When a session ends, click Resume in its control bar. AASC types a line like claude --resume 'session-id' || claude into the old terminal if it is still open, or into a new terminal in the project folder. For Codex the line is like codex resume 'session-id' || codex. The new session links back to the original card, and the earlier prompts stay in the CONVERSATION tab.

If the conversation cannot be resumed, a fresh agent starts in the same card. AASC does not fall back to --continue, because that could pick up another conversation in the same folder.

Reconnect opens a new terminal for a session whose terminal ended. Restart session quits the agent and reconnects the same session in a fresh terminal. It keeps the card, id, name, model, effort and permission mode. See Session Management.