pi-file-change-reminder

Pi extension that injects reminder messages when specific files are modified.

Packages

Package details

extension

Install pi-file-change-reminder from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-file-change-reminder
Package
pi-file-change-reminder
Version
2.0.0
Published
Mar 31, 2026
Downloads
32/mo · 4/wk
Author
alexgorbatchev
License
MIT
Types
extension
Size
17.5 KB
Dependencies
1 dependency · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./fileChangeReminderExtension.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-file-change-reminder

pi extension that injects reminder messages when matching files are modified via write, edit, or multi_tool_use.parallel tool calls.

Install

pi install npm:pi-file-change-reminder

Quick start

Create a rules file at your project root:

.pi/reminders.json

[
  {
    "glob": "README.md",
    "reminder": "Run docs checks after editing README.md"
  },
  {
    "glob": "src/**/*.ts",
    "reminder": "Run the TypeScript test suite before finishing"
  }
]

Slash command

Use the built-in extension command:

/pi-file-change-reminder

This injects a user message that asks Pi to help update the reminder config file with the required JSON shape, safety constraints, and picomatch glob guidance.

You can also include a specific change request:

/pi-file-change-reminder add a rule for docs/**/*.md reminding me to run vale

Rules file resolution

Preferred configuration uses Pi settings via the package-scoped pi-file-change-reminder block.

Global ~/.pi/agent/settings.json:

{
  "pi-file-change-reminder": {
    "rulesFile": ".pi/reminders.json"
  }
}

Project <cwd>/.pi/settings.json:

{
  "pi-file-change-reminder": {
    "rulesFile": "config/reminders.json"
  }
}

The extension reads both scopes through Pi's SettingsManager, with project settings overriding global settings.

If no setting is configured, the default rules path is .pi/reminders.json resolved from the nearest ancestor directory containing either:

  • .git, or
  • .pi

If no ancestor contains either marker, resolution falls back to Pi's current working directory.

Relative rulesFile values are resolved from that detected project directory. Absolute rulesFile values are used as-is.

Glob behavior

  • Matching engine: picomatch
  • Relative rule globs match against paths relative to the project marker directory (nearest ancestor with .git or .pi).
  • Absolute rule globs match against normalized absolute file paths.

Runtime behavior

  • When a rule matches a modified file, the extension injects the reminder as a user message.
  • In interactive mode, it also shows an info notification with the matched path and rule.

Development

This package uses npm.

npm install
npm run check

Or run the individual checks:

npm run typecheck
npm run verify:pi-load

Current limitation

Reminder deduplication is currently keyed by reminder text. If two different rules use the same reminder string, only one will be injected per session branch.