# Core Interception Points

Here is a list of all the core interception points in CommandBox that you can listen to. Some have `interceptData` that comes along with them, while others don't. Remember, the `interceptData` struct is passed by reference. This means modifying any values directly in that struct will affect how processing continues afterwards inside of CommandBox where those values are used.

Click a category for more information.

* [**CLI Lifecycle**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/cli-lifecycle)
  * onCLIStart
  * onCLIExit
* [**Command Execution Lifecycle**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/command-execution-lifecycle)
  * preCommand
  * postCommand
* [**Module Lifecycle**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/module-lifecycle)
  * preModuleLoad
  * postModuleLoad
  * preModuleUnLoad
  * postModuleUnload
* [**Server Lifecycle**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/server-lifecycle)
  * preServerStart
  * onServerStart
  * onServerInstall
  * onServerStop
* [**Error Handling**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/error-handling)
  * onException
* [**Package Lifecycle**](https://commandbox.ortusbooks.com/4.4.0/developing-for-commandbox/interceptors/core-interception-points/package-lifecycle)
  * preInstall
  * onInstall
  * postInstall
  * preUninstall
  * postUninstall
  * preVersion
  * postVersion
  * prePublish
  * postPublish
  * preUnpublish
  * postUnpublish
  * onRelease
