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.1
Published
Jul 15, 2026
Downloads
38/mo · 6/wk
Author
alexgorbatchev
License
MIT
Types
extension
Size
18.2 KB
Dependencies
1 dependency · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./src/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 Bun.

bun install
bun run fix
bun run check
bun run test

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.