Read-only local workspace scout subagent package for pi.
Finder uses a single interface for both coding agents and personal AI assistants: perform one-shot reconnaissance, gather evidence, and return a compact cited map of the relevant locations.
From npm (after publish):
pi install npm:pi-finder-subagentFrom git:
pi install git:github.com/default-anton/pi-finderOr run without installing:
pi -e npm:pi-finder-subagent
# or
pi -e git:github.com/default-anton/pi-finder- Registers a
findertool. - Runs a dedicated subagent session for one-shot reconnaissance.
- Uses only
bash+readin the subagent. - Enforces read-only scouting behavior (
rg/fd/ls+ targeted reads). - Works across code and non-code files in local workspaces.
- Returns structured Markdown output (
Summary,Locations, optionalEvidence/Searched/Next steps). - Returns a compact map, not raw search noise: likely entrypoints, core files, nearby config/tests/docs/examples, and key citations.
- Selects subagent model via ordered
PI_FINDER_MODELSfailover withctx.modelfallback. - Emits compact selection diagnostics (
reason) in tool details.
finder({
query: string,
})query(required): the end goal for reconnaissance, how to search, what deliverable you want back, what counts as enough found, and (if known) scope hints such as directories/roots to prioritize.
Code-oriented:
Before I change authentication, map where it is implemented. Search under src/auth and src/api for login/auth/authenticate, and return the entrypoint, token/session handling, related config/tests, and line-cited anchors.Personal assistant-oriented:
In Documents or Desktop, find my latest trip itinerary PDF and any adjacent booking files, and list the top candidate paths with evidence.Finder uses local deterministic model routing with ordered failover.
Configure candidates with PI_FINDER_MODELS:
PI_FINDER_MODELS="provider/model:thinking,provider/model:thinking,..."Concrete example:
export PI_FINDER_MODELS="openai-codex/gpt-5.3-codex-spark:high,google-antigravity/gemini-3-flash:medium,anthropic/claude-sonnet-4-6:high"Rules:
thinkingmust be one of:off,minimal,low,medium,high,xhigh.- Tokens are parsed in order (comma-separated, trimmed, empty tokens ignored).
- Each token is filtered by:
ctx.modelRegistry.getAvailable()- Finder's in-memory temporary-unavailable cache (reason-aware TTL)
- Finder picks the first candidate passing both filters.
- If
PI_FINDER_MODELSis unset/blank, or no candidate passes filters, Finder triesctx.modelfallback using the same availability + temporary-unavailable filters. - On any final non-abort model failure, Finder fails over to the next available candidate.
- Temporary-unavailable TTLs are:
- quota-like final failures: 30 minutes
- other final failures: 10 minutes
- Finder does not add its own retry/backoff loop for transient errors; SDK retry behavior remains the first-line retry mechanism.
- Selection diagnostics stay compact and expose only
subagentSelection.reason.
npm run pack:checkApache-2.0