Un hook (littéralement « crochet » ou « hameçon ») permet à l'utilisateur d'un logiciel de personnaliser le fonctionnement de ce dernier, en lui faisant réaliser des actions supplémentaires à des moments déterminés. Le concepteur du logiciel prévoit des hooks tout au long du fonctionnement de son programme, qui sont des points d'entrée vers des listes d'actions. Par défaut, le hook est généralement vide et seules les fonctionnalités de base de l'application sont exécutées. Cependant, l'utilisateur peut « accrocher » des morceaux de programme à ces hooks pour personnaliser le logiciel.
Techniquement, un hook peut se présenter sous la forme d'un fichier, généralement dans un langage de script, localisé à un endroit particulier. Le programme principal impose généralement les caractéristiques du hook : son type, sa localisation, voire son nom, et le moment auquel il sera exécuté.
Le webhook est un type de hook avec une application web via une fonction de rappel.