A modern shell built in Rust for Unix-like systems, with macOS as the primary development platform.
Astra is an interactive command-line environment focused on a clean interface, customization, and a better terminal experience. It combines the power of traditional Unix shells with a modern prompt system, configuration, and extensibility.
Check out our documentation here!
Astra is now prepared for its first stable release and includes a stable CLI, customizable prompt configuration, and Homebrew packaging support.
- Features
- Screenshots
- Installation
- Requirements
- Usage
- Themes
- Architecture
- Supported Languages
- Why Astra?
- Contributing
- License
- Status
- Interactive Rust shell
- Configurable prompt engine
- Multiple built-in themes
- Git-aware prompt information
- Command history
- Tab completion
- Alias support
- TOML configuration
- Built-in shell commands
- Modular architecture
- Plugin framework (in development)
- Optional built-in AI plugin
Shell (Crimson theme):
- Rust stable toolchain
- Cargo
- A Unix-like operating system (macOS officially tested)
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Clone Astra:
git clone https://github.com/astra-shell/astra-shell
cd astra-shellBuild:
cargo build --release
Run:
./target/release/astra
Homebrew:
brew tap astra-shell/homebrew-astra-shell https://github.com/astra-shell/homebrew-astra-shell brew install --build-from-source astra-shell
Astra Shell uses eza as the default ls alias. Homebrew installs eza as a dependency automatically.
If you see a tap trust warning, run:
brew trust astra-shell/homebrew-astra-shell
then re-run:
brew tap astra-shell/homebrew-astra-shell https://github.com/astra-shell/homebrew-astra-shell brew install --build-from-source astra-shell
If you want to install from the local formula in this repository instead:
brew install --build-from-source ./astra-shell.rb
brew uninstall astra-shell
brew untap astra-shell/homebrew-astra-shell
rm -f ~/.astrarcStart Astra:
astra
Example prompt layout for maximum compatibility:
git main | ~/dev/astra-shell | 14:27 >
Astra also supports CLI helpers and simple Astra script files:
astra --help astra --version astra theme list astra theme show astra theme set dark astra eval "pwd" astra examples/example.astra
Astra executes standard system commands:
ls
cd Projects
git status
python3 script.pyBuilt-in shell commands available inside Astra:
cd
pwd
clear
history
exit
help
version
about
theme-list
theme-show
theme-set
Astra uses:
~/.astrarc
You can copy the example configuration file included in the repository:
cp astrarc.example.toml ~/.astrarcA robust configuration file includes prompt, theme, history, completion, plugins, and appearance settings. For maximum compatibility across terminals, keep nerd_fonts = false unless your terminal supports Powerline/Nerd Font icons.
[general] theme = "default" startup_message = true update_check = false telemetry = false [prompt] show_user = true show_hostname = true show_directory = true show_git = true show_time = true symbol = ">" separator = "|" [history] enabled = true file = "~/.astra_history" size = 10000 deduplicate = true ignore_duplicates = true [completion] enabled = true case_sensitive = false show_hidden_files = false max_results = 20 [behavior] confirm_exit = true allow_scripts = true auto_cd = false vi_mode = false [plugins] enabled = true directory = "~/.astra/plugins" [appearance] unicode = true nerd_fonts = false animations = true compact = false [aliases] ls = "eza" ll = "eza -la" g = "git"
Built-in themes:
- crimson
- midnight
- matrix
- obsidian
- dark
- light
- minimal
Themes control:
- Prompt layout
- Prompt symbol
- Displayed information
- Overall appearance
src/
├── main.rs
├── shell.rs
├── prompt.rs
├── parser.rs
├── executor.rs
├── builtins.rs
├── history.rs
├── config.rs
├── theme.rs
├── git.rs
├── completion.rs
└── aliases.rs
Each module has a focused responsibility to keep the project maintainable.
- English
- Deutsch
- español
- 简体中文
- français
- 日本語
These languages were translated automatically by AI using Translate.js If there are any spelling errors, report them.
Astra is an experimental shell written in Rust with an emphasis on readability, modularity, and customization. The goal is to provide a clean foundation that can evolve while remaining approachable for contributors.
Contributions are welcome.
git checkout -b feature-name
git commit -m "Add feature"Then open a pull request.
Astra is licensed under the MIT License.
Astra is ready for the first stable release as version 1.0.0.
The core shell, prompt system, configuration loader, history support, themes, Homebrew packaging, and customizable ~/.astrarc configuration are in place. Current work focuses on expanding script support, improving compatibility, and growing the theme library.
