This project is not covered by Drupal’s security advisory policy.

A module which auto-generates a skeleton or "scaffolding" for a module, along with hints on how to fill them in. Useful for newbie developers to learn how hooks work, and seasoned developers who are too lazy to look up what arguments a function has to take. But more than this, module builder can generate:

  • Plugins of just about any type, with injected services
  • Content and config entity types
  • Forms, with injected services
  • Permissions
  • Services
  • PHPUnit test case classes, and test modules
  • An api.php file to document the module's hooks
  • An admin settings form
  • A README file
  • ... and more.

You can watch a demonstration of some of the components that can be generated.

There is also experimental code for generating a theme.

WARNING: Module Builder is a developer tool. It should NEVER be installed on a production site, as it has the capability to write to the site's codebase.


  • Drupal 8: 8.x-3.x-dev is stable and being actively developed. Only provides a Drupal UI. For use with Drush on Drupal 8, use the Drush command.
  • Drupal 7: 7.x-2.x-dev is stable and only receiving maintenance. Use either as a module or a Drush plugin.
  • Drupal 6: 6.x-2.x-dev is stable and no longer supported. For Drush, use 7.x-2.x-dev as a Drush plugin.
  • Drupal 5: 5.x-1.x-dev is stable and no longer supported.

Drupal UI

Install this module as normal, using the version appropriate for your version of Drupal. For 8.x-3.x, also download the Drupal Code Builder library (see the README for instructions). After installation, download/process hook data on the settings page.

Drush plugin (7.x-2.x and earlier only)

Install the entire module folder in a place where Drush can find plugins (see Drush documentation for details). It can then be used for any Drupal site that Drush can be used with, independent of Drupal version. Use 7.x-2.x-dev version as a Drush plugin for any version of Drupal, and use the latest version of Drush; see the documentation for more details.


Module builder is in perpetual development. The development release should never be broken (at least, that's the intention), but there will occasionally be sudden changes in how everything works that will render obsolete your downloaded hook data and any customizations you may have such as custom hook groups and templates.

Co-maintainers needed:
Invitation for roadmap ideas:

Project information