{"_id":"@arcanemachine/pi-notify-marker","_rev":"7-a569c19c9cf8697ce3f0c6241c3da9b5","name":"@arcanemachine/pi-notify-marker","dist-tags":{"latest":"0.3.4"},"versions":{"0.1.0":{"name":"@arcanemachine/pi-notify-marker","version":"0.1.0","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.1.0","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"ea5ca42482730c77331ed6ac0b97a279954feed6","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.1.0.tgz","fileCount":5,"integrity":"sha512-BTwd1y4SO5GUwZ09siVQp7V7p15i3k1pYCG2CIIuWQu6FMc6rv+h6hteUabu7jsepYHsiMnCKHiePAiHTn7K9Q==","signatures":[{"sig":"MEQCIAF9tEuzAHpMY7FaZ0ZaMpxmd4qGYMvA8LsRQE++ZWchAiBNLFYum+HL4DdBw9Ga3rYodZ9y3aRpWdecmWgW6w+RAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7336},"type":"module","gitHead":"7f7d2dbfe99cb372c7109bbe803529859ed5b696","scripts":{"build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"10.9.2","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^25.3.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.1.0_1777871834989_0.8084299900683092","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@arcanemachine/pi-notify-marker","version":"0.2.0","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.2.0","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"8eaebf1ada07bd6385b2d88258a0000c31e017dc","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.2.0.tgz","fileCount":5,"integrity":"sha512-fhHid9j/W+7nlH+SnIHYZzsSNgkWNdTq1JS2Fh7mB5r2a5Ylwmykn12hDHCUq4KH4ENKA9xzzhEZ0pSMUSmj6A==","signatures":[{"sig":"MEUCIG9o9Z522LAXj8gufMRqJX72w/uN7ZLM0lJsUJJnH8mDAiEA4LC/1rCh0OMh09gEB6hGyx6GqWagd3OB39GckrhAlH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7908},"type":"module","gitHead":"ae2fb8130462194076267516c27edd4ca2e4ce0e","scripts":{"build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"10.9.2","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^25.3.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.2.0_1777875058352_0.1751927382924361","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@arcanemachine/pi-notify-marker","version":"0.3.0","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.3.0","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"047f658a8b6ffc3afab17123d2bbdabee6e4d068","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.3.0.tgz","fileCount":5,"integrity":"sha512-EaVkPtsYhSxlS6CI6xSwfio9HXxVI1LPVj2shjnW803H41zCDllcDrmxX+DOBzekbeR/2x0YFd8lb2LM4P77+w==","signatures":[{"sig":"MEYCIQChr+PMSVcKWiiwCMHPnnQPEYWrwGyIUzf9Z4ZNNHuT/AIhAOdktmeTxb/XfUTGCfx8iS3/nWe267fT4vRnbvJOovrP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16199},"type":"module","scripts":{"test":"tsc -p tsconfig.test.json && node --import tsx --test test/*.test.ts","build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"11.13.0","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.7.2","@types/node":"^25.3.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.3.0_1784370226973_0.044603798467323985","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@arcanemachine/pi-notify-marker","version":"0.3.1","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.3.1","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"6060bb44757bafe89a757b3ae6cc9b7a339a71f9","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.3.1.tgz","fileCount":5,"integrity":"sha512-+P9eaC5QZezPD97r4Qii3zrN7HKv2zzJ3Y8sOds+qjwfUp1BxsMUoR91QODaKmQDH5qUX0mV7vulrrbbHXM4LA==","signatures":[{"sig":"MEQCICVgxF/bkrNII0E3P3nGYQkhbY814Ye28PXcG4fvZaHyAiBxeCeKMCZMitICjpnynA++rXRbbKJP7RMhXflFwzUnqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16299},"type":"module","scripts":{"test":"tsc -p tsconfig.test.json && node --import tsx --test test/*.test.ts","build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"11.13.0","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.7.2","@types/node":"^25.3.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.3.1_1787017806308_0.2593932277064519","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@arcanemachine/pi-notify-marker","version":"0.3.2","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.3.2","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"16fd7f2a8f4d956c9b0b61d91c2ac37a6e2ef800","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.3.2.tgz","fileCount":5,"integrity":"sha512-k1I3kOMbaiq4UkiH2s+uFJM5Q/sbqeShao3wqjimaQtTBSRORY9FcUbcku7UcK4C8xio0Hqkg4pzBOcbtWGwZg==","signatures":[{"sig":"MEYCIQDx+PilLw8jZMKn8Frd13Ikh/ZelSw5rK9Y96Ud0NwE5QIhAOdSkEeDCnTUcN8oFrBiIJ3P212UOvpUzt+4RhISwb+x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16299},"type":"module","scripts":{"test":"tsc -p tsconfig.test.json && node --import tsx --test test/*.test.ts","build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"11.13.0","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.7.2","@types/node":"^25.3.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.3.2_1787371374188_0.7042788585286581","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@arcanemachine/pi-notify-marker","version":"0.3.3","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-notify-marker@0.3.3","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-notify-marker","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"140f68594ca8d03a5bc24d7469a7bc0958ead5f9","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.3.3.tgz","fileCount":6,"integrity":"sha512-AQ2tl07/bQ9EqnWjSAtvBrwb87OoHeWT7+MYte7peQEbO8lAwvKEE4wjarGUMXKh0QxT1fE+XCAVnfDppLYrXQ==","signatures":[{"sig":"MEQCIHThyO3jzIHXUeQm4FrBxuF0ezN23cGG5jJuFwrfymY3AiBw1bUv2tFTudRQC9vMTg6DkxjTRHbIXQkIyPBISJI3yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGQJqf/qvJSR44kISLWzBkb4IIZg0qLZ76hWTQwiK3JwAiB6gqAJI2G/nqEEbfupI42r71VtCQYG809yD74MMdO8Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80924},"type":"module","scripts":{"test":"tsc -p tsconfig.test.json && node --import tsx --test test/*.test.ts","build":"tsc","watch":"tsc --watch"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"11.13.0","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.7.2","@types/node":"^25.3.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-notify-marker_0.3.3_1788679799732_0.4951681363839533","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg","extensions":["./src/index.ts"]},"_id":"@arcanemachine/pi-notify-marker@0.3.4","bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"dist":{"shasum":"e1964cff952210cee8ca00577ef28f98cd03d639","tarball":"https://registry.npmjs.org/@arcanemachine/pi-notify-marker/-/pi-notify-marker-0.3.4.tgz","fileCount":6,"integrity":"sha512-FEFhYMyZ50vUJz3kysnPogEiFNHMaLl6WiyV0ztajnmTSy1L2K5KTwgNrnhJY34hdkgHJ3RvDasUAo/hZGHwWQ==","signatures":[{"sig":"MEUCICkwI3UCP91RPvL0CjN+6OJseEzn49foB/viHmx9JIRbAiEAsNdAEdM4kiVbNGf0QWQzGNhPzQe52NynvJHf7339XPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB6aa6BlmQHb3BO5aFV2nOt2JJn4Gu6TlIdQmQpmblo+AiBXzlb3Ps/nB2ZBG/flGk77uvog+flZy/srNGmOWqXjJg=="}],"unpackedSize":85949},"name":"@arcanemachine/pi-notify-marker","type":"module","author":{"name":"Nicholas Moen"},"license":"MIT","scripts":{"test":"tsc -p tsconfig.test.json && node --import tsx --test test/*.test.ts","build":"tsc","watch":"tsc --watch","format":"prettier --write src/index.ts package.json README.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/index.ts package.json README.md","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"version":"0.3.4","_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"homepage":"https://github.com/arcanemachine/pi-notify-marker","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"_npmVersion":"11.13.0","description":"Marker file plugin for Pi coding agent - create files when events occur","directories":{},"maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","typescript":"^5.7.2","@types/node":"^25.3.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-notify-marker_0.3.4_1789141787959_0.9865843324517043"}}},"time":{"created":"2026-05-04T05:17:14.859Z","modified":"2026-09-11T15:49:48.221Z","0.1.0":"2026-05-04T05:17:15.140Z","0.2.0":"2026-05-04T06:10:58.506Z","0.3.0":"2026-07-18T10:23:47.099Z","0.3.1":"2026-08-18T01:50:06.476Z","0.3.2":"2026-08-22T04:02:54.355Z","0.3.3":"2026-09-06T07:29:59.805Z","0.3.4":"2026-09-11T15:49:48.051Z"},"bugs":{"url":"https://github.com/arcanemachine/pi-notify-marker/issues"},"author":{"name":"Nicholas Moen"},"license":"MIT","homepage":"https://github.com/arcanemachine/pi-notify-marker","keywords":["pi","pi-coding-agent","extension","notifications","markers","pi-package"],"repository":{"url":"git+https://github.com/arcanemachine/pi-notify-marker.git","type":"git"},"description":"Marker file plugin for Pi coding agent - create files when events occur","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"readme":"# pi-notify-marker\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/arcanemachine/pi-notify-marker/main/logo.jpg\" alt=\"pi-notify-marker logo\" width=\"250\" />\n</p>\n\n> Marker file plugin for Pi coding agent - create files when a Pi run settles.\n\nA plugin for [Pi](https://github.com/badlogic/pi-mono) that creates marker files when a Pi run settles. Useful for external monitoring scripts to detect when the agent has finished (e.g. when running Pi in a container where native OS notifications cannot be triggered).\n\nThis project is similar to [opencode-notify-marker](https://github.com/arcanemachine/opencode-notify-marker) but for Pi coding agent.\n\n> Like this extension? See [my other Pi extensions](https://github.com/arcanemachine/pi-projects).\n\n## Why This Exists\n\nSo that you can run Pi in a container, and still have a means of getting OS notifications on the host.\n\n## How It Works\n\nWhen a Pi run settles (no automatic retry, compaction recovery, or queued continuation left), the plugin atomically replaces one `AGENT_DONE` marker in a configurable directory.\n\nThe marker contains a short metadata record identifying the latest writer: the event, session name, and session ID. Repeated settled events coalesce while a marker is pending, so an unattended directory cannot accumulate one file per turn. The metadata identifies the latest writer only.\n\nThe included script `./watch-and-notify.sh` watches the marker directory and sends Linux OS notifications (via `notify-send`) when the marker is published. It claims the marker before reading and deleting it, so a concurrent completion can publish the next marker safely. Legacy `AGENT_DONE.<suffix>` markers are still consumed and removed.\n\n### Supported Events\n\n| Event         | Pi event        | Marker prefix | Meaning                                                           |\n| ------------- | --------------- | ------------- | ----------------------------------------------------------------- |\n| Agent settled | `agent_settled` | `AGENT_DONE`  | Pi has no retry, compaction recovery, or queued continuation left |\n\nSettled events are coalesced while a marker is pending; with the watcher running, each marker publication normally produces one notification.\n\n## Installation\n\n### From GitHub (Recommended)\n\n```bash\npi install git:github.com/arcanemachine/pi-notify-marker\n```\n\nTo update to the latest version:\n\n```bash\npi update git:github.com/arcanemachine/pi-notify-marker\n```\n\n### From npm\n\n```bash\npi install npm:@arcanemachine/pi-notify-marker\n```\n\nTo update to the latest version:\n\n```bash\npi update npm:@arcanemachine/pi-notify-marker\n```\n\n### From Local Clone\n\n```bash\ngit clone https://github.com/arcanemachine/pi-notify-marker.git\ncd pi-notify-marker\npi install /path/to/pi-notify-marker\n```\n\nNo local `npm install` is required for normal usage.\n\n## Usage\n\nIf you want desktop notifications when an agent run settles:\n\n1. Start Pi in the container with `PI_NOTIFY_MARKER_DIR` pointing at a host-mounted directory.\n2. Run `watch-and-notify.sh` from the host with `PI_NOTIFY_MARKER_WATCH_DIR` pointing at the same directory.\n\nThe extension and watcher share one pending marker. If the watcher is offline, later settled events replace the metadata rather than creating additional files; the next notification identifies the latest writer.\n\n## Requirements\n\n- A Pi version that supports the `agent_settled` event (0.80.10 or later).\n- Linux host notification support through `notify-send`.\n- Optional `inotifywait` for efficient file watching; the watcher falls back to polling when it is absent.\n- Optional `flock` for single-instance protection; without it, two watchers on the same directory can emit duplicate notifications.\n\n## Commands\n\nThe extension registers three slash commands:\n\n| Command                  | Description                                         |\n| ------------------------ | --------------------------------------------------- |\n| `/notify-marker:pause`   | Suppress completion notifications for this session. |\n| `/notify-marker:unpause` | Resume completion notifications for this session.   |\n| `/notify-marker:status`  | Show the current pause state for this session.      |\n\nPause state is per Pi session and persisted in the session itself:\n\n- An explicit pause or unpause survives `/reload` and `/resume`.\n- New sessions and forks start from the configured default (see the `pi-notify-marker` settings namespace and `PI_NOTIFY_MARKER_PAUSED_BY_DEFAULT`).\n- Forks that inherit an explicit override reset to the default and persist the reset, so a later reload cannot resurrect the parent's operational preference.\n\n`/notify-marker:status` reports one of:\n\n- `active` — explicitly unpaused.\n- `paused` — explicitly paused.\n- `active (default)` — no explicit override; default is active.\n- `paused (default)` — no explicit override; default is paused.\n\nCommand feedback is shown via Pi UI notifications (visible in the TUI and over RPC). It is intentionally a no-op in print/JSON modes.\n\n## Configuration\n\nThe extension's pause default uses Pi's normal settings files. The watcher and marker directory remain process or shell configuration because they may refer to different sides of a container boundary.\n\nAdd the `pi-notify-marker` namespace to global `~/.pi/agent/settings.json` or to a trusted project's `<project>/.pi/settings.json`:\n\n```json\n{\n  \"pi-notify-marker\": {\n    \"pausedByDefault\": true\n  }\n}\n```\n\nProject settings override the global value. Set `pausedByDefault` to `true` to start sessions paused; `false` or an omitted value means active. Changes apply after `/reload` or a restart. Invalid values produce a warning and use the lower-priority environment fallback or active default.\n\nThe existing `PI_NOTIFY_MARKER_PAUSED_BY_DEFAULT` environment variable remains supported as a process-level override. Recognized truthy values (case-insensitive, surrounding whitespace trimmed) are `1`, `true`, `yes`, and `on`; any other value means active. When set, the environment value takes precedence over settings.\n\n```bash\n# Custom marker directory (extension side, inside the container)\nPI_NOTIFY_MARKER_DIR=\"/path/to/some/dir\" pi\n\n# Same directory, host side, for the watcher\nPI_NOTIFY_MARKER_WATCH_DIR=\"/path/to/some/dir\" ./watch-and-notify.sh\n```\n\nAn explicit `/notify-marker:pause` always suppresses and an explicit `/notify-marker:unpause` always emits, regardless of the configured default.\n\nNote: `~` may not be expanded in all environments. Prefer absolute paths. Relative paths and `$HOME/...` can also work, but make sure Pi and the watcher resolve to the same directory.\n\n## Development install (optional)\n\nIf you are editing the extension itself, install dev tooling only:\n\n```bash\nnpm install --loglevel=warn\nnpm test\n```\n\nThis package keeps `@earendil-works/pi-coding-agent` as an optional peer to avoid pulling a large dependency tree during normal installs.\n\nTests use Node's built-in `node:test` runner with `tsx`; no model requests, desktop notifications, or persistent host directories are used.\n","readmeFilename":"README.md"}