hookify
Warn about or block unwanted agent behaviour with simple Markdown rules (.navin/hookify.<name>.local.md), created from an instruction or from the conversation, checked natively on every action.
Reference
| Field | Value |
|---|---|
| Name | hookify |
| Version | 1.0.0 |
| Category | Productivity |
| Licence | Not declared |
| Source | catalog/navin/builtin_plugins/hookify/plugin.json |
| README | catalog/navin/builtin_plugins/hookify/README.md |
| Digest | sha256:35024c860a60855bf52a07167b479dd480051b76356763508016e6677969317c |
| plugin.json | agents, category, commands, description, name, skills, steps, version |
Commands
| Name | Arguments | Description |
|---|---|---|
/hookify | [behaviour to prevent] | Create hookify rules that warn about or block unwanted agent behaviour, from your instructions or from the conversation |
/hookify-list | - | List the hookify rules of this project and of your personal folder, with their state |
/hookify-configure | - | Switch existing hookify rules on or off through a choice card |
/hookify-help | - | Explain how hookify rules work and how to create, list and configure them |
Agents
| Name | Tools | Model | Description |
|---|---|---|---|
conversation-analyzer | read_file, grep, find_files | inherit | Reads conversation excerpts and finds the agent behaviours the user wants to prevent (corrections, frustration, repeated mistakes), then turns each one into a ready-to-use hookify rule with event, regex pattern and severity. Use when /hookify runs without arguments, or when the user asks to review the conversation and create rules for the mistakes that were made. |
Skills
| Name | Description |
|---|---|
| hookify-rules | Explains how to write hookify rules, the Markdown files in .navin/hookify.<name>.local.md that warn about or block agent actions (shell commands, file edits, stopping, user prompts) by matching regex patterns. |
| hook-development | Write Navin lifecycle hooks (hooks.json, PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, Stop, SubagentStop) as shell commands that read the event JSON on stdin and block, warn or add context through exit codes and JSON output. |
Hooks, MCP servers and settings
plugin.json declares no hook, no MCP server and no setting: the plugin is made of the components above only.
Workflow
| Step | Use |
|---|---|
| create a rule from an instruction or the conversation | /hookify |
| find the behaviours the user corrected | agent:conversation-analyzer |
| list the rules and their state | /hookify-list |
| switch rules on or off | /hookify-configure |
| explain how rules work | /hookify-help |
| write or fix a rule by hand | skill:hookify-rules |
| write a full shell hook instead of a rule | skill:hook-development |
Enable it in a project
Activating hookify creates 8 activations in the project: the plugin itself, 2 skills, 4 commands and 1 agent. Removing the plugin activation removes them all.
curl -X POST <control-plane-url>/v1/projects/<project>/navin-library/activations \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"kind": "plugin", "name": "hookify"}'
<project>: id or slug of the project. <token>: API key with the editor role on the project.
client.navin_library.activate("<project>", "plugin", "hookify")