Windows only - macOS & Linux coming soon

The SSH client
built for real work.

zmtlabs Term combines a full SSH terminal, SFTP file manager, database editor and snippet manager into one fast, clean Electron app. No bloat. No distractions.

zmtlabs Term - prod-server
What's inside

Everything in one app

Stop switching between tools. zmtlabs Term has everything you need built right in.

SSH Terminal

Full xterm.js terminal with multi-tab support, split view and auto-reconnect. Color-code and rename tabs, recall past commands with Ctrl+R and search across all sessions with Global Search.

xterm.js Multi-Tab Split View Command History Global Search
📁

SFTP File Manager

Browse, transfer and edit files on your remote server. Preview images and PDFs, diff two files side by side, change permissions with chmod and search the entire server with one click.

Browse & Transfer File Editor Quick Preview File Diff Remote Search chmod
🗄️

Database Editor

Connect to a database on your server and browse tables, run queries and inspect data without leaving the app.

Tab-based Query Editor
💬

Snippet Manager

Save commands as snippets, organize them in groups and send them into the active terminal with Ctrl+Space. Use built-in variables like ${hostname} and ${date} to make snippets dynamic.

Ctrl+Space Groups Quick-Send Variables
🔐

App Login

The app is protected by a login screen on startup. Your credentials and host data are stored locally on your machine.

Local Storage Login Screen
🗂️

Host Management

Organize your servers in groups, import and export host configs and connect with a single click from the sidebar.

Groups Import / Export One-Click Connect

Split View

Run two SSH sessions side by side in the same window. Switch which session is in each pane without any reconnection.

Side-by-Side No Reconnect Tab Selector
🎨

Tab Colors & Quick Connect

Color-code tabs with a right-click color picker to keep track of sessions. Connect instantly with Ctrl+Shift+N and a quick user@host:port prompt.

Tab Colors Quick Connect Ctrl+Shift+N
📊

Monitor & Processes

Watch live CPU, RAM, disk usage and network throughput per SSH session. Kill processes directly from the built-in process list — works on both Linux and Windows servers.

CPU / RAM / Disk Net In/Out Process Manager Linux & Windows
Terminal

Multi-tab SSH terminal

Open as many SSH sessions as you need, each in its own tab. Every tab shows its connection status live - green means connected, yellow means connecting. Close a tab with Ctrl+W.

  • Full xterm.js terminal with color support
  • Multiple sessions open at the same time
  • New connection with Ctrl+T
  • Clear terminal output from the tab bar
  • Status indicator per tab (connecting / connected / error)
zmtlabs Term - root@web-01
root@web-01:~$ systemctl status nginx
- nginx.service - A high performance web server
Active: active (running) since 14 days ago

root@web-01:~$ git pull origin main
Already up to date.

root@web-01:~$ pm2 restart app
✓ Restarted: app [0]
SFTP

File manager as a tab

Right-click any host in the sidebar and choose "Open SFTP". The file manager opens as a new tab right next to your terminal - same window, no extra app.

  • Browse your server's directory tree
  • Upload and download files
  • Rename, delete and manage files
  • Sits in its own tab - switch back to terminal anytime
zmtlabs Term - web-01 SFTP
📁 /var/www/html/

📁 assets/
📁 uploads/
📄 index.php 4.2 KB
📄 config.php 1.8 KB
📄 .htaccess 256 B

Uploading: deploy.zip 78%

Ready to get started?

Download zmtlabs Term for Windows. Portable - no installation needed. Updates are always free.

Features

Everything you need.
Nothing you don't.

zmtlabs Term is built for developers who value speed and clarity. Currently available for Windows only.

01 - Terminal

Multi-tab SSH terminal

Open as many SSH sessions as you want, each in its own tab. Every tab tracks its connection status in real time. Close a tab with Ctrl+W, open a new one with Ctrl+T.

  • Full xterm.js terminal with color support
  • Multiple sessions open at the same time
  • Live status per tab: connecting / connected / error
  • Split View — two sessions side by side
  • Tab color picker — right-click to color-code sessions
  • Tab rename — double-click any tab title to rename it
  • Quick Connect with Ctrl+Shift+N — type user@host:port
  • Jump Host / Bastion support for tunneled connections
  • Auto-reconnect with 5-second countdown on disconnect
  • Terminal search with Ctrl+F
  • Global Search with Ctrl+Shift+F — search across all open sessions at once
  • Command History with Ctrl+R — fuzzy search every command you've sent
  • Session logging to disk — toggle the ⏺ button in the tab bar
  • Clear terminal output via the tab bar button
  • Open Terminal, SFTP or DB - all per host
zmtlabs Term - root@web-01
root@web-01:~$ uptime
14:32:01 up 42 days, load average: 0.12, 0.09, 0.08

root@web-01:~$ df -h /
Filesystem Size Used Avail Use%
/dev/sda1 40G 12G 27G 31%

root@web-01:~$
02 - SFTP

File manager as a tab

Right-click a host in the sidebar and choose "Open SFTP". The file manager opens as its own tab - same connection, same window. No second app, no second login.

  • Browse and navigate the server's directory tree
  • Upload and download files — drag & drop supported
  • Rename and delete files and folders
  • Change file permissions with chmod via the right-click menu
  • Quick Preview — view images and PDFs without downloading
  • File Diff — compare two remote files side by side
  • Remote Search — search the entire server by filename or content (Linux & Windows)
  • Right-click any file and choose Edit to open the built-in file editor
  • Syntax highlighting for 20+ languages (VS Code Dark+ theme)
  • Save directly to the server with Ctrl+S
  • Runs in its own tab alongside the terminal
zmtlabs Term - prod-server SFTP
📁 /var/www/html

📁 node_modules/
📁 public/
📄 package.json 2.1 KB
📄 server.js 8.7 KB
📄 .env 512 B

Uploading server.js 100% ✓
03 - Database

Database editor built in

Right-click a host and choose "Open DB". The database editor opens as a tab and connects to the database running on your server. Browse tables and run queries without leaving the app.

  • Opens as a tab - same workflow as terminal and SFTP
  • Browse tables and inspect data
  • Run SQL queries directly
  • Connects through your existing SSH session
zmtlabs Term - prod-server DB
SELECT * FROM users LIMIT 3;

id | name | email | role
----+---------+---------------------+------
1 | admin | admin@example.com | admin
2 | julia | julia@example.com | user
3 | dev01 | dev@example.com | dev

3 rows returned
04 - Split View

Two sessions, one window

Click the split button in the tab bar to place two terminal sessions side by side. Use the dropdown in the right pane to choose which session to show there. Sessions stay connected when you split or unsplit - no reconnection.

  • Split any two open tabs side by side
  • Switch sessions in each pane independently
  • No SSH reconnection when splitting or closing the split
  • Works with SSH terminal, local terminal and DB tabs
zmtlabs Term - Split View
root@web-01:~$ tail -f /var/log/nginx/access.log
192.168.1.5 - GET /api/status 200
192.168.1.5 - GET /api/users 200
192.168.1.9 - POST /api/auth 200
root@db-01:~$ htop
CPU: 12% MEM: 34%
PID 1421 postgres 2.1%
PID 891 nginx 0.3%
05 - File Editor

Edit remote files like in VS Code

Right-click any file in the SFTP manager and choose "Edit". The built-in editor opens the file with full syntax highlighting using the VS Code Dark+ color theme. Save with Ctrl+S - no download, no upload needed.

  • Syntax highlighting for 20+ languages
  • VS Code Dark+ color theme
  • Line numbers and cursor position in the status bar
  • Tab key inserts 2 spaces
  • Ctrl+S saves directly to the server over SFTP
zmtlabs Term - server.js
1 const express = require('express');
2 const app = express();
3
4 app.get('/api/status', (req, res) => {
5 res.json({ ok: true });
6 });
7
Ln 5, Col 28 · UTF-8 · javascript
06 - Snippets

Save commands,
send with Ctrl+Space

Save any command as a snippet and assign it to a group. Press Ctrl+Space anywhere in the app to open the snippet search, find the command you need and hit Enter to send it straight into the active terminal.

  • Save commands with a name and optional group
  • Organize snippets in named groups
  • Ctrl+Space opens the quick-search overlay
  • Press Enter to send directly into the terminal
  • Built-in variables: ${hostname}, ${username}, ${port}, ${date}, ${time}
  • Custom variables: define your own with ${varName} and enter the value at send time
  • Sidebar view for browsing and managing snippets
