pi-readseek
Pi extension for LINE:HASH-anchored file operations and structural code navigation
Package details
Install pi-readseek from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-readseek- Package
pi-readseek- Version
0.8.23- Published
- Aug 1, 2026
- Downloads
- 13.1K/mo · 3,810/wk
- Author
- jarkkojs
- License
- Apache-2.0
- Types
- extension
- Size
- 302.8 KB
- Dependencies
- 3 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./dist/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-readseek
pi-readseek adds ReadSeek's anchored file operations, structural search,
symbol navigation, and PDF tools to Pi. Built-ins remain available unless
replacedTools maps read, edit, write, or grep to a ReadSeek-backed
implementation.
Install
pi install npm:pi-readseek
The package depends on @jarkkojs/readseek, which supplies the native binary on
supported platforms.
Tools
| Tool | Purpose |
|---|---|
readSeek_read |
Read anchored text by range, symbol, or map; read images and PDFs |
readSeek_edit |
Apply hash-verified edits to an existing text file |
readSeek_write |
Create or replace a complete text file and return anchors |
readSeek_grep |
Search text or regex and return edit-ready anchors |
readSeek_search |
Search AST patterns |
readSeek_def |
Find symbol definitions |
readSeek_refs |
Find identifier usages, optionally scoped to a cursor binding |
readSeek_hover |
Identify the token and enclosing symbol at a cursor |
readSeek_rename |
Rename a cursor symbol; set apply: false to preview the plan |
readSeek_check |
Report parser errors and missing syntax |
readSeek_view |
View or narrow a structural PDF index |
The extension also tells Pi to get fresh anchors before editing and to run a syntax check after source edits.
Settings
Add a readseek object to ~/.pi/agent/settings.json (global) or
.pi/settings.json (project). Project settings override matching global values.
Defaults:
{
"readseek": {
"replacedTools": [],
"imageMode": "auto",
"syntaxValidation": "warn",
"timeoutMs": 120000,
"grep": {
"maxLines": 2000,
"maxBytes": 51200
},
"display": {
"read": "compact",
"grep": "compact",
"edit": "expanded",
"write": "expanded"
}
}
}
replacedTools: any of"read","edit","write", and"grep".imageMode:"auto"uses Pi's native image input when available,"on"always runs local analysis, and"off"skips images while still reading PDF text. Standalone images requireimage; values areall,ocr,caption, andobjects. In"auto",nonereturns a prepared standalone image without local analysis. Local analysis uses Qwen3-VL-2B-Instruct.syntaxValidation:"warn"(write and warn),"block"(abort), or"off". Validation triggers only when an edit increases parser error or missing-node counts.timeoutMs: native command timeout in milliseconds.grep.maxLinesandgrep.maxBytes: output limits; larger values are clamped to the defaults.display: initial"compact"or"expanded"state forread,grep,edit, andwriteresults.
Development
npm install
npm test
npm run typecheck
License
pi-readseek is Apache-2.0; see LICENSE.
@jarkkojs/readseek is licensed separately under
Apache-2.0 AND LGPL-2.1-or-later.