@davehardy20/pi-hashline-tools

Pi package for hash-anchored file reading and editing (read_hashed / hashline_edit).

Packages

Package details

extension

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_hashed tool — Read a file and return content with LINE#ID hash-anchored line identifiers.
  • hashline_edit tool — Edit files using LINE#ID format for precise, hash-validated modifications.
  • /hashline-status command — Show package name, version, and loaded source path.

Workflow

  1. Call read_hashed to get LINE#HASH|content tagged output.
  2. Call hashline_edit with exact LINE#ID references from the output.
  3. 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

  1. Update the package repo
  2. Push to GitHub
  3. Run pi update --extensions or reinstall the package
  4. Run /reload

/reload alone does not fetch newer package commits.

Build and test

npm run typecheck
npm run build
npm test