2026-09-13 18:24:01 +08:00
<p align="center">
2026-09-13 18:31:57 +08:00
<img src="public/icon.png" alt="NetMesh" width="128" height="128">
2026-09-13 18:24:01 +08:00
</p>
2026-09-13 18:31:57 +08:00
<h1 align="center">NetMesh</h1>
2026-09-13 18:24:01 +08:00
<p align="center">
2026-09-13 18:31:57 +08:00
<strong>AI-Powered SSH Client, SFTP Browser & Terminal Manager</strong><br/>
2026-09-13 18:24:01 +08:00
</p>
<p align="center">
A beautiful, feature-rich SSH workspace built with Electron, React, and xterm.js.<br/>
2026-09-13 18:31:57 +08:00
Built-in AI Agent · Split terminals · Vault views · SFTP workflows · Custom themes — all in one.
2026-09-13 18:24:01 +08:00
</p>
<p align="center">
<a href="#"><img alt="Platform" src="https://img.shields.io/badge/Platform-macOS%20%7C%20Windows%20%7C%20Linux-blue?style=for-the-badge&logo=electron"></a>
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/License-GPL--3.0-green?style=for-the-badge"></a>
</p>
<p align="center">
2026-09-13 18:31:57 +08:00
<a href="./README.md">English</a> · <a href="./README.zh-CN.md">简体中文</a>
2026-09-13 18:24:01 +08:00
</p>
---
2026-09-13 18:31:57 +08:00
<img width="3142" height="1764" alt="Screenshot" src="https://github.com/user-attachments/assets/3116165d-623a-4d3a-a28a-914befb9b72d" />
2026-09-13 18:24:01 +08:00
---
<a name="catty-agent"></a>
2026-09-13 18:34:08 +08:00
# Mesh Agent — Your IT Ops AI Partner
2026-09-13 18:31:57 +08:00
2026-09-13 18:40:33 +08:00
> Boost your IT ops daily work with AI power. Mesh Agent is the built-in AI assistant that understands your servers, executes commands, and handles complex multi-host operations — all through natural conversation.
2026-09-13 18:24:01 +08:00
2026-09-13 18:40:33 +08:00
### What can Mesh Agent do?
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
- Natural language server management — just tell it what you need, no more memorizing commands
- Real-time server diagnostics — check status, inspect logs, monitor resources through conversation
- Multi-host orchestration — coordinate tasks across multiple servers simultaneously
- Intelligent context awareness — understands your server environment and provides tailored responses
- One-click complex operations — set up clusters, deploy services, and more with simple instructions
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
### AI in Action
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
#### Single Host — Intelligent Server Diagnostics
2026-09-13 18:24:01 +08:00
2026-09-13 18:40:33 +08:00
Ask Mesh Agent to check a server's health, and it runs the right commands, analyzes the output, and gives you a clear summary — all in seconds.
2026-09-13 18:24:01 +08:00
<img width="1510" height="870" alt="ai-single" src="https://github.com/user-attachments/assets/d3f34e53-8476-4fab-8634-394b931d1ff1" />
2026-09-13 18:31:57 +08:00
#### Multi-Host — Docker Swarm Cluster Setup
2026-09-13 18:24:01 +08:00
2026-09-13 18:40:33 +08:00
Watch Mesh Agent orchestrate a Docker Swarm cluster across two servers in one conversation. It handles the init, token exchange, and node joining — you just tell it what you want.
2026-09-13 18:24:01 +08:00
<img width="1515" height="870" alt="ai-muti" src="https://github.com/user-attachments/assets/ca166fc5-65d9-4d7b-951a-962c2ef230d8" />
---
2026-09-13 18:31:57 +08:00
# Contents
2026-09-13 18:24:01 +08:00
2026-09-13 18:40:33 +08:00
- [Mesh Agent ](#catty-agent )
2026-09-13 18:31:57 +08:00
- [What is NetMesh ](#what-is-netmesh )
- [Why NetMesh ](#why-netmesh )
2026-09-13 18:24:01 +08:00
- [Features ](#features )
- [Screenshots ](#screenshots )
- [Supported Distros ](#supported-distros )
- [Getting Started ](#getting-started )
- [Build & Package ](#build--package )
- [Tech Stack ](#tech-stack )
- [Contributing ](#contributing )
- [License ](#license )
---
2026-09-13 18:31:57 +08:00
<a name="what-is-netmesh"></a>
# What is NetMesh
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
**NetMesh** is a modern SSH client and terminal manager for macOS, Windows, and Linux, designed for developers, sysadmins, and DevOps engineers who need to manage multiple remote servers efficiently.
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
- **NetMesh is** an alternative to PuTTY, Termius, SecureCRT, and macOS Terminal.app for SSH connections
- **NetMesh is** a powerful SFTP client with dual-pane file browser
- **NetMesh is** a terminal workspace with split panes, tabs, and session management
- **NetMesh supports** SSH, local terminal, Telnet, Mosh, and Serial connections (when available)
- **NetMesh is not** a shell replacement — it connects to shells via SSH/Telnet/Mosh or local/serial sessions
2026-09-13 18:24:01 +08:00
---
2026-09-13 18:31:57 +08:00
<a name="why-netmesh"></a>
# Why NetMesh
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
If you regularly work with a fleet of servers, NetMesh is built for speed and flow:
2026-09-13 18:24:01 +08:00
2026-09-13 18:31:57 +08:00
- **Workspace-first** — split panes + tabs + session restore for "always-on" workflows
2026-09-13 18:24:01 +08:00
- **Vault organization** — grid/list/tree views with fast search and drag-friendly workflows
- **Serious SFTP** — built-in editor + drag & drop + smooth file operations
---
<a name="features"></a>
# Features
2026-09-13 18:31:57 +08:00
### Vault
2026-09-13 18:24:01 +08:00
- **Multiple views** — grid / list / tree
- **Fast search** — locate hosts and groups quickly
2026-09-13 18:31:57 +08:00
### Terminal Workspaces
2026-09-13 18:24:01 +08:00
- **Split panes** — horizontal and vertical splits for multi-tasking
- **Session management** — run multiple connections side-by-side
- **Inline images** — render Kitty graphics, SIXEL and iTerm inline images from remote programs
2026-09-13 18:31:57 +08:00
### SFTP + Built-in Editor
2026-09-13 18:24:01 +08:00
- **File workflows** — drag & drop uploads/downloads
- **Edit in place** — built-in editor for quick changes
2026-09-13 18:31:57 +08:00
### Personalization
2026-09-13 18:24:01 +08:00
- **Custom themes** — tune the app appearance to your taste
- **Keyword highlighting** — customize highlight rules for terminal output
---
<a name="screenshots"></a>
# Screenshots
## Main Window
The main window is designed for long-running SSH workflows: quick access to sessions, navigation, and core tools in one place.
<img width="1531" height="875" alt="black-grid" src="https://github.com/user-attachments/assets/004b80f6-5bbb-4f14-b8cd-33a0a5913b8c" />
<img width="1550" height="876" alt="light" src="https://github.com/user-attachments/assets/2b59a999-a25e-4217-944c-9aef0a09f272" />
## Vault Views
Organize and navigate your hosts using the view that best fits the moment: grid for overview, list for scanning, tree for structure.
<img width="1554" height="882" alt="list" src="https://github.com/user-attachments/assets/03249f15-b5f8-4770-a3c3-d5001636ea00" />
<img width="1561" height="878" alt="tree" src="https://github.com/user-attachments/assets/739f7b66-3898-43d0-8dd3-b9b97fd8e8de" />
## Split Terminals
Split panes help you monitor multiple servers/services at the same time (deploy + logs + metrics) without juggling windows.
<img width="1560" height="871" alt="split" src="https://github.com/user-attachments/assets/c93a8523-6256-4bb3-8b6e-d599831f2f9f" />
---
<a name="supported-distros"></a>
# Supported Distros
2026-09-13 18:31:57 +08:00
NetMesh automatically detects and displays OS icons for connected hosts:
2026-09-13 18:24:01 +08:00
<p align="center">
<img src="public/distro/ubuntu.svg" width="48" alt="Ubuntu" title="Ubuntu">
<img src="public/distro/debian.svg" width="48" alt="Debian" title="Debian">
<img src="public/distro/centos.svg" width="48" alt="CentOS" title="CentOS">
<img src="public/distro/fedora.svg" width="48" alt="Fedora" title="Fedora">
<img src="public/distro/arch.svg" width="48" alt="Arch Linux" title="Arch Linux">
<img src="public/distro/alpine.svg" width="48" alt="Alpine" title="Alpine">
<img src="public/distro/amazon.svg" width="48" alt="Amazon Linux" title="Amazon Linux">
<img src="public/distro/redhat.svg" width="48" alt="Red Hat" title="Red Hat">
<img src="public/distro/rocky.svg" width="48" alt="Rocky Linux" title="Rocky Linux">
<img src="public/distro/opensuse.svg" width="48" alt="openSUSE" title="openSUSE">
<img src="public/distro/oracle.svg" width="48" alt="Oracle Linux" title="Oracle Linux">
<img src="public/distro/kali.svg" width="48" alt="Kali Linux" title="Kali Linux">
<img src="public/distro/almalinux.svg" width="48" alt="AlmaLinux" title="AlmaLinux">
</p>
<a name="getting-started"></a>
# Getting Started
### Prerequisites
- Node.js 18+ and npm
- macOS, Windows 10+, or Linux
### Development
```bash
# Clone the repository
2026-09-13 18:31:57 +08:00
git clone https://code.senmesh.com/zhaolei/NetMesh.git
cd NetMesh
2026-09-13 18:24:01 +08:00
# Install dependencies
npm install
# Start development mode (Vite + Electron)
npm run dev
```
---
<a name="build--package"></a>
# Build & Package
```bash
# Build for production
npm run build
# Package for current platform
npm run pack
# Package for specific platforms
npm run pack:mac # macOS (DMG + ZIP)
npm run pack:win # Windows (NSIS installer)
npm run pack:linux # Linux (AppImage + DEB + RPM)
```
---
<a name="tech-stack"></a>
# Tech Stack
| Category | Technology |
|----------|------------|
| Framework | Electron 40 |
| Frontend | React 19, TypeScript |
| Build Tool | Vite 7 |
| Terminal | xterm.js 5 |
| Styling | Tailwind CSS 4 |
| SSH/SFTP | ssh2, ssh2-sftp-client |
| PTY | node-pty |
| Icons | Lucide React |
---
<a name="contributing"></a>
# Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature` )
3. Commit your changes (`git commit -m 'Add some amazing feature'` )
4. Push to the branch (`git push origin feature/amazing-feature` )
5. Open a Pull Request
See [AGENTS.md ](AGENTS.md ) for architecture overview and coding conventions.
---
<a name="license"></a>
# License
This project is licensed under the **GPL-3.0 License ** - see the [LICENSE ](LICENSE ) file for details.