sylvainallignol / humans
A Kirby plugin that generates a humans.txt file from a route
Package info
github.com/SylvainAllignol/kirby-humans
Type:kirby-plugin
pkg:composer/sylvainallignol/humans
Requires
- php: >=8.2
- getkirby/cms: ^3.0 || ^4.0 || ^5.0
- getkirby/composer-installer: ^1.1
README
A Kirby CMS plugin to automatically generate a humans.txt file following the humanstxt.org standard. Manage your site's team, technologies, and credits in a simple configuration.
Features
- Automatic
/humans.txtroute generation - Automatic "last modified" date tracking
- Flexible configuration system with closures support
- Clean, human-readable output following the humanstxt.org format
- Browser cache: the generated file is cached for 24 hours via
Cache-ControlandExpires. - Works seamlessly with Kirby 3.x, 4.x, 5.x
Installation
Choose one of the following installation methods:
Via Composer (recommended)
composer require sylvainallignol/humans
Manual Installation
- Download the plugin
- Extract and copy the folder to
site/plugins/ - Rename the folder to
kirby-humans
Quick Start
1. Access the generated file
After installation, your humans.txt file is automatically available at:
https://example.com/humans.txt
2. Add the meta tag (optional)
Include the meta tag in your site's header template:
<?php snippet('humans-meta') ?>
This outputs:
<meta content="https://example.com/humans.txt" rel="author" type="text/plain">
3. Default behavior
If no configuration is provided, the plugin generates a default file with:
- Kirby CMS version information
- Last site modification date (auto-tracked)
- A thank you message to Kirby
Configuration
Configure the plugin in your site/config/config.php file:
Exemple
return [ 'sylvainallignol.humans' => [ // Team members section 'TEAM' => [ [ 'Name' => 'John Doe', 'Job' => 'Designer', 'Email' => 'john [at] example.com', 'Website' => 'https://johndoe.com', 'Github' => 'johndoe' ], [ 'Name' => 'Jane Smith', 'Job' => 'Developer', 'Email' => 'jane [at] example.com', 'Website' => 'https://janesmith.com', 'Github' => 'janesmith' ] ], // Site information 'SITE' => [ 'Standards' => 'HTML5, CSS3', 'Components' => 'Kirby CMS, PHP' ], // Acknowledgments 'THANKS' => 'Kirby CMS (https://getkirby.com)', // Technologies used 'TECHNOLOGIES' => 'PHP, JavaScript, CSS3', // Custom content-only section (using numeric key) 'Custom footer text here' ] ];
Helper Functions
snippet('humans-meta')
Automatically generates the humans.txt meta tag for your template.
lastModified($dateFormat)
The plugin provides a helper function lastModified($dateFormat):
lastModified('MMMM dd Y'); // returns february 8 2026
Use it in your config to dynamically populate the “Last Modified” field.
The lastModified value is cached and updated on page.update::after and page.delete::after
Generated Output
The plugin generates a file following the humanstxt.org standard format:
/* TEAM */
Name: John Doe
Job: Designer
Email: john [at] example.com
Website: https://johndoe.com
Github: johndoe
Name: Jane Smith
Job: Developer
Email: jane [at] example.com
Website: https://janesmith.com
Github: janesmith
/* SITE */
Standards: HTML5, CSS3
Components: Kirby CMS, PHP
/* THANKS */
Kirby CMS (https://getkirby.com)
/* TECHNOLOGIES */
PHP, JavaScript, CSS3
Custom footer text here
Output formatting rules
- Section headers are wrapped in
/* SECTION_NAME */comments - Key-value pairs are indented with a tab and separated by
: - String values are indented and displayed as-is
- Empty sections are automatically removed