hash_id. You can optionally override specific values at creation time.
Templates are useful for:
- Standardization — ensure all team members launch instances with consistent configurations
- Convenience — avoid repeating the same image, env, and onstart parameters across commands
- Sharing — distribute configurations via template hash ID
Template Fields Reference
When creating or editing a template, the following fields can be configured:Template Identifiers
Templates have two identifiers. Which one you use depends on the operation:Create a Template
Usevastai create template to define a reusable configuration:
id and hash_id — you’ll need them for different operations.
You can also attach default machine search filters using --search_params:
Search for Templates
Find templates usingvastai search templates with the same query syntax used by search offers:
Query Syntax
Quote the query string to prevent shell interpretation of
> and < characters.Searchable Fields
Create an Instance from a Template
Pass--template_hash to create instance to use a template as the base configuration. You don’t need to specify --image or other fields already defined in the template:
Override Template Values
When you create an instance with both a template and additional flags, the following precedence rules apply:Example: Overriding the Image
Example: Merging Environment Variables
If your template defines:MODEL_ID=mistralai/Mistral-7B-v0.1— request overrides templateMAX_TOKENS=4096— retained from templateHF_TOKEN=hf_xxx— added from request
Edit a Template
Update an existing template usingvastai update template with the template’s hash_id as the positional argument. Include only the flags you want to change:
create template:
The
hash_id changes after editing because it is derived from the template’s content. Use the new hash_id returned in the output for subsequent operations.Delete a Template
Delete a template using either its numericid or its hash_id:
Deleting a template removes your relationship to it. It does not destroy the underlying template record.
Common Pitfalls
Using the wrong identifier for the operation
Using the wrong identifier for the operation
Templates have two identifiers and each is used in different contexts:
create instance --template_hashtakes the hash_id (string)update templatetakes the hash_id as a positional argumentdelete template --template-idtakes the numeric id (integer)
id where a hash_id is expected (or vice versa), the operation will fail.Environment variables aren't applying
Environment variables aren't applying
The Port mappings are also specified in this string using
--env flag expects Docker flag format as a single string, not key=value pairs:-p:Template image overridden unexpectedly
Template image overridden unexpectedly
When you specify both
--template_hash and --image, the --image flag overrides the template’s image. If you want to use the template’s image, omit the --image flag entirely.Volume didn't mount from template
Volume didn't mount from template
The
volume_info field stored in templates is a UI hint only. To actually mount a volume, pass the volume flags in the create instance command:hash_id changed after editing
hash_id changed after editing
This is expected behavior. The
hash_id is content-based, so any edit produces a new hash. Always capture the new hash_id from the update command output or search for your template again before referencing it.