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 (
$SHELLon 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
cdcommand 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
cdcommand 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:
| Action | Linux / Windows | macOS |
|---|---|---|
| Copy | Ctrl+Shift+C | ⌘C |
| Paste | Ctrl+Shift+V | ⌘V |
| Search in buffer | Ctrl+F | ⌘F |
| New terminal tab | Ctrl+Shift+T | ⌘T |
| Close terminal tab | Ctrl+Shift+W | ⌘W |
| Command palette | Ctrl+P | ⌘P |
| Increase font size | Ctrl+= | ⌘= |
| Decrease font size | Ctrl+- | ⌘- |
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
CWDwhen 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
cdandls. 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 policy — Auto (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
lessor using progress flags (-q) to minimize data transmitted per keystroke. - If the terminal lags during high-throughput output (e.g.
catof 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. Usefileto check types first, orhexdumpfor binary inspection.
Troubleshooting
- Terminal shows garbled characters — The remote locale may not be set. Run
export LANG=en_US.UTF-8or add it to your~/.bashrc/~/.zshrc. - Colors look wrong — Ensure your remote shell sets
TERM=xterm-256color. Addexport TERM=xterm-256colorto 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
resizeoreval $(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 towsl.exe, which doesn't support it. Update Zync to resolve this.