The Kitchen Sink plugin for Koha is meant to be an exhaustive example of all the features a Koha plugin can posses.
If you find any plugin hooks are missing, please let us know by filing a GitHub Issue!
From the release page you can download the relevant *.kpz file
Koha's Plugin System allows for you to add additional tools and reports to Koha that are specific to your library. Plugins are installed by uploading KPZ ( Koha Plugin Zip ) packages. A KPZ file is just a zip file containing the perl files, template files, and any other files necessary to make the plugin work.
The plugin system needs to be turned on by a system administrator.
To set up the Koha plugin system you must first make some changes to your install.
- Change
<enable_plugins>0<enable_plugins>to<enable_plugins>1</enable_plugins>in your koha-conf.xml file - Confirm that the path to
<pluginsdir>exists, is correct, and is writable by the web server - Restart your webserver
Once set up is complete you will need to alter your UseKohaPlugins system preference. On the Tools page you will see the Tools Plugins and on the Reports page you will see the Reports Plugins.
The plugin uses a modern Gulp-based build system:
# Install dependencies
npm install
# Build the plugin kpz file
npm run buildnpm run kpz- Print the kpz filename for the current versionnpm run print-name- Print the package namenpm run build- Build the plugin (via Gulp)
This plugin supports two release workflows: Command Line (recommended for developers) and GitHub UI (for maintainers).
Use npm version for automated release management. This approach ensures consistent versioning and eliminates manual errors.
# Create a new patch release (e.g., 2.6.0 -> 2.6.1)
npm version patch
# Create a new minor release (e.g., 2.6.0 -> 2.7.0)
npm version minor
# Create a new major release (e.g., 2.6.0 -> 3.0.0)
npm version majorWhen you run npm version, the following occurs automatically:
- Version Update: Updates the version in
package.json - Plugin File Update: Updates the
$VERSIONvariable in the main plugin file - Git Commit: Creates a commit with the version change
- Git Tag: Creates a git tag for the new version
After running npm version, push the changes and tag to trigger the automated release:
# Push changes and tags to GitHub
git push origin main --follow-tagsThis will trigger the GitHub Actions workflow to:
- Run tests on all supported Koha versions
- Build the kpz file
- Create a GitHub release with the kpz file attached
Maintainers can also create releases directly through GitHub's web interface:
- Go to Releases: Navigate to the Releases page
- Create Release: Click "Create a new release"
- Set Tag: Create a new tag following the format
v2.6.2(with 'v' prefix) - Add Details: Fill in release title and description
- Publish: Click "Publish release"
When you create a release through GitHub UI:
- Version Sync: GitHub Actions automatically syncs the version to
package.jsonand plugin file - Build: Builds the kpz file
- Upload: Attaches the kpz file to the release
Note: The version sync workflow will commit the version changes back to the main branch.
- Patch (x.x.1): Bug fixes, small improvements
- Minor (x.1.x): New features, backwards-compatible changes
- Major (1.x.x): Breaking changes, major rewrites
- Command Line: Creates tags like
v2.6.1automatically - GitHub UI: Use format
v2.6.1(with 'v' prefix) for consistency
The automated workflows ensure that every release is properly tested, versioned, and documented regardless of which method you choose.