Terminal

Zync gives you a full XTerm.js terminal per connection — local shells and remote SSH sessions — with multiple tabs, in-buffer search, and rich keyboard shortcuts.

Local vs remote

  • Local — A terminal that runs on your own machine using your default shell ($SHELL on Linux/macOS, or the shell configured in Settings on Windows). Available from the Local entry in the sidebar.
  • Remote — When you open a connection tab and switch to the Terminal view, you get a full PTY session on the remote host over SSH. All input/output is streamed over the SSH connection in real time.

Multiple terminals

Each connection can have several terminal tabs running simultaneously. Click the + button in the tab bar to open a new terminal in the same connection. Tabs are preserved when you switch away — the XTerm instance stays alive in the background so you don't lose scrollback or running processes.

Closing a tab sends SIGHUP to the remote shell and terminates the PTY session cleanly.

Keyboard shortcuts

Most shortcuts can be customized in Settings → Shortcuts. Default bindings:

ActionLinux / WindowsmacOS
CopyCtrl+Shift+C⌘C
PasteCtrl+Shift+V⌘V
Search in bufferCtrl+Shift+F⌘F
New terminal tabCtrl+Shift+T⌘T
Close terminal tabCtrl+Shift+W⌘W
Command paletteCtrl+K⌘K
Increase font sizeCtrl+=⌘=
Decrease font sizeCtrl+-⌘-

Search

Press Ctrl+Shift+F (or ⌘F on macOS) to open the in-buffer search bar. Type to find matches in the current terminal's scrollback. Use Enter / Shift+Enter to navigate between results. Press Escape to close.

Appearance

All terminal appearance settings live in Settings → Terminal:

  • Font family — Any monospace font installed on your system. Defaults to the OS system mono font.
  • Font size — In pixels. Can also be changed live with Ctrl+= / Ctrl+-.
  • Cursor style — Block, bar, or underline.
  • Cursor blink — Toggle blinking cursor.
  • Line height — Spacing between lines (1.0–2.0).
  • Padding — Inner padding around the terminal canvas.
  • Scrollback — Number of lines to keep in the buffer (default 1000). Increase for long-running commands with verbose output.

Terminal colors are controlled by the active theme. See the Theme Engine docs to customize ANSI colors.

Shell configuration

Linux / macOS — Zync uses your default $SHELL for local terminals. Remote terminals use whatever shell is configured for your user on the server (set via chsh or /etc/passwd).

Windows — In Settings → General → Default Shell, choose between:

  • PowerShell — Default on modern Windows.
  • Command Prompt — Legacy cmd.exe.
  • WSL — Any installed WSL distribution (e.g. Ubuntu, Debian). Zync lists all available distros automatically.
  • Git Bash — If Git for Windows is installed.

Performance tips

  • For very slow connections, reduce terminal output by piping verbose commands through less or using progress flags (-q) to minimize data transmitted per keystroke.
  • If the terminal lags during high-throughput output (e.g. cat of large files), lower the Scrollback limit in Settings → Terminal. A smaller buffer means less DOM work for XTerm to do.
  • Avoid cat-ing binary files into the terminal — they can corrupt the XTerm buffer. Use file to check types first, or hexdump for binary inspection.

Troubleshooting

  • Terminal shows garbled characters — The remote locale may not be set. Run export LANG=en_US.UTF-8 or add it to your ~/.bashrc / ~/.zshrc.
  • Colors look wrong — Ensure your remote shell sets TERM=xterm-256color. Add export TERM=xterm-256color to your shell profile on the server.
  • Terminal is blank after connecting — The remote shell may not be sending a prompt. Try pressing Enter or check that the shell is correctly configured for the remote user.
  • Resize doesn't work — Some shells or multiplexers (tmux, screen) need to be told about the new window size. Run resize or eval $(resize) manually if needed.
  • Copy/paste not working — Make sure you're using Ctrl+Shift+C/V (not Ctrl+C/V which sends signals inside the terminal).