2026-08-29 22:49:18 +08:00
2026-08-29 22:49:18 +08:00
2026-08-29 22:49:18 +08:00
2026-08-27 01:37:30 +08:00
2026-06-08 15:17:18 +08:00
2026-06-12 01:42:20 +08:00

中文 | English

ashell

Preview

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.

🚀 v0.4 Major Upgrades

v0.4 builds on the v0.3 foundation and focuses on more capable workspace operations and a smoother daily workflow:

  • Keybinding Management: View and edit common shortcuts from the settings UI with conflict hints.
  • Settings Page Polish: A more compact and clearer settings experience with improved layout and interaction flow.
  • Multi-Pane Tabs with a tmux-like Workflow: A single tab can now host multiple panes, with split, focus, and switching actions for a tmux-inspired experience.
  • Transfer History Improvements: The transfer history panel now presents richer task details, making upload and download activity easier to review.
  • SSH Passphrase Support: Private keys can now store a passphrase, and SSH connections will use it automatically.
  • Terminal Rendering Enhancements: Terminal rendering now handles Block Elements and similar custom glyphs more completely.

Download

You can download the latest installers from the GitHub Releases page:

  • macOS: .dmg installers for x64 and arm64, plus portable .zip archives.
  • Windows: Setup.exe installers for x64, x86, and arm64, plus portable .zip archives.
  • Linux: a portable x64 .tar.gz archive.

Mac Installation Guide

If you use Homebrew, you can install it quickly with:

brew install rust-kotlin/taps/ashell --cask

To update the app:

brew update
brew upgrade ashell --cask

Note

: Since the app uses ad-hoc signing, the Homebrew installation or update includes a postflight script to automatically handle the quarantine flag. This will require you to enter your administrator password for authorization.

Method 2: Manual Download

  1. Download the .dmg matching your processor from the Releases page.
  2. Open the DMG and drag ashell.app into Applications.
  3. 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:
sudo xattr -cr /Applications/ashell.app

Windows Installation Guide

Download the appropriate installer from the Releases page:

System architecture Installer suffix
Intel/AMD 64-bit windows-x64-setup.exe
Intel/AMD 32-bit windows-x86-setup.exe
Windows on ARM windows-arm64-setup.exe

The installer can optionally create a desktop shortcut and registers ashell in the Start menu and the Windows uninstall list. The installer is not yet signed with a commercial code-signing certificate, so Windows SmartScreen may display a security warning.

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.
  • v0.3 Core Enhancements: Global font and font-size controls, concurrent SFTP transfers, persistent layout state, disconnect awareness, hot-swappable i18n, and smart terminal right-click copy/paste.

Run

To run the application locally:

cargo run --release

Codex and Terminal Completion Notifications

ashell supports generic OSC 9 completion notifications. For Codex CLI, add the following to ~/.codex/config.toml:

[tui]
notifications = ["agent-turn-complete", "approval-requested"]
notification_method = "osc9"
notification_condition = "unfocused"

When an eligible notification originates in the background or a non-visible tab, ashell shows a native notification and a flashing bell on the corresponding tab. Unread notifications also add a red badge to the macOS Dock icon or a red overlay to the Windows taskbar icon. Clicking the native notification activates ashell and switches to the originating terminal tab; viewing that tab clears its unread state. No reminder is shown when ashell is active and the notification originates in the currently visible tab. An unselected tab shows a loading indicator beside its title for two seconds after receiving terminal output. Continued output refreshes the indicator, while the selected tab does not show it.

You can test a generic OSC 9 notification with:

printf '\033]9;Task completed\007'

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).

Package Linux (Debian/Ubuntu)

Prerequisites

sudo apt install pkg-config libfontconfig1-dev
cargo install cargo-deb

Build .deb

cargo build --release
cargo deb

The .deb file will be generated at:

target/debian/ashell_0.4.8-1_amd64.deb

Install

sudo dpkg -i target/debian/ashell_0.4.8-1_amd64.deb

After installation, you can launch from the application menu or by running ashell in the terminal. The .deb package includes:

  • /usr/bin/ashell — Main binary
  • /usr/share/applications/ashell.desktop — Desktop entry
  • /usr/share/icons/hicolor/256x256/apps/ashell.png — Application icon

License

This project is licensed under the GPL-3.0-or-later License.

S
Description
ashell is a modern, fast, GPUI Component-based desktop terminal client written in Rust.
Readme GPL-3.0
23 MiB
Languages
Rust 98.3%
Inno Setup 1.6%
Shell 0.1%