Start with the my-kuhbs-demo repository . It contains one complete example for every supported topology:
demo-app— managed TemplateVM plus persistent AppVM;demo-udp— managed TemplateVM and provider AppVM for fresh unnamed DisposableVM launchers;demo-ndp— managed TemplateVM, provider AppVM, and named DisposableVM; anddemo-sta— temporary setup template plus persistent StandaloneVM.
For an application that keeps user data, start with demo-app unless it specifically needs a StandaloneVM.
Copy and rename an example
Copy the complete example directory into your own repository:
cp -a my-kuhbs-demo/demo-app my-kuhbs-apps/example-app
Rename the directory and change id in kuhb.yml to the same name. KUHBS loads only the file named kuhb.yml.
Follow the comments in the example kuhb.yml. They document the current settings for Qubes OS VM preferences, services, features, setup fragments, hooks, launchers, backup paths, and optional i3 policy.
Replace and review the demo files
Replace the demo shell files, which only print messages. Define only the launchers the application needs and list only the persistent paths its users need to preserve. Keep passwords, tokens, and private keys out of YAML, scripts, templates, and Git history.
Review every trusted file before adding the repository. KUHB hooks can run in dom0, and setup scripts can run as root inside Qubes OS VMs.
Add and validate the definition
After publishing and auditing the exact repository commit:
kuhbs repo-add https://github.com/<owner>/my-kuhbs-apps main
kuhbs link github.com/<owner>/my-kuhbs-apps/example-app
kuhbs check
Create the KUHB only after validation passes and every trusted file has been reviewed.