PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that you can open them in your favorite editor or execute arbitrary commands.
Alternatives To Pathpicker
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
25 days ago1February 27, 201821mitPython
PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that you can open them in your favorite editor or execute arbitrary commands.
Tmux Xpanes1,723
a month ago1March 03, 202116mitShell
Awesome tmux-based terminal divider
3 months ago3unlicenseShell
An fzf terminal UI for systemctl
Travis Build652
8 days ago81mitRuby
.travis.yml => converter
Sultan598534 years ago30March 04, 201912mitPython
Sultan: Command and Rule over your Shell
8 days ago4mitShell
Small bash script to manage your ssh connections. It builds menu (via dialog) from your ~/.ssh/config. It can not only connect but also to run commands, copy files, tunnel ports.
a day ago1mitShell
Bash/Zsh function for extract: .zip, .rar, .bz2, .gz, .zlib, .tar, .tbz2, .tgz, .Z, .7z, .xz, .exe, .tar.bz2, .tar.gz, .tar.xz, etc.
Gh Token169
18 days ago9iscShell
Create an installation access token for a GitHub app from your terminal 💻
Redis Bash144
5 months agobsd-3-clauseShell
REDIS-BASH - Bash library to access Redis
a year ago8mitShell
A framework for creating a Bash CLI application.
Alternatives To Pathpicker
Select To Compare

Alternative Project Comparisons


Build Status

Facebook PathPicker is a simple command line tool that solves the perpetual problem of selecting files out of bash output. PathPicker will:

  • Parse all incoming lines for entries that look like files
  • Present the piped input in a convenient selector UI
  • Allow you to either:
    • Edit the selected files in your favorite $EDITOR
    • Execute an arbitrary command with them

It is easiest to understand by watching a simple demo:


After installing PathPicker, using it is as easy as piping into fpp. It takes a wide variety of input -- try it with all the options below:

  • git status | fpp
  • hg status | fpp
  • git grep "FooBar" | fpp
  • grep -r "FooBar" . | fpp
  • git diff HEAD~1 --stat | fpp
  • find . -iname "*.js" | fpp
  • arc inlines | fpp

and anything else you can dream up!


PathPicker requires Python >2.6 or >3.0.

Supported Shells:

  • Bash is fully supported and works the best.
  • ZSH is supported as well but won't have a few features like alias expansion in command line mode.
  • csh/fish/rc are supported in the latest version, but might have quirks or issues in older versions of PathPicker. Note however if your default shell and current shell is not in the same family (bash/zsh... v.s. fish/rc), you need to manually export environment variable $SHELL to your current shell.

Installing PathPicker


Installing PathPicker is easiest with Homebrew for mac:

  • brew update (to pull down the recipe since it is new)
  • brew install fpp


On debian-based systems, run these steps:

$ git clone
$ cd PathPicker/debian
$ ./ 
$ ls ../fpp_0.7.2_noarch.deb

On Arch Linux, PathPicker can be installed from Arch User Repository (AUR). the AUR fpp-git package.

If you are on another system, or prefer manual installation, please follow the instructions given below.

Manual Installation

However if you're on a system without Homebrew, it's still quite easy to install PathPicker since it's essentially just a bash script that calls some Python. These steps more-or-less outline the process:

  • cd /usr/local/ # or wherever you install apps
  • git clone
  • cd PathPicker/

Here we make a symbolic link from the bash script in the repo to /usr/local/bin/ which is assumed to be in the current $PATH

  • ln -s "$(pwd)/fpp" /usr/local/bin/fpp
  • fpp --help # should work!


For tmux users, you can additionally install tmux-fpp which adds a key combination to run PathPicker on the last received stdout. It makes jumping into file selection mode even easier -- check it out here.

Advanced Functionality

As mentioned above, PathPicker allows you to also execute arbitrary commands with the specified files. Here is an example showing a git checkout command executed against the selected files:

The selected files are appended to the command prefix to form the final command. If you need the files in the middle of your command, you can use the $F token instead, like:

cat $F | wc -l

Another important note is that PathPicker by default only selects files that exist on the filesystem. If you want to skip this (perhaps to selected deleted files in git status), just run PathPicker with the --no-file-checks (or -nfc for short) flag.

How PathPicker works

PathPicker is a combination of a bash script and some small Python modules. It essentially has three steps:

  • First the bash script redirects all standard out in to a python module that parses and extracts out filename candidates. These candidates are extracted with a series of regular expressions, since the input to PathPicker can be any stdout from another program. Rather than make specialized parsers for each program, we treat everything as noisy input and select candidates via regexes. To limit the number of calls to the filesystem (to check existence), we are fairly restrictive on the candidates we extract.

This has the downside that files that are single words with no extension (like test) that are not prepended by a directory will fail to match. This is a known limitation to PathPicker, and means that it will sometimes fail to find valid files in the input.

  • Next, a selector UI built with curses is presented to the user. Here you can select a few files to edit or input a command to execute.
  • Lastly, the python script outputs a command to a bash file that is later executed by the original bash script.

It's not the most elegant architecture in the world but (in our opinion) provides a lot of utility.

Documentation & Configuration

For all documentation and configuration options, see the output of fpp --help.

Join the PathPicker community

See the CONTRIBUTING file for how to help out.


PathPicker is MIT licensed.

Popular Command Line Projects
Popular Bash Script Projects
Popular Command Line Interface Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Command Line
Bash Script