@nklisch/pi-fff-compat

Fast FFF-backed file search through Pi-native find/grep semantics — glob-only file lookup and exact regex/literal grep with no fuzzy fallback.

Packages

Package details

extension

Install @nklisch/pi-fff-compat from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@nklisch/pi-fff-compat
Package
@nklisch/pi-fff-compat
Version
0.1.3
Published
Aug 23, 2026
Downloads
528/mo · 25/wk
Author
nklisch
License
MIT
Types
extension
Size
32 KB
Dependencies
1 dependency · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/fff-compat-search.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@nklisch/pi-fff-compat

Exposes the fast FFF file index through Pi-native find/grep semantics. Upstream @ff-labs/pi-fff is excellent for fuzzy/smart discovery, but its ffind/ffgrep behavior intentionally differs from Pi's built-ins; this package provides the conservative compatibility surface: glob-only file lookup and exact regex/literal grep, no fuzzy fallback — backed by the same real-time FFF index.

pi install npm:@nklisch/pi-fff-compat

Modes

Mode Tools How
Default (additive) fast_find, fast_grep alongside the built-ins install and go
Override registers as find/grep themselves PI_FFF_COMPAT_OVERRIDE=1
Disabled nothing PI_FFF_COMPAT_DISABLE=1

Commands

  • /fff-compat — index health, indexed file count, watcher/scan status.
  • /fff-compat-rescan — trigger a manual rescan.

Watcher & inotify budget

FFF maintains a real-time native watcher with one watch per indexed file. Scanning very large trees (e.g. a home directory) can exhaust fs.inotify.max_user_watches and leave the index silently stale on unwatched files. Two independent knobs:

  • PI_FFF_COMPAT_HOME_SCAN=1 — opt into home-dir scanning (default off; raise fs.inotify.max_user_watches when enabling).
  • PI_FFF_COMPAT_DISABLE_WATCH=1 — scan once, no live watcher (index goes stale until rescan).

The index itself, frecency, and git-aware filtering come from @ff-labs/fff-node, loaded as a normal dependency.