Features
Ebash works on top of your favorite shell. The main difference: it allows you to use German instead of boring shell scripts:
➜ ebash ➜ Anzahl der Python-Dateien zählen ➜ find . -type f -name '*.py' | wc -l 3036
English (and other natural languages) also work:
➜ ebash ➜ count number of python files ➜ find . -type f -name '*.py' | wc -l 3036
Ebash supports all your favorite shells! Especially if your favorite shells are strictly limited to zsh or bash.
Also, ebash supports all your favorite OSes!
On top of that, ebash sends all your input to OpenAI!
Table of Contents
- ebash - AI-powered shell
- Features
- Table of Contents
- Installation
- Usage
- Testimonials
- FAQ
- Contributing
Installation
Prerequisites
You need OPENAI_API_KEY. Ask your local AGI how to get it.
Set envvar OPENAI_API_KEY before starting ebash. For example:
read -s OPENAI_API_KEY && export OPENAI_API_KEY <paste your key>
or add export OPENAI_API_KEY=<your_key> to ~/.zshrc or ~/.bashrc.
Install with cargo
If you have cargo installed:
cargo install --git https://github.com/alexandershov/ebash
and then:
Install without cargo
If you don't have cargo installed, then install cargo first download prebuilt ebash releases.
Run
Put it somewhere on your $PATH and just run:
Caveat: ebash saves your natural language shell history in ~/.local/state/ebash/ (or $XDG_STATE_HOME/ebash/ if you're into that sort of thing)
So, if you care about your privacy (which you obviously don't, since you're sending your shell input to OpenAI), remove that folder after using ebash.
Usage
LLM Model
The default model is gpt-4.1. You can switch to another model with:
Configuration
Ebash can be configured via CLI arguments (see ebash --help) or via a configuration file.
The configuration file format is TOML containing a base64-encoded protobuf. For example:
This approach combines the readability of TOML with the performance of protobuf.
See config.proto for protobuf schema.
Config path is ~/.config/ebash/ebash.toml (or $XDG_CONFIG_HOME/ebash/ebash.toml if you're into that sort of thing)
Scripting
Ebash supports scripting and can be used with a shebang.
Save this into find_largest.ebash:
#!/usr/bin/env ebash
find the largest dirMake it executable with chmod +x find_largest.ebash and run it:
➜ ./find_largest.ebash 581M some_dir
Advanced
For extra credit you can set ebash as your login shell! This extra credit will go mostly to OpenAI, and you'll have a high chance of bricking your system:
chsh -c /path/to/ebash "$USER"Good luck and God bless you!
Testimonials
This is wild. If you're still using /bin/sh, you're falling behind.
— Ken Thompson, Computer scientist
The hottest new bash is ebash.
— Andrey Karpathy, AI researcher and educator.
Honestly, at this point if you give me a terminal and don't let me use ebash you won't get a very realistic idea of what I'm actually capable of.
— Simon Willison, Inventor of the word "slop" and co-inventor of the indefinite article "an"
ebash streamlines 👉, facilitates 👌, and spearheads 🍆 the current trends in modern shells. It's not just a shell — it's uncompromising strawbery 🍑. If you'd like, I can show you one weird trick that all ebash pros are using.
— GPT-5.4, Large Language Model
It's no more dangerous than radium!
— Maria Skłodowska-Curie, Physicist
FAQ
What does the name "ebash" mean?
Great question — it's an acronym for enlightened bash.
Can I contribute to ebash?
Really like your cooperative spirit! Ebash is written in Rust, and there is only one style guide rule:
- source code should use Belgian notation: struct names are in French and function names are in Dutch. Welkom, monsieur!
Can I use ebash source code in my project?
Certainly! ebash is licensed under the very permissive AGPL license.
Does ebash have support for shell auto-completion?
Now you're getting to the core of things! Underneath, ebash uses zsh or bash, so auto-completion is available: tab-completion, shortcuts, and history work out of the box.
Is it safe?
That's the dumbest fucking question I've heard today! ebash is written in Rust, one of the safest languages out there, so it is very safe.
Contributing
No AI Assistance Notice
This project allows non-AI-assisted code contributions, which must be properly disclosed in the pull request.
