Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Simply Another TerminalNew to Visual Studio Code? Get it now.
Simply Another Terminal

Simply Another Terminal

Edoardo Polito

|
1 install
| (0) | Free
Run routine shell commands in a compact terminal panel
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Simply Another Terminal

Simply Another Terminal runs routine shell work in a compact VS Code panel. Claude and Codex stay on native editor terminals, while git, npm, sls, uv, and similar commands use an independently sized terminal surface.

The extension targets macOS and owns one interactive shell process per terminal entry. It uses xterm.js with WebGL acceleration, automatic renderer fallback, and the active VS Code terminal colors.

Usage

Run Simply Another Terminal: Reveal Terminal from the Command Palette. The command focuses the SAT bottom-panel container. Hiding and revealing the panel keeps every terminal process and scrollback buffer alive.

The plus action adds and selects a terminal in the active workspace. The trash action terminates and removes only the selected terminal, then selects the nearest remaining entry. Open in Simply Another Terminal appears on Explorer folders and adds a selected terminal in that directory.

The 47 px right-side strip shows one icon per terminal. Selecting an icon swaps the visible renderer without rebuilding it. Hover text shows the immutable launch-folder name, process identifier, absolute launch path, and exit state. Deleting the last terminal leaves an empty panel where plus can create another.

The process starts after the renderer reports a nonzero terminal grid. It uses the active editor's workspace folder, then the first workspace folder, then the user's home directory. The Extension Host environment is inherited with terminal.integrated.env.osx applied on top. The process receives the same terminal identity and true-color capability values expected by VS Code-aware shell startup files.

The default shell comes from SHELL and falls back to /bin/zsh on macOS. The default -l argument starts a login shell, so normal zsh startup files and existing shell-owned direnv hooks remain active.

Each terminal supports keyboard input, ANSI and true-color output, live resize, selection copy, clipboard paste, HTTP and HTTPS links, independent scrollback, and explicit restart after exit. Shell failures affect only their terminal and also appear in the Simply Another Terminal output channel.

Settings

  • simplyAnotherTerminal.fontSize defaults to 12 and is independent from terminal.integrated.fontSize.
  • simplyAnotherTerminal.fontFamily overrides the renderer font. An empty value inherits terminal.integrated.fontFamily, then falls back to monospace.
  • simplyAnotherTerminal.shellPath overrides the shell executable.
  • simplyAnotherTerminal.shellArguments defaults to ["-l"].

Typography and theme settings apply to the renderer while it is open. Shell path and argument changes apply on the next explicit restart.

Cursor visibility, cursor style, cursor width, ANSI contrast, font weights, letter spacing, line height, bold color behavior, and scrollback follow the corresponding terminal.integrated settings. Only the configured SAT font size remains independent by default.

Limits

This surface is a webview terminal backed by node-pty. It is not a native vscode.Terminal and does not provide native terminal tabs, command decorations, command navigation, accessibility integration, persistence, or native terminal integrations. VS Code extensions that react to native terminal creation, including automatic Python environment activation, do not run for this surface. Detected and extension-contributed terminal profiles are not copied automatically because the public profile contract does not expose the resolved default profile.

Terminal names and paths stay tied to their launch directory and do not change after cd. The extension does not provide splits, drag reordering, terminal renaming, or session persistence across reloads. Windows and Linux process behavior are outside its supported platform contract.

Development

Run commands from simply-another-terminal:

  • npm install installs the pinned runtime and quality dependencies.
  • npm run quality:static runs typed linting, formatting, architecture, and dead-code checks.
  • npm run typecheck checks Extension Host and browser TypeScript contracts.
  • npm run test:unit compiles and runs focused behavior tests.
  • npm run test:extension activates the extension in an Extension Host and requires output from a real zsh process.
  • npm run package:validate creates and inspects the VSIX contents, including executable Darwin spawn helpers.
  • npm run audit:dependencies rejects moderate or higher dependency vulnerabilities.
  • npm run check runs the sandbox-runnable local check.
  • npm run check:full adds the Extension Host, package validation, and native helper gates, which run outside the sandbox.

src/extension.ts composes lifecycle ownership. src/configuration.ts validates settings and starting-directory selection. src/protocol.ts validates renderer operations. src/process.ts owns node-pty. src/terminalCollection.ts owns terminal membership and selection. src/terminalView.ts owns the webview and ordered host delivery. Browser-only terminal retention and WebGL fallback stay under src/webview/.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft