Terminal Overview
The NetStacks Terminal is a free, open-source SSH/Telnet client built for network engineers, with multi-tab sessions, split panes, SFTP, and AI assistance.
Overview
The NetStacks Terminal is a native desktop application built with Tauri (Rust + React) that replaces aging tools like SecureCRT and PuTTY with a modern, high-performance terminal emulator designed specifically for network engineering workflows. Whether you are configuring a single switch or managing hundreds of routers across multiple data centers, the Terminal provides the features you need in a single window.
The standalone Terminal is free and open source under the Apache License 2.0. There is no license key, no activation, and no trial. You can download and run it immediately, and all of its connection, recording, and AI features work without any server. The optional NetStacks Controller (the seat-licensed Teams/Enterprise backend) adds centralized credentials, audit, and shared configuration on top.
Key Capabilities
- Multi-Tab Sessions — Open dozens of concurrent sessions in tabs, each with its own connection and scrollback buffer.
- Split Panes — Divide a tab group into horizontal or vertical panes to compare configurations or monitor multiple devices side by side. Splits are created from the tab right-click menu (Split Right / Split Down).
- Session Recording — Capture terminal output during a troubleshooting session for audit trails, change verification, or post-maintenance review, then replay it from the Recordings library.
- AI Assistance — Get context-aware help from an integrated AI chat that understands the detected device type, CLI flavor, and current session state.
- SFTP File Transfers — Upload and download files to devices without leaving the terminal interface.
- Multi-Send Broadcast — Type a command once and send it to every selected session simultaneously.
- Device Auto-Detection — Identifies Cisco IOS/IOS-XE, Cisco IOS-XR, Cisco NX-OS, Juniper Junos, Arista EOS, Palo Alto PAN-OS, Fortinet FortiOS, and Linux/Unix hosts so platform-aware features use the right CLI flavor.
- Mapped Keys & Snippets — Bind keyboard shortcuts to device commands and save reusable command snippets for one-click insertion.
- Session Sharing — Share a live terminal session with team members for collaborative troubleshooting, training, or change review (Controller feature).
Standalone vs Controller-Connected
The Terminal operates in two modes depending on your infrastructure:
- Standalone (free, open source) — Run the Terminal by itself with credentials and SSH keys stored locally by a bundled agent. No server, no license, and no key are required. Ideal for individual engineers or small teams.
- Controller-connected (Teams/Enterprise) — Connect to a NetStacks Controller for centralized credential management, SSH certificate authentication, server-side session recording storage, device inventory, audit logging, and shared AI configuration. The Controller is seat-licensed; the Terminal app itself stays free.
How It Works
The Terminal is a Tauri application with a Rust backend and a React frontend. The frontend renders terminal output using XTerm.js with hardware-accelerated WebGL rendering, 256-color and true-color support, and a configurable scrollback buffer (default 10,000 lines per session, adjustable in Session Settings).
Session Lifecycle
When you open a session, the Terminal follows this lifecycle:
- Connect — The Rust backend establishes an SSH or Telnet connection to the target device, either directly or through a jump host.
- Authenticate — Credentials are resolved from the local agent (standalone) or the Controller credential vault (Controller-connected). SSH supports password, key (RSA, ECDSA, Ed25519), certificate, and keyboard-interactive authentication.
- Detect Device — The Terminal enriches the session by reading version/platform output and matching vendor strings to identify the CLI flavor. This enables platform-specific behavior such as read-only command filtering and AI context.
- Active Session — A WebSocket channel streams data between the XTerm.js frontend and the Rust SSH/Telnet proxy in the agent.
Standalone Architecture
In standalone mode, a local agent sidecar handles SSH/Telnet connections, credential storage, session recordings, mapped keys, snippets, and script execution. All data stays on your machine.
Controller-Connected Architecture
In Controller-connected mode, the Terminal talks to a Controller server over HTTPS and WebSocket. SSH sessions can be proxied through the Controller, which provides centralized credential injection, short-lived SSH certificate issuance, server-side session recording storage, and command audit logging.
Connecting to a Controller is done from the Enterprise connect dialog. Existing standalone sessions continue running; new sessions can use credentials and policies from the Controller vault.
Step-by-Step Guide
This guide walks you through opening your first terminal session, connecting to a network device, and exploring the interface.
1. Launch the Application
Open NetStacks Terminal from your Applications folder (macOS), Start Menu (Windows), or launcher (Linux). On first launch you will see a single empty tab with a local shell session.
2. Open the Quick Connect Dialog
Press Cmd+Shift+Q (Mac) or Ctrl+Shift+Q (Windows/Linux) to open Quick Connect. You can also click the + control in the tab bar.
3. Enter Connection Details
Quick Connect has separate fields for host, port, and a saved credential profile. Fill them in, for example:
- Host:
core-rtr01.dc1.example.net - Port:
22(defaults to 22; use23for Telnet) - Credential profile: a saved username + password or SSH key
4. Connect
Click Connect or press Enter. The Terminal opens a new tab, establishes the connection, and authenticates. You will see the device login banner followed by the command prompt.
5. Explore the Interface
- Tab Bar — Shows all open sessions with connection status. Right-click a tab for options like Rename, Reconnect, Split Right, and Split Down.
- Terminal Area — The main terminal with hardware-accelerated rendering, URL detection, and scrollback search (
Cmd/Ctrl+F). - Status Bar — Displays connection state, the detected device type, and a Troubleshoot button to start a recorded troubleshooting session.
- Sidebar — Toggle with
Cmd/Ctrl+Bto access saved sessions, snippets, and device panels.
To reuse a connection, save it as a session or a credential profile so it appears in Quick Connect history and the sidebar next time.
Code Examples
Below are examples of typical terminal workflows with network devices.
Quick Connect Fields
Quick Connect uses discrete fields rather than a single connection string. A typical entry looks like:
Host: core-rtr01.dc1.example.net
Port: 22 # use 23 for Telnet to legacy console servers
Profile: netadmin (saved username + SSH key)Device Detection in Action
# After connecting to a Cisco IOS-XE device, the Terminal enriches the session
# and sets the CLI flavor (cisco-ios) from the version/vendor output:
core-rtr01.dc1.example.net — SSH connection established
Cisco IOS XE Software, Version 17.09.04a
core-rtr01#
# Status bar shows the detected device type next to the connection state.Checking the Version and Licenses
Open Help → About NetStacks to see the application name and version, along with the open-source libraries it is built with (Tauri, React, Rust, xterm.js) and their licenses (for example russh and Tauri under Apache-2.0).
Auto-Execute Commands
# Configure on-connect commands in Session Settings.
# These run immediately after authentication, e.g. to disable paging:
# Cisco IOS / IOS-XE — disable paging and widen the terminal
terminal length 0
terminal width 200
# Juniper Junos — disable paging
set cli screen-length 0
# Arista EOS — disable paging
terminal length 0Questions & Answers
- Q: Is the NetStacks Terminal free?
- A: Yes. The standalone Terminal is free and open source under the Apache License 2.0. There is no license key or activation. Only the optional NetStacks Controller (Teams/Enterprise backend) is seat-licensed.
- Q: What is the NetStacks Terminal?
- A: A native desktop application (Tauri/Rust + React) that provides a modern SSH and Telnet client purpose-built for network engineers. It supports multi-tab sessions, split panes, session recording, AI assistance, SFTP, multi-send broadcast, device auto-detection, mapped keys, and snippets.
- Q: What protocols does the Terminal support?
- A: SSH (v2) and Telnet. SSH connections support password, SSH key (RSA, ECDSA, Ed25519), SSH certificate, and keyboard-interactive authentication. A local shell session is also available for running commands on your workstation.
- Q: How does standalone mode differ from Controller-connected mode?
- A: In standalone mode the Terminal runs on its own with locally stored credentials, local recordings, and AI features using your own API keys — no server and no license. In Controller-connected mode it connects to a NetStacks Controller for centralized credential management, SSH certificate authentication, server-side recordings, device inventory, audit logging, and shared AI configuration.
- Q: What device types are auto-detected?
- A: Cisco IOS/IOS-XE, Cisco IOS-XR, Cisco NX-OS, Juniper Junos, Arista EOS, Palo Alto PAN-OS, Fortinet FortiOS, and Linux/Unix hosts. Detection reads version/platform output and matches vendor strings. If a device is misdetected, set the CLI flavor manually in Session Settings.
- Q: Can I use the Terminal without a Controller?
- A: Yes. The Terminal is fully functional standalone — connect with local credentials, record troubleshooting sessions locally, use AI with your own API keys, and access all terminal features. The Controller adds centralized management, certificate auth, and audit but is not required.
- Q: How does the Terminal handle disconnections?
- A: When a connection drops, a reconnect overlay appears showing the reason. If Auto-Reconnect is enabled for the session, the Terminal counts down and retries using the configured Reconnect Delay (in seconds, set in Session Settings); you can also click Reconnect Now, or choose "Don't auto-reconnect this session." The manual reconnect action is also bound to
Cmd/Ctrl+Shift+R. The scrollback buffer is preserved across reconnections. - Q: What is the command palette?
- A: The command palette (
Cmd+Shift+P/Ctrl+Shift+P) is a searchable list of available actions. Type to filter, then press Enter to run. It shows each command's keyboard shortcut so you learn bindings as you go.
Troubleshooting
Terminal Not Connecting
Symptom: Connection attempt hangs or shows "Connection refused."
Cause: The target host is unreachable, the SSH/Telnet service is not running, or a firewall is blocking the port (22 for SSH, 23 for Telnet).
Solution: Verify reachability with ping or traceroute from a local shell tab. Confirm the service is listening on the expected port and check firewall rules between your workstation and the device.
Slow or Choppy Rendering
Symptom: Output appears slowly or flickers during large output (e.g., show tech-support).
Cause: WebGL rendering may not be available, or the scrollback buffer is very large.
Solution: Ensure hardware acceleration is enabled in your OS display settings. Lower the scrollback line count in Session Settings, or pipe very large output to a file instead of the terminal.
Device Detection Failure
Symptom: The status bar does not show the expected device type.
Cause: The version/prompt output did not match a known vendor pattern, which can happen with custom prompts or uncommon platforms.
Solution: Open Session Settings and set the CLI flavor manually. AI context and read-only command filtering then use the correct platform.
Scrollback Search Not Finding Results
Symptom: Cmd/Ctrl+F search returns no matches even though the text is visible.
Cause: The query may be case-sensitive, or the text has scrolled past the scrollback buffer limit.
Solution: Toggle case-sensitive search in the find bar, and increase the scrollback line count in Session Settings if needed.
Related Features
- Connecting to Devices — SSH and Telnet connection methods, jump hosts, certificate authentication, and profiles.
- Multi-Tab & Split Panes — Working with multiple sessions in tabs and split-pane layouts.
- Keyboard Shortcuts — Complete shortcut reference, mapped keys, and the command palette.
- Session Recording — Recording and replaying terminal sessions for review and compliance.
- SFTP File Browser — Uploading and downloading files to and from devices.
- Multi-Send (Broadcast) — Sending commands to multiple sessions simultaneously.
- Snippets & Custom Commands — Reusable command snippets and right-click custom commands.
- Themes & Customization — Terminal color themes, fonts, and appearance settings.
- Session Sharing — Share a live session with teammates (Controller feature).