Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hyperb1iss avatar

Tilt

  • 36 installs
  • 25 repo stars
  • Updated July 31, 2026
  • hyperb1iss/hyperskills

Writes and debugs Tiltfiles for local Kubernetes development: live update, docker/custom builds, k8s and local resources, logs, and CI.

About

Covers automating the local Kubernetes dev loop with Tilt (watch, build, deploy) via a Starlark Tiltfile. A developer uses it to write a Tiltfile, set up live_update, add resources, or debug a running Tilt instance.

  • CLI lifecycle: tilt up/ci/down and resource management
  • live_update, docker_build, custom_build, k8s_resource patterns

Tilt by the numbers

  • 36 all-time installs (skills.sh)
  • +3 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #839 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hyperb1iss/hyperskills --skill tilt

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs36
repo stars25
Last updatedJuly 31, 2026
Repositoryhyperb1iss/hyperskills

What it does

Writes and debugs Tiltfiles for local Kubernetes development: live update, docker/custom builds, k8s and local resources, logs, and CI.

Files

SKILL.mdMarkdownGitHub ↗

Tilt: Kubernetes Dev Toolkit

Tilt automates the local Kubernetes development loop: watch files, build images, deploy to cluster. Configuration lives in a Tiltfile (Starlark, a Python dialect). A resource bundles an image build + k8s deploy (or a local command) into a single manageable unit.

CLI Operations

The commands an agent uses to interact with a running Tilt instance.

Lifecycle

TaskCommand
Start dev environmenttilt up [-- <Tiltfile args>]
Start with terminal log streamingtilt up --stream
Start specific resources onlytilt up frontend backend
Run in CI/batch mode (exits on success/failure)tilt ci --timeout 30m
Stop and delete deployed resourcestilt down
Change runtime Tiltfile argstilt args -- --flag value
Change runtime args (clear all)tilt args --clear

On Ctrl+C from tilt up: K8s and Docker Compose resources keep running. Local serve_cmd processes stop. Use tilt down to clean up.

Viewing Logs

TaskCommand
Stream all logstilt logs -f
Stream logs for one resourcetilt logs -f <resource>
Show only errorstilt logs --level error
Show build logs onlytilt logs --source build
Show runtime logs onlytilt logs --source runtime
Logs since 5 minutes agotilt logs --since 5m
Last 100 linestilt logs --tail 100
JSON output (for parsing)tilt logs --json

Resource Management

TaskCommand
List all resourcestilt get uiresources
Resource status as JSONtilt get uiresources -o json
Describe a resource in detailtilt describe uiresource <name>
Force rebuild a resourcetilt trigger <resource>
Enable a disabled resourcetilt enable <resource>
Disable a resourcetilt disable <resource>
Wait for resource readinesstilt wait --for=condition=Ready uiresource/<name>

Inspection & Debugging

TaskCommand
Diagnostics (versions, cluster)tilt doctor
Inspect file watchestilt get filewatches
Describe a specific file watchtilt describe filewatch <name>
Full engine state dump (JSON)tilt dump engine
Full UI state dumptilt dump webview
Test Docker build as Tilt wouldtilt docker -- build <args>
List API resource typestilt api-resources

The Tilt API server runs on localhost:10350 by default. All tilt get/describe/trigger commands talk to it.

Build Strategy Selector

SituationFunctionKey detail
Standard Dockerfiledocker_build(ref, context)Watches context dir, auto-injects into k8s
Custom toolchain (Bazel, ko, Buildpacks)custom_build(ref, cmd, deps)Must tag with $EXPECTED_REF env var
Non-Docker builder (Buildah, kaniko)custom_build(..., skips_local_docker=True)Builder handles push independently
Docker Compose servicesdocker_compose(configPaths)Manages compose lifecycle
Helm chartsk8s_yaml(helm('./chart'))Renders locally, deploys to cluster
Kustomize overlaysk8s_yaml(kustomize('./overlay'))Renders locally, deploys to cluster

Live Update Decision Tree

Live update replaces full image rebuilds with in-place container file syncs, seconds instead of minutes.

