Receber por email
← Voltar para o catálogo

create-hook

Cria ou adiciona hooks de ciclo de vida para agentes Cursor. Use quando o usuário pedir para criar, adicionar ou configurar um hook, ou para automatizar ações em eventos como agent stop, afterFileEdit, afterAgentResponse, entre outros. Os hooks ficam em .cursor/hooks/ e são registrados em .cursor/hooks.json.

54estrelas
Atualizado há 8 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add diegosouzapw/awesome-omni-skill

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/create-hook/svg)](https://www.skillteca.com.br/skills/create-hook)

Skills relacionadas

Ver todas de Outros →

Alerta por categoria

Receba novas skills de Outros toda segunda

1 email curto, só com as skills novas de Outros. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Create Hook

Type: Utility skill (procedural, no agentic lead or sub-agents).

Adds a Cursor lifecycle hook: a script that runs when a specific agent event fires. Hooks are project-level only (.cursor/hooks/ and .cursor/hooks.json).

1. Choose the lifecycle event

Register the hook under one of these keys in hooks.json:

| Event | When it runs | | ----------------------------------------------- | ------------------------------------- | | stop | When the agent stops (end of turn) | | afterFileEdit | After the agent edits a file | | afterAgentResponse | After the agent sends a response | | beforeSubmitPrompt | Before the user's prompt is submitted | | beforeReadFile / afterShellExecution / etc. | See Cursor docs for full list |

2. Add the script

  • Path: .cursor/hooks/<name>.js (or .sh if shell). Use a clear name (e.g. memory-reminder.js, on-stop.js).
  • Runtime: Node.js is typical; command in hooks.json is run with Cursor's working directory set so that node hooks/<name>.js resolves (run from .cursor).
  • Input: The hook receives a single JSON object on stdin. Read it like this:
let input = "";
process.stdin.setEncoding("utf8");
process.stdin.on("data", (chunk) => {
  input += chunk;
});
process.stdin.on("end", () => {
  const payload = JSON.parse(input);
  const roots = payload.workspace_roots || [process.cwd()];
  const root = path.resolve(roots[0]); // repo root
  // ... use root for paths like path.join(root, '.cursor', 'next-step.md')
});
  • Payload: Often includes workspace_roots (array of repo roots). Use the first root as the project root for paths. Event-specific payloads may include file_path, prompt, etc.
  • Output: Hook can write files (e.g. .cursor/next-step.md), log to stderr, or exit; avoid writing to stdout if the protocol expects JSON there.
  • Shebang: Start Node scripts with #!/usr/bin/env node.

3. Register in hooks.json

  • Path: .cursor/hooks.json
  • Format:
{
  "version": 1,
  "hooks": {
    "stop": [
      { "command": "node hooks/on-stop.js" },
      { "command": "node hooks/my-new-hook.js" }
    ]
  }
}
  • Append to the array for the chosen event; do not remove existing hooks unless the user asks to replace them.

Checklist

  • [ ] Script created under .cursor/hooks/<name>.js (or .sh)
  • [ ] Script reads JSON from stdin and uses workspace_roots for repo root when needed
  • [ ] Entry added to .cursor/hooks.json under the correct event key
  • [ ] Command is node hooks/<name>.js (or ./hooks/<name>.sh); path is relative to .cursor

Reference

  • Existing hooks in this repo: .cursor/hooks/on-stop.js, .cursor/hooks/after-file-edit.js, .cursor/hooks/memory-reminder.js — use them as patterns for stdin handling and path.join(root, ...).
  • Project memory (.cursor/memory.md) notes that new hooks should be added under .cursor/hooks/ and registered in .cursor/hooks.json.
Compartilhar X LinkedIn