agentsclimarketplace

Hook manager

Skill aida-core/aida-core-plugin/skills/hook-manager

List, add, remove, and validate Claude Code lifecycle hook entries in settings.json, routed through /aida extension management. Use for structured CRUD on the hooks block. For general settings.json edits or other harness behavior changes, use the native settings/config flow instead.From its SKILL.md

Install
npx -y skills add aida-core/aida-core-plugin --skill hook-manager

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.8 KB, as published. Nobody here has run it

<!-- SPDX-FileCopyrightText: 2026 The AIDA Core Authors --> <!-- SPDX-License-Identifier: MPL-2.0 -->

Hook Manager

Manages Claude Code lifecycle hook configurations. Hooks are shell commands that execute automatically at specific points in the Claude Code lifecycle, providing deterministic control over formatting, logging, blocking, and notifications.

Activation

This skill activates when:

  • User invokes /aida hook list
  • User invokes /aida hook add
  • User invokes /aida hook remove
  • User invokes /aida hook validate
  • Hook management is needed

Operations

List Hooks

Show all configured hooks across settings files.

python {base_directory}/scripts/manage.py --execute \
  --context='{"operation": "list", "scope": "all"}'

Scopes:

  • user -- User-level hooks only
  • project -- Project-level hooks only
  • local -- Local overrides only
  • all -- All hooks (default)

Add Hook

Add a new hook using the two-phase API.

Phase 1: Gather Context

python {base_directory}/scripts/manage.py \
  --get-questions \
  --context='{"operation": "add", "description": "..."}'

Returns questions about event type, scope, and whether to use a built-in template.

Phase 2: Execute

python {base_directory}/scripts/manage.py --execute \
  --context='{"operation": "add", "event": "PostToolUse", "matcher": "Write|Edit", "command": "prettier --write", "scope": "project"}'

Built-in templates:

TemplateEventPurpose
formatterPostToolUseAuto-format after writes
loggerPostToolUseLog commands for audit
blockerPreToolUseBlock sensitive file writes
notifierNotificationDesktop notifications

Remove Hook

Remove a hook by event and matcher.

python {base_directory}/scripts/manage.py --execute \
  --context='{"operation": "remove", "event": "PostToolUse", "matcher": "Write|Edit", "scope": "project"}'

Validate Hooks

Validate hook configurations for correctness.

python {base_directory}/scripts/manage.py --execute \
  --context='{"operation": "validate", "scope": "all"}'

Checks:

  • Hook structure (required fields)
  • Event names are valid
  • Commands are safe (warns about dangerous patterns)

Two-Phase API

Phase 1: get_questions(context)

Analyzes the operation context and returns:

  • questions: List of questions needing user input
  • inferred: Values inferred from the description

Phase 2: execute(context, responses)

Executes the operation with user responses and returns:

  • success: Whether the operation succeeded
  • message: Human-readable result message
  • Operation-specific data (hooks list, added hook, etc.)

Hook Configuration Locations

ScopePathUse Case
user~/.claude/settings.jsonPersonal hooks
project.claude/settings.jsonShared team hooks
local.claude/settings.local.jsonLocal overrides

Path Resolution

Script entry point:

{base_directory}/scripts/manage.py

Reference docs:

{base_directory}/references/hooks-reference.md

Resources

Scripts

ScriptPurpose
scripts/manage.pyTwo-phase API entry point
scripts/_paths.pyPath setup for shared utils
scripts/operations/hooks.pyHook operations

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.