StepPurposeOrdering
fall_back_on(files)Force full rebuild when these files changeMust come first
sync(local, remote)Copy changed files into running containerAfter fall_back_on
run(cmd, trigger=files)Execute command in container (e.g., install deps)After sync
restart_container()Restart the container processMust come last
docker_build('myapp', '.', live_update=[
    fall_back_on(['requirements.txt']),
    sync('./src', '/app/src'),
    run('pip install -r requirements.txt', trigger=['requirements.txt']),
])

When live update breaks: Changes to files outside the docker_build context trigger a full rebuild. Changes outside any sync() path also trigger a full rebuild. First tilt up always does a full build, live update requires a running container.

Resource Configuration

# Kubernetes resource with port forwarding and dependencies
k8s_resource('frontend',
    port_forwards=['3000:3000'],
    resource_deps=['api', 'database'],
    labels=['web'],
    trigger_mode=TRIGGER_MODE_MANUAL,
)

# Local resource (build tool, test runner, code generator)
local_resource('codegen',
    cmd='make generate',
    deps=['./proto'],
    labels=['tools'],
)

# Local server (runs continuously)
local_resource('storybook',
    serve_cmd='npm run storybook',
    deps=['./src/components'],
    allow_parallel=True,
    readiness_probe=probe(http_get=http_get_action(port=6006)),
)

Parallelism: Local resources run serially by default. Set allow_parallel=True for independent resources. Image builds default to 3 concurrent, adjust with update_settings(max_parallel_updates=N).

Dependencies: resource_deps gates on first-ever readiness only, once a dependency is ready once, dependents unlock permanently for that session.

Debugging Flow

Service crashing?     → tilt logs -f <resource> --source runtime
Build failing?        → tilt logs -f <resource> --source build
                        tilt docker -- build <args>  (reproduces Tilt's exact build)
Wrong files rebuild?  → tilt get filewatches
                        tilt describe filewatch <name>
                        Check .tiltignore, watch_settings(ignore=), ignore= param
Force a rebuild?      → tilt trigger <resource>
Resource stuck?       → tilt describe uiresource <name>
                        Check resource_deps chain
                        For CRDs: pod_readiness='ignore'
General diagnostics?  → tilt doctor
Full state dump?      → tilt dump engine | jq .

Top 10 Pitfalls

PitfallFix
local() calls don't track file depsWrap with read_file() or add watch_file()
Live update paths outside docker_build contextEnsure sync local paths fall within context dir
Local resources block each otherSet allow_parallel=True on independent resources
resource_deps doesn't re-gate on updatesIt only checks first-ever readiness, not current version
Starlark has no while/try-except/class/recursionUse for loops, fail() for errors, dicts for state
.tiltignore doesn't affect Docker build contextUse .dockerignore to exclude from both rebuild triggers AND context
$EXPECTED_REF not used in custom_buildBuild script MUST tag the image with this env var
run() trigger files not in a sync() stepTrigger paths must also be covered by a sync step
First tilt up always does full buildLive update cannot work until a container is running
CRD pods stuck in pendingSet pod_readiness='ignore' on CRD resources

Additional Resources

Reference Files

For detailed API signatures and advanced patterns, consult:

  • `references/api-reference.md`: Complete Tiltfile API catalog organized by category, Starlark language notes, ignore mechanism comparison
  • `references/patterns.md`: Multi-service architectures, environment config, CI integration, performance optimization, programmatic Tilt interaction, extension ecosystem

Anti-Patterns

Anti-PatternFix
Starting or stopping Tilt without consentAsk before changing long-running dev environments
Treating tilt up as a build commandUse tilt ci for batch verification
Live update without fallbacksPut build/dependency files in fall_back_on
Debugging from Kubernetes YAML onlyInspect uiresources, file watches, and logs
Using local() for watched shell workUse local_resource with explicit deps

What This Skill is NOT

  • Not a Kubernetes primer.
  • Not permission to run, restart, or tear down a dev environment.
  • Not a substitute for reading tilt doctor and resource logs.

Related skills

DevOps & CI/CDinfradeploy

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.