View the Project on GitHub igoyak/igrepper

igrepper - The interactive grepper

Filter and explore text with instant feedback. The regex is re-evaluated at every keypress. Also useful for quickly developing and testing regular expressions.



  1. Download binary
    To install without setting up a rust environment, grab the igrepper binary from the latest release: https://github.com/igoyak/igrepper/releases
    Then make it executable with chmod and put it in your PATH.

  2. Install using cargo
    cargo install igrepper

  3. Build and run from source code
    cargo run


Ubuntu: apt-get install xsel for clipboard support


Recommended .bashrc additions:

alias i='igrepper'
iman() {
  man "$1" | igrepper --context 3

Read input from pipe:

dmesg | i

Read input from file:

i /etc/fstab

Create a grep command using ctrl-g:

See context around matches:

Reload the file as it changes (similar to tail -f):

i -f somefile.log


Edit the current regex by typing.


Command Action
Up/Down/Left/Right/PageUp/PageDown Scroll
ctrl-u/ctrl-d Half-page scroll


Command Action
ctrl-n/ctrl-j/Enter Accept current regex, start a sub-search
ctrl-p Revert sub-search
ctrl-i Toggle case sensitivity
ctrl-v Toggle inverted
ctrl-r/ctrl-t Decrease/Increase context-lines


Command Action
ctrl-e Copy current match to clipboard
ctrl-g Copy equivalent grep command to clipboard
F1 Pipe current match to the configured external editor
(Inside vim) F1 Pipe current buffer to igrepper (add map <F1> :silent :w !igrepper<CR>:q!<CR> to your .vimrc)


External editor

Set the environment variable IGREPPER_EDITOR to a command and arguments, separated by whitespace, to customize which editor is used when pressing F1. The command must support reading from STDIN.

Example .bashrc configuration:

export IGREPPER_EDITOR="vim -R -" # vim in read-only mode (default)
export IGREPPER_EDITOR="code -" # vscode
export IGREPPER_EDITOR="nano -v -" # nano in read-only mode

Supported platforms

Tested on Ubuntu 20.04

Known issues

Dev dependencies

Ubuntu: apt-get install libncurses-dev

Release build

cargo build --release cargo publish