mirror of
https://github.com/rust-kotlin/ashell.git
synced 2026-09-22 00:00:59 +00:00
644ec6e2b11adf2ffb5a064d13ebd4da8870db5e
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.
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.
Languages
Rust
98.3%
Inno Setup
1.6%
Shell
0.1%