pi-readseek

Pi extension for LINE:HASH-anchored file operations and structural code navigation

Packages

Package details

extension

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 require image; values are all, ocr, caption, and objects. In "auto", none returns 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.maxLines and grep.maxBytes: output limits; larger values are clamped to the defaults.
  • display: initial "compact" or "expanded" state for read, grep, edit, and write results.

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.