Make better use of your shell history!
Bayesh is an auto-suggestion feature for your Zsh shell. Bayesh keeps track of your shell history and based on the current context, suggests shell commands to you in real time. Bayesh is an attempt to apply the core idea of z, not only to the cd command, but to your full shell history.
The plan is for Bayesh to integrate many "autosuggestion/autocompletion" tools in the near future.
Bayesh is lightening fast ⚡ (written in Go) and powered by fzf for great UX.
-
Install Dependencies:
Ensure you have the following installed: fzf, jq, tmux -
Install Bayesh:
To install Bayesh run
curl -sSLf https://raw.githubusercontent.com/mads-bisgaard/bayesh/refs/heads/main/install.sh | shMake sure to integrate Bayesh into your shell.
- To integrate Bayesh into Zsh, add
source <(bayesh --zsh)to your configuration file. You can do so by executing the following command in your shell:
echo "command -v bayesh > /dev/null && source <(bayesh --zsh)" >> ~/.zshrcOnce inside a tmux session (achieved by running tmux in your zsh shell), you open/close Bayesh by hitting Ctrl-e in your shell. Once open,
- 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.
