pi-file-change-reminder
Pi extension that injects reminder messages when specific files are modified.
Package details
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
.gitor.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.