ChecklistFabrik ("clf") helps to standardise processes and to-do lists in teams and organisations and to answer questions such as "What needs to be done next?" or "Where am I in the process?". All you need is a YAML file that defines the workflow as a checklist, Python to run ChecklistFabrik, and a browser to display the interactive HTML checklist generated by clf.
ChecklistFabrik can be installed with pip install --user checklistfabrik
. It was developed in the Linuxfabrik, is open source, and is licensed under the UNLICENSE.
Details and documentation can be found at github.com/linuxfabrik.
Checklists are defined with YAML. Features such as Jinja templating and various controls allow ChecklistFabrik to create complex and dynamic processes. Markdown is supported for designing elements such as questions and answers. Checklists can be modular and imported from other checklists.
Example (extract):
title: 'Deploy Red Hat Build of Keycloak 22.0'
version: '2025050701'
report_path: '$HOME/deploy-keycloak-{{ now().strftime("%Y%m%d") }}.yml'
pages:
- title: 'Questionnaire'
tasks:
- linuxfabrik.clf.checkbox_input:
label: 'Target Platform?'
values:
- value: 'Linux'
- value: 'Windows'
fact_name: 'platform'
- title: 'Before you start'
tasks:
- linuxfabrik.clf.checkbox_input:
values:
- label: 'Make sure you have [OpenJDK 17](https://openjdk.java.net/) installed'
required: true
- title: 'Start Red Hat Build of Keycloak'
tasks:
- linuxfabrik.clf.checkbox_input:
values:
- label: 'On Linux: `bin/kc.sh start-dev`'
when:
- '"linux" in (platform | map("lower"))'
The Python tool clf-play
interprets the YAML file, renders it into interactive HTML, starts a local Python web server and displays the checklist in the browser.
clf-play --template examples/deploy-keycloak.yml
Progress through the checklist can be saved at any time. Saving the templates and results ("reports") in Git repositories allows team collaboration, easy monitoring of process progress, a rollback function, and an audit trail.