Respire for Pi

respire-pi is a native memory extension for the Pi coding agent 1.3.0, distributed from npm as @rsrsai/pi: automatic title recall before every answer, a prefix to request storage, and an eligible background storage review after settlement. It shares the npm-based Node.js form of the Codex plugin and only ever invokes rsrs --client-only. See the plugin overview for the shared tuning reference.
Install
Requires Node.js 22+, Pi 1.3.0, an installed rsrs CLI and a running Respire host runtime. Older @mariozechner/pi-coding-agent releases are not validated and lack the settlement interface used here.
Install the engine separately if needed:
Use the CLI installed by Client 2, or install it separately only if needed. If the host cannot find it, see CLI access for plugins.
rsrs --version
rsrs --client-only status --jsonInstall the published package:
pi install npm:@rsrsai/piAlternatively load it without changing Pi settings:
pi --extension ./respire-pi/lib/index.jsRestart Pi or run /reload after installation. Confirm with pi list: there should be one npm:@rsrsai/pi entry. No rsrs inject, AGENTS.md block, skill installation, MCP server or custom system prompt is required — the extension supplies its own memory rules. If an older setup already injected Respire rules into Pi's AGENTS.md, back up the file and remove only that old Respire block to avoid duplicate instructions.
Use
Start pi in your project and talk normally — the extension recalls matching memory titles before the model answers, and the model reads full records when it needs details. To save a confirmed fact, start your message with a store prefix:
remember: This project's release checklist requires a Windows smoke test.The Chinese prefixes 「记:」, 「存:」, 「记录:」 and 「记住:」 work too. Receipts have three states: success carries a memory id; pending means the engine found candidates and has not saved — the agent reads them and resolves whether to update or attach; unconfirmed means the outcome is unknown — check the library before retrying. A storage prefix requests saving the stated fact, not executing a workflow described inside it. Updating an existing memory keeps its id and is still a real write.
To skip automatic memory processing for one message, prefix it with /nomem (or #nomem); later messages and the memory rules are unaffected.
Update and remove
pi update npm:@rsrsai/pi
pi listRestart Pi or run /reload after updating. To pin a release, use pi install npm:@rsrsai/pi@<version>. To uninstall, run pi remove npm:@rsrsai/pi — your Respire engine and memory library are preserved.
If recall is unavailable, run rsrs --version and rsrs --client-only status --json in Pi's execution environment; resolve a missing CLI, stopped host runtime, locked library or missing login through the engine's own workflow — the extension cannot resolve those account/runtime states. If the package is installed but not loaded, check pi list, restart/reload, and make sure Pi package extensions are not disabled.
On Windows, the extension uses PowerShell 7.3+ (pwsh.exe) for npm/pnpm shims, passing JSON on stdin to preserve Unicode, quotes and shell metacharacters. A native rsrs.exe can be selected directly and needs no PowerShell bridge:
pi --respire-rsrs /path/to/rsrsKeep rsrs on PATH for the agent's own shell calls.
Behavior
| Trigger | Result |
|---|---|
| Human input (interactive UI or RPC) | Recalls up to 5 titles within 1500 characters |
「记:」, 「存:」, 「记录:」, 「记住:」, remember: | Attempts explicit storage once and attaches the actual engine receipt |
/nomem or #nomem followed by whitespace/end | Skips automatic memory processing for that input |
| Suspected credentials | Skips automatic recall and storage |
before_agent_start | Adds the stable rules to the structured system prompt |
| Completed agent run after settlement | At most one detached background review when automatic processing is enabled and the engine is ready; an aborted run or successful explicit store suppresses it |
| Aborted/failed run, engine skip, or unavailable engine | No background review |
Recall results and receipts are provided as request context and do not enter saved user messages, the session file or editor history. Inputs generated by extensions are ignored. Session switches and shutdown cancel outstanding engine calls.
Credential detection is best-effort; do not submit passwords, tokens or private keys. After a completed run, when automatic processing is enabled, the engine is ready and no explicit store succeeded, an isolated background worker may extract and attempt to store one fact after settlement, sending turn content to the selected model provider. Inspect the library before retrying an unconfirmed outcome.
Tests and release process live in the repository README.