Some checks failed
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
247 lines
8.5 KiB
Markdown
247 lines
8.5 KiB
Markdown
<p align="center">
|
|
<img src="public/icon.png" alt="NetMesh" width="128" height="128">
|
|
</p>
|
|
|
|
<h1 align="center">NetMesh</h1>
|
|
|
|
<p align="center">
|
|
<strong>AI-Powered SSH Client, SFTP Browser & Terminal Manager</strong><br/>
|
|
</p>
|
|
|
|
<p align="center">
|
|
A beautiful, feature-rich SSH workspace built with Electron, React, and xterm.js.<br/>
|
|
Built-in AI Agent · Split terminals · Vault views · SFTP workflows · Custom themes — all in one.
|
|
</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">
|
|
<a href="./README.md">English</a> · <a href="./README.zh-CN.md">简体中文</a>
|
|
</p>
|
|
|
|
---
|
|
|
|
<img width="3142" height="1764" alt="Screenshot" src="https://github.com/user-attachments/assets/3116165d-623a-4d3a-a28a-914befb9b72d" />
|
|
|
|
---
|
|
|
|
<a name="catty-agent"></a>
|
|
# Mesh Agent — Your IT Ops AI Partner
|
|
|
|
> 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.
|
|
|
|
### What can Mesh Agent do?
|
|
|
|
- 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
|
|
|
|
### AI in Action
|
|
|
|
#### Single Host — Intelligent Server Diagnostics
|
|
|
|
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.
|
|
|
|
<img width="1510" height="870" alt="ai-single" src="https://github.com/user-attachments/assets/d3f34e53-8476-4fab-8634-394b931d1ff1" />
|
|
|
|
#### Multi-Host — Docker Swarm Cluster Setup
|
|
|
|
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.
|
|
|
|
<img width="1515" height="870" alt="ai-muti" src="https://github.com/user-attachments/assets/ca166fc5-65d9-4d7b-951a-962c2ef230d8" />
|
|
|
|
---
|
|
|
|
# Contents
|
|
|
|
- [Mesh Agent](#catty-agent)
|
|
- [What is NetMesh](#what-is-netmesh)
|
|
- [Why NetMesh](#why-netmesh)
|
|
- [Features](#features)
|
|
- [Screenshots](#screenshots)
|
|
- [Supported Distros](#supported-distros)
|
|
- [Getting Started](#getting-started)
|
|
- [Build & Package](#build--package)
|
|
- [Tech Stack](#tech-stack)
|
|
- [Contributing](#contributing)
|
|
- [License](#license)
|
|
|
|
---
|
|
|
|
<a name="what-is-netmesh"></a>
|
|
# What is NetMesh
|
|
|
|
**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.
|
|
|
|
- **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
|
|
|
|
---
|
|
|
|
<a name="why-netmesh"></a>
|
|
# Why NetMesh
|
|
|
|
If you regularly work with a fleet of servers, NetMesh is built for speed and flow:
|
|
|
|
- **Workspace-first** — split panes + tabs + session restore for "always-on" workflows
|
|
- **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
|
|
|
|
### Vault
|
|
- **Multiple views** — grid / list / tree
|
|
- **Fast search** — locate hosts and groups quickly
|
|
|
|
### Terminal Workspaces
|
|
- **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
|
|
|
|
### SFTP + Built-in Editor
|
|
- **File workflows** — drag & drop uploads/downloads
|
|
- **Edit in place** — built-in editor for quick changes
|
|
|
|
### Personalization
|
|
- **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
|
|
|
|
NetMesh automatically detects and displays OS icons for connected hosts:
|
|
|
|
<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
|
|
git clone https://code.senmesh.com/zhaolei/NetMesh.git
|
|
cd NetMesh
|
|
|
|
# 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.
|