GitHub - tdi/lazytilt: Terminal UI for Tilt.dev, inspired by lazygit

GitHub

3 min read Original article ↗

A terminal UI for Tilt (tilt-dev/tilt), inspired by lazygit.

Manage your Tilt local development environment without leaving the terminal.

lazytilt screenshot

Features

  • Resource overview with real-time status updates (ok/pending/error) that scrolls through long lists
  • Build history for the selected resource
  • Live logs that follow new output, with scrolling (j/k, pgup/pgdn) and a follow toggle (f)
  • Resource detail view with pod info, endpoints, and build history
  • Status filter (f) to show only the resources that failed, or another status group
  • Fuzzy search (/) to quickly find resources
  • Actions: trigger builds (b), restart resources (r), reload Tiltfile (R)
  • Accordion layout - focused panel expands, others collapse
  • Vim-style keybindings throughout

Install

Homebrew

brew tap tdi/lazytilt
brew install lazytilt

Go

go install github.com/tdi/lazytilt@latest

From source

git clone https://github.com/tdi/lazytilt.git
cd lazytilt
make build

Usage

Start Tilt first, then run lazytilt:

tilt up        # in your project directory
lazytilt       # in another terminal

lazytilt connects to the Tilt API at localhost:10350 by default.

lazytilt --host localhost:10350    # custom host
lazytilt --token <token>           # custom API token
lazytilt --version                 # show version

Tilt requires a token on its API. lazytilt reads it from $TILT_TOKEN, then from ~/.tilt-dev/token, so it normally needs no configuration.

Keybindings

Navigation

Key Action
Tab / Shift+Tab Cycle side panels
Right / l Focus logs panel
Left / h / Esc Return to side panel
1-3 Jump to panel by number
0 Focus logs panel
j / k Move selection / scroll
g / G First / last item, top / newest log line
PgUp / PgDn, Ctrl+U / Ctrl+D Page up / down

Filtering

Key Action
/ Fuzzy search resources by name
f Filter by status (in logs: toggle follow)
F Show failed resources only
Esc Clear the search and the filter

Actions

Key Action
b Trigger build
r Restart resource
R Reload Tiltfile
e Enable/disable resource
y Yank endpoint or logs to the clipboard
Enter Toggle resource detail view
? Help
q / Ctrl+C Quit

Requirements

  • Go 1.22+
  • A running Tilt instance

Releasing

Releases are cut from a tag:

git tag v0.4.0
git push origin v0.4.0

Pushing a v* tag runs .github/workflows/release.yml, which invokes GoReleaser to build darwin and linux binaries for amd64 and arm64, publish the GitHub release, and update the formula in tdi/homebrew-lazytilt. Writing to the tap repository needs the HOMEBREW_TAP_TOKEN secret; without it the release still publishes but the formula stays on the previous version.

Every push to main and every pull request runs .github/workflows/ci.yml: gofmt, go build, go vet and go test.

License

MIT License - see LICENSE for details.

Author

Dariusz Dwornikowski (@tdi)