zmtlabs Term - Snippet Search
🔍 docker...

- Docker - Restart all containers
docker restart $(docker ps -q)

Docker - Remove stopped containers
docker rm $(docker ps -a -q)

Docker - Show logs (last 100 lines)
docker logs --tail 100 -f <name>
08 - Monitor

Live server stats in every tab

Open the Monitor panel for any SSH session to watch CPU, RAM, disk and network throughput in real time. The built-in process list lets you see what's running and kill processes without leaving the app — on both Linux and Windows servers.

  • CPU usage, RAM usage and disk usage — live
  • Network In / Out — bytes per second, per session
  • Process list — sorted by CPU or RAM
  • Kill a process directly from the list
  • Works on Linux (via /proc) and Windows (via PowerShell)
  • Per-tab — each session has its own monitor view
zmtlabs Term - Monitor
CPU ████████░░ 42%
RAM ██████░░░░ 61% 2.4 / 4 GB
Disk ███░░░░░░░ 28% 11 / 40 GB
Net ↓ 1.2 MB/s Net ↑ 340 KB/s

PID NAME CPU MEM
1421 node 8% 124 MB
2083 nginx 1% 42 MB
891 postgres 3% 210 MB
09 - Command History

Every command,
one keystroke away

Press Ctrl+R to open the Command History palette. Every command you've ever sent across all sessions is searchable here. Fuzzy-search, select and press Enter to send it into the active terminal instantly.

  • Stores up to 500 recent commands automatically
  • Fuzzy search — just start typing
  • No duplicates — each unique command is stored once
  • Press Enter to send into the active terminal
  • Works across all SSH sessions and tabs
zmtlabs Term - Command History
🔍 nginx...

systemctl restart nginx
nginx -t
tail -f /var/log/nginx/error.log
cat /etc/nginx/nginx.conf

↑↓ navigate Enter send Esc close
10 - Global Search

Search all terminals at once

Press Ctrl+Shift+F to search the scrollback buffer of every open SSH session simultaneously. Results show the matching lines grouped by session with line context — no need to switch tabs one by one.

  • Searches all open terminal tabs in one query
  • Shows matching lines with the tab name they came from
  • Instant results — searches the in-memory scrollback buffer
  • Case-insensitive fuzzy match
zmtlabs Term - Global Search
🔍 error...

web-01 — 3 matches
[23] ERROR: connection refused on port 3000
[41] npm ERR! code ENOENT
[89] error: config file not found

db-01 — 1 match
[12] ERROR 1045: Access denied
11 - Hosts

Host management with groups

Add servers to the sidebar and organize them in groups. Import and export your host list as JSON. Click a host to open a terminal, SFTP session or database connection.

  • Add hosts with hostname, port, username and password
  • Organize hosts in named groups
  • Import / export host list as JSON
  • Right-click a host to open Terminal, SFTP or DB
  • Last connected time shown per host
zmtlabs Term
Production
- web-01 root@192.168.1.10
- db-01 root@192.168.1.11

Staging
- web-staging ubuntu@10.0.0.5

+ Add Host   Ctrl+T
Download

Available for Windows

Portable .exe - no installation needed. Just download and run. Updates are always free.

🪟

Windows

Windows 10 / 11 - x64 - Portable .exe

How to get the download

Purchase a license below. The download link for the portable .exe is sent to you after checkout.

Updates are always free. Once you have a license, all future versions are included at no extra cost.

💬

Purchase via Discord

Join our Discord and open a ticket - you will receive the download link directly in your ticket.

discord.gg/zmtlabs ->

