Skip to content
Back to skills

Hooks And Extensions

ASecurity

"Extend Kedro with hooks plugins custom CLI commands custom

  • 247 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 8, 2026
devopspythonnodefastapidockerdebuggingapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill hooks-and-extensions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hooks And Extensions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hooks And Extensions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-hooks-and-extensions/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-hooks-and-extensions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hooks-and-extensions
description: "Extend Kedro with hooks plugins custom CLI commands custom
  datasets custom runners notebooks serving and deployment integration points."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Hooks And Extensions

Use this sub-skill when a task asks how to extend Kedro rather than only use a standard project: project hooks, installable plugins, custom Click commands, custom datasets, custom runner surfaces, IPython/Jupyter line magics, minimal HTTP serving, or deployment-platform integration patterns.

## Route Here

- Add project hooks with `from kedro.framework.hooks import hook_impl`, register instances in `settings.py` as `HOOKS = (...)`, or disable installed plugin hooks with `DISABLE_HOOKS_FOR_PLUGINS`.
- Build or debug installable plugins that expose `kedro.hooks`, `kedro.cli_hooks`, `kedro.global_commands`, `kedro.project_commands`, `kedro.init`, `kedro.line_magic`, or starter entry points.
- Override or add project CLI commands through `src/<package_name>/cli.py`, or expose reusable Click command groups from a plugin.
- Implement an `AbstractDataset` or `AbstractVersionedDataset` subclass, especially when the task is about the extension contract rather than basic `catalog.yml` syntax.
- Design custom runner classes, integration runners, or HTTP/serving wrappers while routing detailed run semantics to runners and execution.
- Extend notebook/IPython workflows with `%reload_kedro`, `%load_node`, or `kedro.line_magic` plugin entry points.
- Adapt Kedro projects for Airflow, Databricks, Dask, MLflow, Pandera, Great Expectations, Spark, or minimal FastAPI serving.

## Route Elsewhere

- Basic project creation, project detection, `KedroSession`, `kedro new`, `kedro package`, or stock `kedro ipython`/`kedro jupyter`: read [`../project-cli-and-sessions/SKILL.md`](../project-cli-and-sessions/SKILL.md).
- Runner choice, `kedro run` flags, slicing, resume, `ParallelRunner` multiprocessing details, or async I/O behavior: read [`../runners-and-execution/SKILL.md`](../runners-and-execution/SKILL.md).
- Dataset YAML, credentials, versioning, factories, `OmegaConfigLoader`, and catalog validation basics: read [`../data-catalog-and-config/SKILL.md`](../data-catalog-and-config/SKILL.md).
- Pipeline graph authoring, `node()`, `Pipeline`, namespacing, tags, and registry design: read [`../pipelines-and-nodes/SKILL.md`](../pipelines-and-nodes/SKILL.md).
- Inspection snapshots, server endpoint schemas, or read-only server diagnostics: read [`../inspection-and-server/SKILL.md`](../inspection-and-server/SKILL.md).
- Package install/import checks or broad task routing: return to [`../../SKILL.md`](../../SKILL.md).

## Current Facts

- Kedro target version is `1.4.0`; import and distribution name are `kedro`; Python requirement is `>=3.10`.
- Hook implementations import `hook_impl` from `kedro.framework.hooks`; CLI hook implementations import `cli_hook_impl` from `kedro.framework.cli.hooks`.
- Project hooks are registered as instances in `settings.py` under `HOOKS`; installed plugin hooks are discovered from the `kedro.hooks` entry point group.
- `DISABLE_HOOKS_FOR_PLUGINS = ("<plugin-distribution-name>",)` prevents auto-registered hooks for selected plugin distributions.
- Hook implementation arguments must not have default values; Pluggy may otherwise pass the defaults instead of Kedro's runtime values.
- `ParallelRunner` in Kedro 1.4.0 warns that node and dataset hooks are not executed in worker processes; choose `SequentialRunner` or `ThreadRunner` when those hooks are essential.
- CLI plugin entry point groups include `kedro.global_commands`, `kedro.project_commands`, `kedro.init`, `kedro.line_magic`, `kedro.hooks`, and `kedro.cli_hooks`.
- Project command resolution order is built-in commands, then plugin commands, then project `cli.py`; later sources can override earlier commands.

## Reference Map

- Read [`references/hooks-and-plugins.md`](references/hooks-and-plugins.md) for hook specs, hook signatures, registration, plugin entry point groups, CLI hooks, command precedence, and plugin debugging.
- Read [`references/custom-datasets-and-cli.md`](references/custom-datasets-and-cli.md) for `AbstractDataset` contracts, versioned datasets, project `cli.py` overrides, reusable plugin commands, custom runner extension surfaces, and validation checks.
- Read [`references/deployment-and-integrations.md`](references/deployment-and-integrations.md) for notebooks/IPython, line magics, HTTP serving extension, deployment-platform patterns, and optional dependency/security notes.
- Read [`references/troubleshooting.md`](references/troubleshooting.md) when hooks are not firing, plugin entry points do not load, custom commands conflict, datasets fail to instantiate, optional extras are missing, or serving/deployment integration fails.

## Fast Patterns

1. For a project hook, create `src/<package_name>/hooks.py`, decorate methods with `@hook_impl`, omit unused parameters, do not use defaults, then register instances in `src/<package_name>/settings.py` as `HOOKS = (ProjectHooks(),)`.
2. For hook ordering, treat order as non-guaranteed; project hooks follow last-in-first-out registration and plugin hooks are auto-registered first, but prefer `@hook_impl(tryfirst=True)` or `@hook_impl(trylast=True)` only when order is essential.
3. For plugin hooks, expose an object instance through `[project.entry-points."kedro.hooks"]`; for CLI lifecycle hooks, expose an instance through `[project.entry-points."kedro.cli_hooks"]`.
4. For custom CLI, use project `src/<package_name>/cli.py` for project-specific overrides and plugin `kedro.global_commands` or `kedro.project_commands` for reusable commands.
5. For custom datasets, subclass `kedro.io.AbstractDataset` or `AbstractVersionedDataset`, implement `load`, `save`, and `_describe`, and configure by fully qualified class path in `catalog.yml`.
6. For serving or deployment, first decide whether you need a Kedro-native extension point, an orchestrator plugin, or a thin wrapper around `KedroServiceSession`; warn before network, cloud, credential, or public-server operations.

## Safety Notes

- Set `KEDRO_DISABLE_TELEMETRY=1` or `DO_NOT_TRACK=1` for CLI probes or automated examples when telemetry must be disabled.
- Avoid printing credential dictionaries, runtime params with secrets, personal access tokens, or full platform paths from hooks and server endpoints.
- `kedro server start --reload` is development-only; the built-in server does not include authentication, authorization, request queuing, or per-request session isolation.
- Deployment commands for Airflow, Databricks, cloud platforms, Docker, or plugin CLIs may create files, contact networks, upload artifacts, or use credentials; ask before executing them.

Files in this skill

  • SKILL.md6.7 KB
  • references/custom-datasets-and-cli.md10.4 KB
  • references/deployment-and-integrations.md10 KB
  • references/hooks-and-plugins.md10.1 KB
  • references/troubleshooting.md12.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.