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
$SHELLwith node-pty. - Remote SSH. AASC runs the system
ssh -twith your port, key anduser@host. The host key is accepted the first time you connect.GET /api/ssh-keyslists 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,codexor 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_KEYfor Claude andOPENAI_API_KEYfor Codex. - Enable Remote Control. Claude only. It runs
/remote-controlwith 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
--modeland--effortlaunch 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:
- It buffers the terminal output (up to 4096 bytes) and strips ANSI escape sequences.
- After 50 ms of silence, it checks whether the last line ends with
$,#,%or>. - 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:
- The terminal is created with the
AGENT_MANAGER_TERMINAL_IDenvironment variable. For SSH and tmux, AASC exports it in the launch command, because SSH does not pass environment variables on. - The hook script reads this variable.
- Hook events carry it as
agent_terminal_id. - 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.