# Installing pikl ## From crates.io (recommended) ```sh cargo install pikl ``` This builds the unified `pikl` binary with both TUI and GUI frontends. You'll need a working Rust toolchain. If you don't have one, [rustup](https://rustup.rs) is the way to go. ### TUI only If you only want the terminal interface and don't want to pull in GUI dependencies: ```sh cargo install pikl --no-default-features --features tui ``` ## From source ```sh git clone https://github.com/maplecool/pikl-menu.git cd pikl-menu cargo install --path . ``` This builds and installs the `pikl` binary into your cargo bin directory (usually `~/.cargo/bin/`). ## Package managers We'd like pikl to be available in package managers like the AUR and Homebrew, but honestly haven't set that up before and aren't sure when we'll get to it. TBD. If you package pikl for a distro or package manager, open an issue and we'll link it here. ## Verify it works ```sh echo -e "hello\nworld\ngoodbye" | pikl ``` You should see a filterable list in insert mode. Type to filter, use arrow keys to navigate, Enter to select, Escape to quit. The selected item prints to stdout. pikl starts in insert mode by default (type to filter immediately). Press Ctrl+N to switch to normal mode for vim-style navigation (j/k, gg, G, Ctrl+D/U). Ctrl+E switches back to insert mode. You can also start in normal mode with `--start-mode normal`. Note: Ctrl+I is not the same as Tab. pikl treats these as distinct inputs.