What's new Latest

  • new Command History (Ctrl+R) — fuzzy search every command ever sent, across all sessions
  • new Global Search (Ctrl+Shift+F) — search the scrollback buffer of all open terminals at once
  • new Monitor Panel — live CPU, RAM, disk and net in/out per SSH session (Linux & Windows)
  • new Process Manager — see running processes and kill them from inside the app
  • new Remote File Search — search the entire server by filename or file content (Linux & Windows)
  • new Quick Preview — view images and PDFs in SFTP without downloading
  • new File Diff — compare two remote files side by side in the SFTP manager
  • new chmod — change file permissions right-click from the SFTP file manager
  • new Snippet Variables — use ${hostname}, ${username}, ${date}, ${time} and custom vars in snippets
  • new Tab rename — double-click any tab title to rename it
  • new Session logging button — ⏺/⏹ toggle in the tab bar
  • new Built-in Docs page — press ? in the sidebar to open app documentation
  • new Split View — run two SSH sessions side by side in one window
  • new File Editor in SFTP — edit remote files with VS Code-style syntax highlighting
  • new Tab color picker — right-click any tab to color-code it
  • new Quick Connect (Ctrl+Shift+N) — connect via user@host:port without adding a host
  • new Jump Host / Bastion support for tunneled SSH connections
  • new Auto-reconnect with 5-second countdown when connection drops
  • new Terminal search with Ctrl+F (highlight matches in scrollback)
  • new Session logging to disk with Ctrl+Shift+L
  • new Drag & drop file upload in SFTP
  • fix Tab status not updating correctly after reconnect
  • perf Faster startup time, reduced blank space after clear
🗺️

Roadmap

macOS and Linux builds are planned. More features are on the list. Follow the project for updates.

Quickstart

Welcome to zmtlabs Term. This page gets you up and running in under 5 minutes.

💡 zmtlabs Term is a portable .exe - no installation needed. Just download and run it.

1. Start the app

Download the portable .exe and run it. On first launch you will be asked to set an app password. This password protects the app on startup and is stored locally on your machine.

2. Add a host

Click + Add Host in the sidebar or press Ctrl+T. Fill in the connection details:

  • Hostname / IP - e.g. 192.168.1.42 or web01.example.com
  • Port - default is 22
  • Username - e.g. root or ubuntu
  • Password - your SSH password

3. Connect

Click the host in the sidebar. A new terminal tab opens and connects automatically.

root@web-01:~$ echo "Connected!"
Connected!

Installation

Windows - Portable .exe

zmtlabs Term is a portable app. Download the .exe from the Download page and run it directly - no installer, no admin rights needed.

You can place the .exe anywhere on your system. Your data is stored in %APPDATA%\zmtlabs-term.

🗺️ macOS and Linux builds are planned for a future release.

Updating

Download the latest .exe and replace the old one. Your hosts, snippets and settings are kept. All updates are free for all license holders.

First Connection

Adding a host

Press Ctrl+T or click + Add Host in the sidebar to open the host dialog.

Required fields

  • Hostname - IP address or domain name of the server
  • Port - SSH port, usually 22
  • Username - the user to log in as
  • Password - the SSH password for that user

Opening a connection

After saving the host, click it in the sidebar. Right-click to see all options - open as Terminal, SFTP or DB.

📌 Your host credentials are stored locally in %APPDATA%\zmtlabs-term.

Terminal Basics

Tabs

Each SSH connection opens as its own tab. Open a new one with Ctrl+T and close the active tab with Ctrl+W.

The tab shows the connection status: connected, connecting, error.

Clearing the terminal

Click the Clear button in the tab bar or run clear in the terminal.

Connection types per host

  • Terminal - full SSH terminal session
  • SFTP - file manager for the server
  • DB - database editor

Keyboard Shortcuts

Global

New host / connectionCtrl+T
Close active tabCtrl+W
Quick ConnectCtrl+Shift+N
Open snippet searchCtrl+Space
Command History paletteCtrl+R
Search terminal outputCtrl+F
Global Search (all sessions)Ctrl+Shift+F
Toggle session loggingCtrl+Shift+L
Save file in editorCtrl+S
Font size in terminalCtrl+Scroll
Rename tabDouble-click tab title

Using SFTP

Right-click a host in the sidebar and choose Open SFTP. The file manager opens as a new tab.

Browsing files

The file manager shows the directory tree of your server. Click folders to navigate into them.

Uploading files

Use the upload button to select files from your local machine and transfer them to the server.

Downloading files

Click a file and use the download option to save it to your local machine.

File actions

  • Rename files and folders
  • Delete files and folders
  • Create new folders
  • Change permissions (chmod) — right-click a file and choose chmod

Quick Preview

Right-click an image (PNG, JPG, GIF, WebP, SVG) or PDF and choose Preview to view it inline without downloading.

File Diff

Right-click a file and choose Diff with... to compare it with another file on the server side by side.

Remote Search

Click the 🔍 button in the SFTP panel header to open Remote Search. Search the entire server by filename or by file content. Works on both Linux and Windows servers.

