- 在 SSH 会话意外断线时复用 connection_progress 显示错误信息 - 区分正常退出与异常断线,避免用户主动执行 exit 时弹出重连提示 - 接入已有的重连 (Retry) 和 取消 (Cancel) 逻辑,允许用户在断线后一键恢复会话
ashell
ashell is a modern, GPUI Component-based desktop terminal client written in Rust.
This project focuses on providing a high-performance and visually appealing shell workspace by combining local and remote environments with a rich set of built-in features.
Download
You can download the latest pre-compiled releases for macOS, Windows, and Linux from the GitHub Releases page.
Mac Installation Guide
After downloading, please unzip the file and move ashell.app to your Applications folder.
Since the app uses ad-hoc signing, macOS may warn that the app is "damaged" upon first launch. If this happens, open Terminal and run the following command:
sudo xattr -cr /Applications/ashell.app
Features
The current version provides a fully-featured GPUI-native workspace:
- Local & Remote Sessions: Open local terminal tabs or connect to remote servers via SSH.
- Advanced SSH Authentication: Supports both password-based and key-based (file path or inline) SSH connections.
- Session Management: Easily save, reopen, edit, and remove your SSH sessions.
- SFTP Integration: Built-in SFTP file manager to browse, upload, download, and manage remote files.
- Robust Terminal Emulator: Parses terminal output with
alacritty_terminal, supporting rich ANSI color spans, fast rendering, and complete keyboard input forwarding. - System Telemetry: Real-time visualization of CPU, memory, swap, network, and disk metrics in the left cockpit sidebar.
- Theming System: Switch between multiple GPUI Component themes directly from the top toolbar.
- Embedded Fonts: Uses embedded Maple Mono NF CN fonts out-of-the-box for excellent CJK character and Nerd Font icon support.
Run
To run the application locally:
cargo run --release
Package macOS App
./scripts/package-macos-app.sh
open target/release/ashell.app
The packaging script creates a standard .app bundle. It does not attach an entitlements file, and after signing, it verifies that com.apple.security.app-sandbox is not present (meaning it runs non-sandboxed).
License
This project is licensed under the GPL-3.0-or-later License.
