Fuzzy finder written in Rust with interactive search capabilities and shell integration
Skim is a fuzzy finder that provides a single executable called sk for quickly searching and selecting items from lists. It can operate as both a command-line filter (similar to grep) and an interactive interface for selecting files, directories, or command outputs. The tool supports standard fuzzy matching, exact matching, regex patterns, and various search operators including AND/OR logic.
The tool integrates with popular search utilities like ripgrep, ag, ack, and grep through its interactive mode, where commands are dynamically executed based on user input. Skim includes comprehensive shell bindings for Bash, Zsh, and Fish that provide keyboard shortcuts for file selection (Ctrl-T), command history search (Ctrl-R), and directory navigation (Alt-C). It also supports tab completion with ** expansion.
Skim provides extensive customization options including custom keymaps, color schemes, and preview windows. It can be used as a Vim/Neovim plugin, integrated into shell workflows, or consumed as a Rust library. The tool supports multi-selection mode, field-based matching, and various output formats for different use cases.
# via Homebrew
brew install sk
# via Cargo
cargo install skim
# via Arch Linux
pacman -S skim
