Terminal

Zync gives you a full xterm 6 terminal per connection — local shells and remote SSH sessions — with WebGL-accelerated rendering, multiple tabs, in-buffer search, and rich keyboard shortcuts.

Renderer and performance

Zync uses xterm.js 6 with a GPU-accelerated WebGL renderer when supported, falling back to the DOM renderer automatically. Terminal colors come from your active theme; appearance options live in Settings → Appearance → Terminal while shell and behavior options live in Settings → Terminal.

  • WebGL — Lower CPU use during high-throughput output (logs, builds). Zync switches to DOM if WebGL is unavailable.
  • Idle suspend — Optional in Settings → Terminal: background terminal tabs can suspend the PTY after a idle timeout to reduce resource use. Tabs wake on focus.
  • Font weight — Adjustable in appearance settings for legibility on HiDPI displays.

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.

Open Terminal Here

In the File Manager, right-click any folder or the directory background and select Open Terminal Here. This opens a new terminal tab immediately navigated to that directory.

  • Local — Spawns a shell with the target folder as the CWD (Current Working Directory).
  • Remote — Connects via SSH and executes a safe cd command before presenting the prompt.

Sync Mode

Sync Mode creates a bilateral link between your File Manager and a specific Terminal session. When active:

  • FM → Terminal — Navigating to a folder in the File Manager automatically sends a cd command to the terminal.
  • Terminal → FM — (Coming soon) The File Manager follows your terminal navigation.

Note: Synced terminals are marked with a icon in the tab bar.

Session Deduplication

Zync intelligently manages your terminal sessions to prevent tab clutter. If you attempt to "Open Terminal Here" for a directory that already has an active terminal tab, Zync will simply switch focus to that existing tab instead of spawning a new one. This works across both local and remote (SSH) sessions.

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+F⌘F
New terminal tabCtrl+Shift+T⌘T
Close terminal tabCtrl+Shift+W⌘W
Command paletteCtrl+P⌘P
Increase font sizeCtrl+=⌘=
Decrease font sizeCtrl+-⌘-

For reusable commands, use Snippets with quick overlays: Ctrl+Shift+S for picker and Ctrl+Shift+` for sidebar.

Session persistence

Zync saves your workspace across restarts. Open sidebar tabs, terminal tabs per connection, and the last known working directory (when the shell emits OSC 7) are written to session.json in your data folder after meaningful changes.

  • Sidebar tabs — Connection tabs, order, and the active tab are restored on launch.
  • Terminal tabs — Multiple terminals per connection come back; SSH tabs restore as metadata and require reconnect before the PTY spawns again.
  • Working directory — Local and compatible remote shells restore CWD when OSC 7 reporting is available.

Session data stays on your machine — it is not uploaded unless you explicitly include settings in an encrypted sync collection.

Ghost suggestions

While you type, Zync can show a faint gray inline completion at the cursor — similar to fish-style autosuggest. Suggestions come from your command history and from filesystem paths on the active machine (local disk, WSL, or remote over SFTP). Ghost runs outside the shell, so it works on any connection without installing shell plugins.

Keys

  • Right arrow — Accept the full gray suggestion when one is visible.
  • Tab — Always goes to your shell for its own completion (files, commands, paths). Ghost pauses until you finish the line (Enter, Ctrl+C, or Ctrl+U).
  • Arrow Left/Right, Home, End — Pause ghost while you move the cursor; your typed text stays intact.

What it suggests

  • History — Prior commands ranked per scope. Local terminals use one pool; each SSH connection has its own — one server never leaks into another.
  • Paths — Completes directories and files for commands like cd and ls. Works on the local machine, in WSL (Linux paths, not your Windows profile), and on remote hosts.
  • Pipelines — Suggests on the command you are typing after |, &&, ;, or &.

Settings

Configure ghost in Settings → Terminal → Ghost suggestions:

  • Inline ghost text — On by default.
  • Import remote history on connect — Off by default. When enabled, seeds suggestions from the remote shell's history once per host over SFTP.
  • Native shell policyAuto (default) steps back when fish or zsh already shows inline suggestions; choose Always or Off to override.
  • History and Filesystem providers — Toggle command history vs path completion independently.

Privacy: Zync does not store or suggest passwords, passphrases, or similar sensitive input as ghost text. Suggestions pause while hidden input is active.

Ghost suggestions are skipped when the terminal tab is hidden. The Tab suggestion menu from older builds is removed — completions are inline only.

Search

Press Ctrl+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 → Terminal → 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).
  • WSL terminal won't launch — Fixed in v2.4.0. Earlier versions incorrectly passed the -i (interactive) flag to wsl.exe, which doesn't support it. Update Zync to resolve this.