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 | shClone Astra:
git clone https://github.com/astra-shell/astra-shell
cd astra-shellBuild:
cargo build --releaseRun:
./target/release/astraHomebrew:
brew tap astra-shell/homebrew-astra-shell https://github.com/astra-shell/homebrew-astra-shell
brew install --build-from-source astra-shellAstra 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-shellthen re-run:
brew tap astra-shell/homebrew-astra-shell https://github.com/astra-shell/homebrew-astra-shell
brew install --build-from-source astra-shellIf you want to install from the local formula in this repository instead:
brew install --build-from-source ./astra-shell.rbbrew uninstall astra-shell
brew untap astra-shell/homebrew-astra-shell
rm -f ~/.astrarcStart Astra:
astraExample 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.astraAstra 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.
