| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
tmuxwatch is a Charmbracelet-powered dashboard that keeps eyes on every tmux session, window, and pane without ever leaving the terminal.
Product principles and scope boundaries live in VISION.md; detailed architecture and roadmap notes live in docs/spec.md.
# Homebrew (recommended)
brew tap steipete/tap
brew install tmuxwatch
tmuxwatch --version # should print tmuxwatch 0.9.3
# Updating later
brew update
brew upgrade tmuxwatch
# Or install directly with Go tooling
go install github.com/steipete/tmuxwatch/cmd/tmuxwatch@latest
# Nix/NixOS
nix run github:steipete/tmuxwatch
# Or add to your flake inputs for system integration
# inputs.tmuxwatch.url = "github:steipete/tmuxwatch";
# Then use: inputs.tmuxwatch.packages.${system}.default
# best practice: spawn inside tmux so key bindings work as expected
tmux new-session -d -s watch './gorunfresh --trace-mouse'
tmux attach -t watch
# prefer to run outside tmux?
./gorunfresh --dump # runs directly unless TMUXWATCH_FORCE_TMUX=1 is set
./gorunfresh --watch # starts poltergeist + polter --watch to auto-restart after successful builds
./scripts/run-hot.sh # single command that starts daemon in the background and launches tmuxwatch with hot reloadPress q (or double ctrl+c) to exit. Prefer running tmuxwatch in its own tmux session to keep the UI isolated from your workspaces. For local development you can substitute ./gorunfresh --debug-click 30,10 --trace-mouse inside the session to replay a mouse event while inspecting BubbleZone logs.
/ or ctrl+f open search; type to filter sessions/windows/panes esc clear search, close palette, or leave detail view shift+left/right switch tabs H show hidden sessions X kill the focused stale session ctrl+X kill every stale session ctrl+P open/close the command palette ctrl+m maximise/restore the focused session z / Z collapse focused session / expand all sessions q / ctrl+c quit (double ctrl+c quits even if pane is alive) mouse click `[^]/[v]` to maximise/restore, `[-]/[+]` to collapse/expand, `[x]` to hide; scroll to browse logs
The UI intentionally avoids third-party “magic”; it leans on Bubble Tea + Lip Gloss primitives so behaviour is explicit.
Use the pnpm scripts to mirror the Go tooling:
pnpm format # gofumpt -w .
pnpm lint # golangci-lint run
pnpm test # go test ./...
pnpm build # go build ./cmd/tmuxwatch
pnpm start # runs ./gorunfresh (prefer inside tmux)You can still call the Go targets directly:
# format + lint
make fmt
make lint
# run tests (includes table-driven/unit tests in internal/ui and internal/tmux)
go test ./...
# fresh rebuild & run inside tmux (guards against outside usage)
./gorunfresh --dump # validate tmux JSON snapshot; respects TMUXWATCH_FORCE_TMUX
go run ./cmd/tmuxwatch --dump # (inside tmux) validate tmux JSON snapshot for debuggingGuidelines live in docs/idiomatic-go.md; treat it as required reading. Key points:
Released under the MIT License.
| Back | FazBrowse Home | New Git URL |