Files
paseo/plugin-examples/lifecycle-actions/README.md
Mohamed Boudra 229f3cd5a8 Accept prerelease Paseo versions in plugin requirements and prepare plugin docs for the 0.8 beta (#4452)
Accept plugin requirements against the runtime version or its stable core while preserving the legacy version boundary. Validate all example manifests, correct the ACP example metadata, and prepare plugin author documentation for the beta.
2026-09-08 08:30:52 +02:00

37 lines
2.0 KiB
Markdown

# Lifecycle actions
Small callbacks using the existing SDK:
- Send `Try again.` when the latest output contains `out of credits`.
- Decline a shell request matching `rm -rf`; approve exactly `git status`; leave other requests alone.
- Inject `PASEO_HOOK_CREATE_EXAMPLE=created` on creation and `PASEO_HOOK_OPEN_EXAMPLE=opened` on 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:
```bash
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](../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](../../public-docs/plugins/v0.8/reference.md#lifecycle-hooks) for the API.