jesseduffield / lazycli

Turn static CLI commands into TUIs with ease

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Turn static CLI commands into TUIs with ease

Demo Animation



Pick a command that spits out either a list or table of content, like ls, docker ps, git branch, or git status --short. Then run lazycli -- <YOUR COMMAND>

lazycli -- ls

If you find yourself often using lazycli with a specific command, you can easily alias it like so:

echo "alias lcd=\"lazycli -- docker ps\"" >> ~/.zshrc
source ~/.zshrc

Right now some default keybindings are defined for common commands like ls, docker ps, git branch, git status --short, etc. But you can customise it for any commands you like! Just open the config file from within the program with $ and start playing around.

lazycli is best suited towards any command-line program that spits out a list of items or a table. In your commands, simply refer to the column number by $0 for the first column, $1 for the second column, etc, and lazycli will do the rest. There are plenty of starting examples in the config that you'll be able to draw from.


Via Cargo

cargo install --locked lazycli

Via binary

Download the binary from the Releases Page

Building from source

  1. clone the repo:
git clone
  1. install
cargo install --locked --path .
  1. run
lazycli -- ls


  • Q: Isn't this what fzf does?
  • A: Not quite: fzf requires you to know the command ahead of time whereas lazycli lets you run commands after presenting you the data, and the content is refreshed after you run the command rather than the program closing (admittedly I haven't used fzf but I'm pretty sure that's all correct).
ezoic increase your site revenue


Turn static CLI commands into TUIs with ease

License:MIT License


Language:Rust 100.0%