@davehardy20/pi-hashline-tools
Pi package for hash-anchored file reading and editing (read_hashed / hashline_edit).
Package details
Install @davehardy20/pi-hashline-tools from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@davehardy20/pi-hashline-tools- Package
@davehardy20/pi-hashline-tools- Version
0.1.0- Published
- May 17, 2026
- Downloads
- not available
- Author
- davehardy20
- License
- MIT
- Types
- extension
- Size
- 51.5 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@davehardy20/pi-hashline-tools
Pi package for hash-anchored file reading and editing.
What it adds
read_hashedtool — Read a file and return content withLINE#IDhash-anchored line identifiers.hashline_edittool — Edit files usingLINE#IDformat for precise, hash-validated modifications./hashline-statuscommand — Show package name, version, and loaded source path.
Workflow
- Call
read_hashedto getLINE#HASH|contenttagged output. - Call
hashline_editwith exactLINE#IDreferences from the output. - If hashes mismatch (file changed), the error includes updated tags for retry.
Install
From npm:
pi install npm:@davehardy20/pi-hashline-tools
From git:
pi install git:github.com/davehardy20/pi-hashline-tools
From a local checkout during development:
pi install /Users/dave/tools/pi-hashline-tools
For one run only:
pi -e /Users/dave/tools/pi-hashline-tools
Settings
No special settings required. The tools use the working directory from the Pi context.
Notes
- This is a workflow package archetype: it bundles the hashline engine (hash computation, validation, edit application) and path utilities as package-local helpers.
- Blank or whitespace-only lines are shown without a hash and cannot be used as edit anchors.
- Edits are applied bottom-up so that multiple operations in one call reference the original file state.
- The package does not import from
~/.pi/agent/extensions/shared/*at runtime.
Troubleshooting
Run /hashline-status to confirm:
- package name and version
- loaded source path
- package root
If commands appear twice, Pi may be loading both the package and the old local extension. Disable or remove the old local auto-discovered extension before reload verification.
Update flow
- Update the package repo
- Push to GitHub
- Run
pi update --extensionsor reinstall the package - Run
/reload
/reload alone does not fetch newer package commits.
Build and test
npm run typecheck
npm run build
npm test