Un hook (ou point d'encrage) 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 créateur 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 représenter de diverses formes, cela peut-être un morceau de script de code, un point d'API web (on parle alors de webhook) ou encore bien d'autres choses.
Le programme principal impose généralement les caractéristiques du hook : son type, sa localisation, le moment auquel il sera exécuté, voire son nom. Il peut lui fournir des paramètres et une donnée nécessaire qu'il doit éventuellement retourner.