Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

245 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

readme banner

Rust macOS Open Source Open Source Open Source

Astra Shell

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.

Table of Contents

  • Features
  • Screenshots
  • Installation
  • Requirements
  • Usage
  • Themes
  • Architecture
  • Supported Languages
  • Why Astra?
  • Contributing
  • License
  • Status

Features

  • 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

Screenshots

Shell (Crimson theme):

Screenshot 2026-08-05 at 12 48 32

Installation

Requirements

  • 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-shell

Build:

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

Uninstalling Astra

brew uninstall astra-shell
brew untap astra-shell/homebrew-astra-shell
rm -f ~/.astrarc

Usage

Start 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.py

Built-in shell commands available inside Astra:

cd
pwd
clear
history
exit
help
version
about
theme-list
theme-show
theme-set

Configuration

Astra uses:

~/.astrarc

You can copy the example configuration file included in the repository:

cp astrarc.example.toml ~/.astrarc

A 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"

Themes

Built-in themes:

  • crimson
  • midnight
  • matrix
  • obsidian
  • dark
  • light
  • minimal

Themes control:

  • Prompt layout
  • Prompt symbol
  • Displayed information
  • Overall appearance

Architecture

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.

Supported Languages:

  • English
  • Deutsch
  • español
  • 简体中文
  • français
  • 日本語

These languages were translated automatically by AI using Translate.js If there are any spelling errors, report them.

Why Astra?

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.

Contributing

Contributions are welcome.

git checkout -b feature-name
git commit -m "Add feature"

Then open a pull request.

License

Astra is licensed under the MIT License.

Status

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.

About

A custom shell for mac OS!

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages