Tilt API Server Reference

The Tilt Server API allows you to drill down into the depths of Tilt, to get at exactly what you need without all the window-dressing. Consume the API to automate setup, scrape metrics and much more.

Who This Guide Is For

This reference site is for dev environment maintainers who have already set up Tilt.

Here are some things that this guide might help with:

  • trying to diagnose why Tilt isn’t behaving like you expect, or

  • writing new templates for dev environments to share across teams, or

  • scraping metrics about your dev environment to track internally, or

  • contributing to Tilt itself (!)

Who This Guide Is NOT For

If you’re trying to set up Tilt for the first time, you’re in the wrong place! But we’ll help you find where you should be.

For new users, you want the Tutorial or one of the example projects.

For detailed help writing a Tiltfile, you want the Tiltfile Reference.

How to Explore the API Server on Your Own

First, start up a Tilt environment:

tilt up

Then, in a separate terminal, run:

tilt api-resources

This will print out all the objects that your current environment supports.

$ tilt api-resources
NAME                    SHORTNAMES     APIVERSION          NAMESPACED   KIND
cmds                                   tilt.dev/v1alpha1   false        Cmd
configmaps              cm             tilt.dev/v1alpha1   false        ConfigMap
dockerimages                           tilt.dev/v1alpha1   false        DockerImage
...

Common objects in your dev environment might include:

  • Cmd (local processes)
  • DockerImage (Docker image builds)
  • KubernetesApply (Resources to apply to your Kubernetes cluster, if you’re using one)

The Tilt CLI supports many of the same subcommands and flags as kubectl for reading, formatting, and applying objects.

To read the documentation about an object, use tilt explain:

$ tilt explain cmd
KIND:     Cmd
VERSION:  tilt.dev/v1alpha1

DESCRIPTION:
     Cmd represents a process on the host machine.
     When the process exits, we will make a best-effort attempt (within OS
     limitations) to kill any spawned descendant processes.
...

To read all the instances of an object in the current environment, use tilt get:

$ tilt get cmd
NAME             CREATED AT
gendocs:update   2021-11-23T16:23:34Z

For detailed human-readable information about an object, use tilt describe:

$ tilt describe cmd gendocs:update
...
  Ready:               true
  Terminated:
    Exit Code:    0
    Finished At:  2021-11-23T16:23:35.791652Z
    Pid:          116111
    Started At:   2021-11-23T16:23:34.648143Z

For detailed machine-readable information about an object, use tilt get [name] -o [format]

$ tilt get cmd gendocs:update -o jsonpath --template "{.metadata.name} {.status.ready}{'\n'}"
gendocs:update true

Browsing the API

This guide is autogenerated from the latest version of Tilt. It contains the complete API specification of all objects that the API Server currently supports.

A Tiltfile is a much more scriptable and compact representation of your dev environment. When Tilt evaluates your Tiltfile, it expands these API objects and registers them with the API server.

This guide can help you browse the APIs available to you.