
tiltup
Use when starting tilt, debugging Tiltfile errors, or bootstrapping a dev environment. Starts Tilt in zmx, monitors bootstrap to healthy state, fixes Tiltfile bugs without hard-coding or fallbacks.
- Installs
- 172
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/alleneubank/claude-code --skill tiltup- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads tiltup automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Tilt Up
Principles (Always Active)
These apply whenever working with Tiltfiles, Tilt errors, or dev environment bootstrap:
Fix the Tiltfile, Not the Symptoms
- Fix the source config directly - Tiltfile, Dockerfile, k8s manifest, or helm values
- Never add shell workarounds - no wrapper scripts, no
|| true, notry/except pass - Never hard-code ports, paths, hostnames, image tags, or container names that should be dynamic
- Never add fallbacks that mask the real error - if a resource fails, the failure must be visible
- Never add sleep/retry loops for flaky dependencies - fix dependency ordering via
resource_deps()ork8s_resource(deps=) - Never add polling for readiness that Tilt already handles - use
k8s_resource(readiness_probe=)or probe configs
Express Dependencies Declaratively
- Port conflicts: fix the port allocation source, don't pick a different port
- Resource ordering: use
resource_deps(), not sequential startup scripts - Env vars: use
silo.tomlor gen-env output, not inline defaults - Image availability: use
image_depsordeps, not sleep-until-ready
Tilt Live-Reloads
After editing a Tiltfile, Tilt picks up changes automatically. Never restart tilt up for:
- Tiltfile edits
- Source code changes
- Kubernetes manifest updates
Restart only for: Tilt version upgrades, port/host config changes, crashes, cluster context switches.
Workflow (When Explicitly Starting Tilt)
Step 1: Assess Current State
-
Check if tilt is already running:
PROJECT=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" || basename "$PWD") zmx list --short 2>/dev/null | grep -q "^${PROJECT}-tilt$"If running, check health via
tilt get uiresources -o jsonand skip to Step 3. -
Check for required env files (
.localnet.env,.env.local,silo.toml):- If
silo.tomlexists, usesilo uppath - If gen-env script exists, run it first
- If neither, check project README for bootstrap instructions
- If
-
Check for k3d cluster or Docker prerequisites.
Step 2: Start Tilt in zmx
Follow the zmx skill patterns:
PROJECT=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" || basename "$PWD")
SESSION="${PROJECT}-tilt"
if zmx list --short 2>/dev/null | grep -q "^${SESSION}$"; then
echo "Tilt session already exists: $SESSION"
else
zmx run "$SESSION" 'tilt up'
echo "Started tilt in zmx session: $SESSION"
fi
For silo projects: silo up instead of tilt up.
Step 3: Monitor Bootstrap
Poll for convergence:
- Wait 10s for initial resource registration
- Poll every 15s, up to 20 iterations. Include docker-compose container health
(
composeResourceInfo.healthStatus) — anUp (unhealthy)compose container keepsruntimeStatus=okand is otherwise invisible, so bootstrap can look "done" while canton/splice/postgres are silently failing their HEALTHCHECK:tilt get uiresources -o json | jq -r '.items[] | select(.status.runtimeStatus == "error" or .status.updateStatus == "error" or .status.updateStatus == "pending" or .status.composeResourceInfo.healthStatus == "unhealthy") | "\(.metadata.name): runtime=\(.status.runtimeStatus) update=\(.status.updateStatus) compose=\(.status.composeResourceInfo.healthStatus // "-")"' - Track resources:
pending->in_progress->ok - Success: all resources reach
runtime=ok, update=ok(ornot_applicable) AND no docker-compose resource iscomposeResourceInfo.healthStatus == "unhealthy" - If resources stabilize in
error, OR a compose resource staysunhealthy, proceed to Step 4. For an unhealthy compose probe, read the real cause withdocker inspect <compose-project>-<svc> --format '{{json .State.Health}}'— often the mounted healthcheck script calls a CLI the image lacks (the service is up; fix the probe script, don't disable the check)
Step 4: Diagnose and Fix Errors
For each resource in error state:
- Read logs:
tilt logs <resource> --since 2m - Read the Tiltfile and relevant k8s manifests
- Identify root cause in the config (not the running process)
- Apply fix following the Principles above
- Tilt live-reloads - re-poll status to verify
After 3 fix iterations on the same resource without progress:
- Report the error with full logs
- Identify whether it's a Tiltfile bug, upstream dependency, or infrastructure problem
- Do not silently skip or disable the resource
Step 5: Report
## Tilt Status: <healthy|degraded|errored>
**Resources**: X/Y ok
**Session**: zmx $SESSION
### Errors (if any)
- <resource>: <root cause> — <what was fixed or what remains>
FAQ
What does the tiltup skill do?
Use when starting tilt, debugging Tiltfile errors, or bootstrapping a dev environment. Starts Tilt in zmx, monitors bootstrap to healthy state, fixes Tiltfile bugs without hard-coding or fallbacks.
How do I install tiltup?
Run npx skills add https://github.com/alleneubank/claude-code --skill tiltup in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tiltup/ (personal) or .claude/skills/tiltup/ (project).
Which AI agents can use tiltup?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is tiltup safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains tiltup?
It is published by alleneubank in alleneubank/claude-code. It has 172 recorded installs.
More from alleneubank/claude-code
typescript-best-practices
alleneubank/claude-code
Use when reading or writing TypeScript or JavaScript files (.ts, .tsx, .js, tsconfig.json).
react-best-practices
alleneubank/claude-code
Use when reading or writing React components (.tsx, .jsx files with React imports).
python-best-practices
alleneubank/claude-code
Use when reading or writing Python files (.py, pyproject.toml, requirements.txt).
web-fetch
alleneubank/claude-code
Fetches web content as clean markdown by preferring markdown-native responses and falling back to selector-based HTML extraction. Use for documentation, articles, and reference pages at http/https URLs.
nix-best-practices
alleneubank/claude-code
Use when working with Nix flakes, overlays, shell.nix, or flake.nix files.
zig-best-practices
alleneubank/claude-code
Use when reading or writing Zig files (.zig, build.zig, build.zig.zon).
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.