4 releases

0.1.15 Jun 2, 2021
0.1.14 Mar 1, 2021
0.1.13 Feb 28, 2021
0.1.12 Feb 27, 2021

#21 in #lazy

MIT license

58KB
1.5K SLoC

lazycli

Turn static CLI commands into TUIs with ease

Demo Animation

Demo:

Usage

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
lcd

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.

Installation

Via Cargo

cargo install lazycli

Via binary

Download the binary from the Releases Page

Building from source

  1. clone the repo:
git clone https://github.com/jesseduffield/lazycli.git
  1. install
cargo install --path .
  1. run
lazycli -- ls

QandA

  • 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).

Dependencies

~10MB
~180K SLoC