build = Template.build(builder, name="agent-template", tags=["stable"])
const template = await client.templates.builder()
.fromPythonImage("3.12")
.build({ name: "agent-template", tags: ["stable"] });
nullspace template build --from-python-image 3.12 --name agent-template --tag stable
# tags is part of the build request body. Builds stream over SSE.
curl -N -X POST "${NULLSPACE_API_URL}/v1/templates/build" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"name": "agent-template", "tags": ["stable"], "base_image": "python:3.12"}'
tags = Template.get_tags("agent-template")
print(tags)
Template.assign_tags("agent-template", ["stable", "prod"])
Template.remove_tag("agent-template", "old")
nullspace template tag list agent-template
nullspace template tag assign agent-template stable prod
nullspace template tag remove agent-template old
# List tag -> build assignments
curl "${NULLSPACE_API_URL}/v1/templates/agent-template/tags" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"
# Assign or promote tags
curl -X POST "${NULLSPACE_API_URL}/v1/templates/agent-template/tags" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"tags": ["stable", "prod"]}'
# Remove a tag
curl -X DELETE "${NULLSPACE_API_URL}/v1/templates/agent-template/tags/old" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"
Template.set_visibility("agent-template", "private")
aliases = Template.list_aliases("agent-template")
Template.remove_alias("agent-template", "old-alias")
nullspace template visibility set agent-template private
nullspace template alias list agent-template
nullspace template alias remove agent-template old-alias
# Set visibility (use /v1/templates/refs/{ref}/visibility for slash-bearing refs)
curl -X PATCH "${NULLSPACE_API_URL}/v1/templates/agent-template/visibility" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"visibility": "private"}'
# List aliases
curl "${NULLSPACE_API_URL}/v1/templates/agent-template/aliases" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"
# Remove an alias
curl -X DELETE "${NULLSPACE_API_URL}/v1/templates/agent-template/aliases/old-alias" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"
Template.delete("agent-template:old")
await client.templates.delete("agent-template:old");
nullspace template delete agent-template:old
curl -X DELETE "${NULLSPACE_API_URL}/v1/templates/agent-template:old" \
-H "Authorization: Bearer ${NULLSPACE_API_KEY}"
The TypeScript SDK covers
list, get, and delete; tag, alias, and
visibility management are available in the Python SDK, CLI, or HTTP API.