Use one registration method and subject.operation.step names so plugin authors can read whether an operation waits. Preserve old registrations through a single SDK adapter and keep timing and payloads unchanged.
Lifecycle actions
Small callbacks using the existing SDK:
- Send
Try again.when the latest output containsout of credits. - Decline a shell request matching
rm -rf; approve exactlygit status; leave other requests alone. - Inject
PASEO_HOOK_CREATE_EXAMPLE=createdon creation andPASEO_HOOK_OPEN_EXAMPLE=openedon each session opening. - Change requested Codex agents to Claude Haiku before creation.
- Create a worktree when a directory creation request is titled
Isolated lifecycle example.
This is a demonstration plugin: installing it enables all these behaviors on its host. Install it
alongside lifecycle-logger on a test daemon with plugins enabled:
paseo plugin install /absolute/path/to/plugin-examples/lifecycle-actions
paseo plugin install /absolute/path/to/plugin-examples/lifecycle-logger
paseo plugin logs lifecycle-logger
Outside the Paseo repository, server/inspect.ts needs @getpaseo/protocol installed for its
type imports. Add it to your plugin development dependencies at the same version as
@getpaseo/plugin before installing this example.
Copy the callbacks you need into your own plugin. The follow-up example sends a new message; it does not replay attachments or undo previous tool effects. If the provider keeps returning the matching phrase, it keeps sending follow-ups. Add limits or delay in your plugin when your workflow needs them. The command regex illustrates a policy; it does not parse shell syntax or cover every deletion command.
server/inspect.ts joins provider text chunks and excludes earlier turns and the current user prompt
from the phrase match. The failing-first regression test records the split text observed with a real
Claude agent.
See agent configuration for a focused example that injects MCP servers and changes Codex sandbox and approval options while preserving other settings.
See the lifecycle reference for the API.