pi-fzfp
Fuzzy file picker for pi – fzf-powered @file autocomplete
Package details
Install pi-fzfp from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-fzfp- Package
pi-fzfp- Version
2.5.0- Published
- Jun 18, 2026
- Downloads
- not available
- Author
- burneikis
- License
- MIT
- Types
- extension
- Size
- 14 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-fzfp
Fuzzy file picker for pi. Replaces the built-in @ file autocomplete with fzf-powered fuzzy matching.
The Problem
Pi's built-in @file autocomplete uses fd with a regex pattern and substring scoring. Typing @inxts won't find index.ts because the characters aren't contiguous.
The Fix
pi-fzfp pipes fd output through fzf --filter for true subsequence fuzzy matching, scored and sorted by fzf's battle-tested algorithm.
Requirements
Install
pi install npm:pi-fzfp
pi-fzfp stacks an fzf-powered autocomplete provider on top of the built-in
provider via ctx.ui.addAutocompleteProvider(). It does not install an editor
component, so it works alongside any custom editor (pi-vim, etc.) with no extra
configuration or coordination — just install both packages.
How It Works
Autocomplete
- Intercepts
@queries in the autocomplete provider - Runs
fdto list all project files (respects.gitignore, excludes.git) - Pipes the file list through
fzf --filter=<query>for fuzzy matching and scoring - Returns all matches sorted by fzf's score (no artificial limit)
- Builds autocomplete suggestions with proper
@prefix and quoting - Non-
@queries delegate to the underlying provider unchanged
Integration
pi-fzfp registers its provider with ctx.ui.addAutocompleteProvider((current) => ...)
at session_start. pi passes the currently-active provider as current, and
pi-fzfp wraps it: @ queries are matched with fzf, everything else delegates to
current. Because this stacks on top of whatever provider is active (built-in or
from a custom editor), no editor detection or event handshake is needed.
API
wrapWithFuzzyFiles(provider, basePath?)
Wraps any AutocompleteProvider with fzf-powered fuzzy file matching for @ queries. Returns the provider unchanged if fd or fzf is not available.
FzfFileAutocompleteProvider
The wrapper class, if you need more control.