{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Guide to WHM Plugins","description":"With its world-class support and rich feature set, cPanel &amp; WHM has been the industry-leading web hosting platform for over 20 years. Trusted worldwide by our technology partners WordPress, CloudLinux, LiteSpeed, and more.","siteUrl":"https://api.docs.cpanel.net/","image":"/assets/cpanel-whm.ccd85fdccb18de0645f8a6ebf38e36a0489b92fc9d4ca92776f06aa5a160b167.db81178d.svg","keywords":"documentation, api, portal, cpanel","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides"},"children":["Development Guides Home"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"guide-to-whm-plugins","__idx":0},"children":["Guide to WHM Plugins"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"introduction","__idx":1},"children":["Introduction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["WHM plugins add new functionality to the WHM interface."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["cPanel plugin requirements and WHM plugin requirements are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," identical. For information about cPanel plugins, read our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-cpanel-plugins"},"children":["Guide to cPanel Plugins"]}," documentation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For help to troubleshoot issues with WHM plugin development, read our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-testing-custom-code"},"children":["Guide to Testing Custom Code"]}," documentation."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"plugin-development-workflow","__idx":2},"children":["Plugin development workflow"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"attention"},"children":["Note:\n",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For additional information, read our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/quickstart-development-guide/tutorial-create-a-whm-plugin"},"children":["Create a WHM Plugin"]}," tutorial."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Make certain that your applications respect user privacy. We ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["strongly"]}," recommend that you anonymize any data that you collect for analysis. For more information about how WebPros International, LLC handles private data, read our ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.cpanel.net/knowledge-base/cpanel-product/cpanel-analytics/"},"children":["cPanel Analytics"]}," documentation."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you create a WHM plugin, we recommend the following workflow:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create your custom application (the plugin's backend code)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-whm-plugins/guide-to-whm-plugins-plugin-files"},"children":["plugin's interfaces and other files"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-whm-plugins/guide-to-whm-plugins-installation-scripts"},"children":["Create an installation script."]}," This script should ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-whm-plugins/guide-to-whm-plugins-add-plugins"},"children":["register your plugin with AppConfig"]}," and perform several other actions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/guide-to-whm-plugins/guide-to-whm-plugins-appconfig-configuration-file"},"children":["Create your plugin's AppConfig configuration file."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Compress your plugin's files for distribution.",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["We recommend that you compress your plugin's files into a tarball (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".tar.gz"]},") file for ease of distribution."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For most plugins, the compressed file should contain the application source files, the AppConfig configuration file, an upgrade script, and an installation script."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Distribute your plugin. When you distribute this plugin across multiple servers, system administrators must perform the following actions manually:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Decompress the plugin's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".tar.gz"]}," file."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run the installation script."]}]}]}]}]}]},"headings":[{"value":"Guide to WHM Plugins","id":"guide-to-whm-plugins","depth":1},{"value":"Introduction","id":"introduction","depth":2},{"value":"Plugin development workflow","id":"plugin-development-workflow","depth":2}],"frontmatter":{"seo":{"title":"Guide to WHM Plugins"}},"lastModified":"2026-11-03T20:46:36.108Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/guide-to-whm-plugins","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}