📁 The SFTP tab and the terminal tab share the same SSH connection to the host.

Snippets

Snippets let you save commands and send them into a terminal with a keyboard shortcut.

Creating a snippet

Click the Snippets tab in the sidebar, then click + Snippet. Give it a name, an optional group and the command text.

Using a snippet

Press Ctrl+Space while a terminal tab is active. Type to filter, then press Enter to send the command into the terminal.

Groups

Click + Group to create a group (e.g. "Docker", "Git", "Nginx"). Assign snippets to groups when creating or editing them.

Snippet Variables

Use variables in snippet text to insert dynamic values at send time. Built-in variables are replaced automatically; custom variables prompt you to enter a value before sending.

${hostname}Server hostname
${username}SSH username
${port}SSH port
${date}Current date (YYYY-MM-DD)
${time}Current time (HH:MM:SS)
${myVar}Custom — prompts for input

💡 Example: tar -czf backup-${hostname}-${date}.tar.gz /var/www — the hostname and date are filled in automatically when you send it.

Monitor & Processes

The Monitor panel shows live server metrics for the active SSH session. Open it from the sidebar or the tab toolbar.

Metrics

CPU usageLinux: /proc/stat · Windows: PowerShell
RAM usageLinux: /proc/meminfo · Windows: PowerShell
Disk usageLinux: df -h · Windows: PowerShell
Net In / OutLinux: /proc/net/dev · Windows: Get-NetAdapterStatistics

Process Manager

The process list shows running processes sorted by CPU or RAM. Click a process and choose Kill to terminate it.

📊 Each SSH tab has its own monitor — metrics update every few seconds automatically.

Command History

Press Ctrl+R to open the Command History palette. Every command you've sent into any terminal is stored here (up to 500, deduplicated).

Using the palette

  • Start typing to fuzzy-search your history
  • Use / to navigate results
  • Press Enter to send the selected command into the active terminal
  • Press Esc to close without sending

💡 Command history is shared across all sessions — if you ran a command on any server, it shows up here.

Database Editor

Right-click a host and choose Open DB. The database editor opens as a tab.

Browsing tables

Select a table from the list on the left to view its data.

Running queries

Switch to the query editor and write your SQL. Run it to see the results.

🗄️ The database editor connects through your existing SSH session to the host.

Host Management

Adding hosts

Press Ctrl+T or click + Add Host. Fill in the host details and save.

Groups

Click + Group to create a host group (e.g. "Production", "Staging"). Assign hosts to groups in the host dialog.

Import

Use the import option in the sidebar menu to load a host list from a JSON file.

Export

Use the export option to save your host list as JSON. Passwords are not included in the export.

🔒 Passwords are stored locally on your machine and are never included in exports.

Pricing

Simple, honest pricing

Pick the plan that works for you. All updates are included - forever.

✓ All plans include free updates - forever
💬

Purchase via Discord

Join our Discord server and open a ticket to purchase a license. You will receive the download link directly in your ticket.

discord.gg/zmtlabs ->
Weekly

Try it out for a week.

  • Full SSH terminal — multi-tab + split view
  • Command History (Ctrl+R) & Global Search
  • Monitor Panel — CPU, RAM, Disk, Net In/Out
  • Process Manager — view & kill processes
  • SFTP — preview, diff, chmod, remote search
  • Snippet manager with variables
  • Database editor
  • Host management with groups
  • All updates included
Get started
Lifetime

Pay once, own it forever.

  • Full SSH terminal — multi-tab + split view
  • Command History (Ctrl+R) & Global Search
  • Monitor Panel — CPU, RAM, Disk, Net In/Out
  • Process Manager — view & kill processes
  • SFTP — preview, diff, chmod, remote search
  • Snippet manager with variables
  • Database editor
  • Host management with groups
  • All future updates — free forever
Get lifetime

FAQ

Are updates really free?

Yes. All plans include all future updates at no extra cost - weekly, monthly and lifetime.

Does it only work on Windows?

Yes, currently Windows only. macOS and Linux are planned for a future release.

Where is my data stored?

Everything is stored locally in %APPDATA%\zmtlabs-term. Nothing is sent to any server.

Can I cancel a weekly or monthly plan?

Yes. Weekly and monthly plans can be cancelled at any time. Lifetime is a one-time purchase with no recurring charges.