pi-fff
FFF-powered fuzzy file resolution, autocomplete, and content search extension for pi
Package details
Install pi-fff from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-fff- Package
pi-fff- Version
0.1.9- Published
- Apr 20, 2026
- Downloads
- 1,658/mo · 80/wk
- Author
- happy2png
- License
- MIT
- Types
- extension
- Size
- 91.8 KB
- Dependencies
- 3 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
],
"image": "https://github.com/user-attachments/assets/c9020bb7-f708-4f75-a802-6ac182b48e07"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-fff
pi-fff is a pi extension that brings fast fuzzy file finding and indexed content search into the editor, built-in tools, and agent workflows.
It is powered by @ff-labs/fff-node and gives pi a much better project-navigation experience.
What problem it solves
When working in a real codebase, agents and humans rarely know the exact path they need.
Instead of requiring exact file paths or repeated shell exploration, pi-fff lets pi:
- autocomplete fuzzy
@...file references in the editor - resolve approximate paths before
read - search code content with FFF-backed
grep - expose dedicated search tools for agents
- surface better ranked results and read suggestions
In short: it makes “find the right file fast” a first-class part of pi.
What the package adds to pi
pi-fff integrates at four levels.
1. Editor autocomplete
Type things like:
@readme
@src/index
@"folder with spaces/file"
pi-fff will offer ranked file suggestions from the current project.
2. Built-in tool upgrades
The extension overrides pi’s built-in tools to make them FFF-aware.
read
- accepts approximate file paths
- resolves fuzzy paths before reading
- supports
@path-style input - uses location hints from FFF when available
grep
- uses FFF-backed indexed content search
- supports fuzzy path or folder scopes
- pushes scope and glob filters down into native FFF constraints when possible
- returns more agent-friendly results
- falls back to pi’s built-in grep for compatibility edge cases
3. Custom agent tools
The extension also registers explicit tools for exploration and search:
find_filesresolve_filerelated_filesfff_grepfff_multi_grep
These are useful when the agent wants to browse candidates first instead of immediately reading one guessed file.
4. Status and maintenance commands
Slash commands are included for feature flags, status, and manual recovery.
/fff-features/fff-status/reindex-fff
How search and indexing work
pi-fff creates an FFF runtime for the current pi session.
That runtime:
- indexes the current project on startup
- keeps a background file watcher running
- updates search results automatically as the project changes
So in normal use, indexing is automatic.
Do I need to reindex manually?
Usually, no.
/reindex-fff is mainly a fallback for cases like:
- very large branch switches
- mass file renames
- generated file churn
- stale results after watcher hiccups
Think of it as “force a fresh rescan if the index looks stale,” not something you should need after every edit.
What the agent gets
When active, pi-fff helps the agent work more efficiently by making it easier to:
- discover files related to a topic
- turn vague file references into exact paths
- search code with better ranking and constraints
- move from search results to a likely file to read next
- continue paginated searches with cursors
This reduces blind bash exploration and makes tool use more deliberate.
Search behavior highlights
Ranked file resolution
A vague query like:
editor
can resolve to the best matching file, or return ranked candidates if the result is ambiguous.
Better grep output
FFF grep output can include:
- a suggested file to read next
- definition-like matches near the top
- expanded context for likely definitions
- cursors for pagination
Multi-pattern content search
Use fff_multi_grep when you want to search for multiple literal variants at once, for example renamed symbols or aliases.
Commands
/fff-features
Interactive feature toggle UI.
- Space toggles the selected row
- Enter saves
- Esc cancels
- State is stored globally in:
~/.pi/agent/extensions/pi-fff.json
/fff-status
Shows:
- runtime state
- indexed file count
- repository detection
- current feature flags
/reindex-fff
Forces a rescan of the current project if the automatic watcher missed something.
Installation
From npm
pi install npm:pi-fff
From git
pi install git+https://github.com/ShpetimA/pi-fff.git
Restart pi after installation.
Development
npm install
npm run typecheck
npm test
Package metadata
{
"pi": {
"extensions": ["./index.ts"]
}
}
Summary
pi-fff makes pi better at file discovery, fuzzy path resolution, and indexed code search.
If pi is active inside a repo, pi-fff helps both the editor and the agent get to the right file faster.
See PLAN.md for implementation notes and next steps.