Make better use of your shell history!
Bayesh is the auto-suggestion feature on your phone when you write messages — but for your terminal! Bayesh suggests shell commands to you in real time, based on your shell history. Bayesh is lightening fast ⚡ (written in Go) and powered by fzf for great UX. Bayesh supports Bash and Zsh shells. Zsh in tmux is where Bayesh really shines ☀️.
-
Install Dependencies:
Ensure you have the following installed: fzf, jq, tmux (tmux is only required for the Zsh shell) -
Install Bayesh:
To install Bayesh run
curl -sL https://raw.githubusercontent.com/mads-bisgaard/bayesh/refs/heads/main/install.sh | bash- Go!
Make sure to integrate Bayesh into your shell. Close and reopen your shell and hitCtrl-eto open bayesh.
- To integrate Bayesh into Zsh, add
source <(bayesh --zsh)to your configuration file. You can do so by running
echo "command -v bayesh > /dev/null && source <(bayesh --zsh)" >> ~/.zshrc- To integrate Bayesh into Bash, add
source <(bayesh --bash)to your configuration file. You can do so by running
echo "command -v bayesh > /dev/null && source <(bayesh --bash)" >> ~/.bashrcBayesh is triggered by hitting Ctrl-e in your shell.
When using Zsh shell in tmux you
- toggle the fzf pane with
Ctrl-<up arrow>andCtrl-<down arrow>. - select a suggestion with
Ctrl-<right arrow>.
At first Bayesh has a short "learning phase" before it will start suggesting you commands.
Bayesh draws inspiration from:
- autojump, z, and zoxide
- The incredible fzf
- Peter Norvig's legendary blogpost on building a spelling corrector
Want to contribute? Whether it's fixing a bug, suggesting a feature, or improving documentation, your help is very much appreciated.
- Fork the repository.
- Create a new branch for your changes.
- Submit a pull request with a clear description of your changes.
Feel free to open an issue if you have questions or need guidance. Let's make Bayesh even better together!
Bayesian statistics applied to your Zsh history.
-
Bayesh relies on your shell’s history behavior. To get the best experience:
-
For Bash Users:
Add this to your~/.bashrc:export HISTCONTROL= -
For Zsh Users:
Add this to your~/.zshrc:unsetopt HIST_IGNORE_DUPS
Test your setup by running
history -1twice. If the two lines are different (timestamps or event numbers), you’re good to go! -
-
Bayesh is built with
CGO_ENABLED=1, so it relies on glibc being available at run time.
