Runner Install Templates
April 13, 2026 ยท View on GitHub
Templates control the scripts that set up runners on new instances. GARM ships with built-in system templates for GitHub and Gitea on both Linux and Windows. You can create custom templates to modify the bootstrap process.
Listing templates
# All templates
garm-cli template list
# Filter by forge type and OS
garm-cli template list --forge-type github --os-type linux
Viewing a template
garm-cli template show <TEMPLATE_NAME_OR_ID>
Creating a custom template
Write your template script to a file, then create it in GARM:
garm-cli template create \
--name my-custom-template \
--description "Custom runner setup with extra packages" \
--forge-type github \
--os-type linux \
--path /path/to/my-template.sh
Cloning an existing template
Start from a built-in template and modify it:
# Copy the system template to a new name
garm-cli template copy system-github-linux my-custom-template
# Edit the template in the built-in TUI editor
garm-cli template edit my-custom-template
You can also download a template to a file for inspection:
garm-cli template download my-custom-template --path /tmp/my-template.sh
Using a template with a pool
Specify the template when creating or updating a pool:
# At creation
garm-cli pool add \
--runner-install-template my-custom-template \
--repo <REPO_ID> \
--provider-name lxd_local \
--image ubuntu:22.04 \
--flavor default \
--tags ubuntu
# Or update an existing pool
garm-cli pool update <POOL_ID> --runner-install-template my-custom-template
Restoring system templates
If you've modified a system template and want to restore the defaults:
garm-cli template restore
Deleting a template
Important
You cannot delete a template that is in use by a pool or scale set.
garm-cli template delete <TEMPLATE_NAME_OR_ID>