traefiktop
v1.2.0
Published
A TUI for visualizing Traefik routing.
Maintainers
Readme
A simple, keyboard‑friendly terminal UI for exploring Traefik routers and services. Built with React + Ink, focused on clarity over chrome.
🚀 Installation methods
curl -sSL https://raw.githubusercontent.com/darksworm/traefiktop/main/install.sh | shThe install script automatically detects your system (including musl vs glibc on Linux) and downloads the appropriate binary from the latest release.
You can also install a specific version:
curl -sSL https://raw.githubusercontent.com/darksworm/traefiktop/main/install.sh | sh -s -- v0.1.0Pull and run the prebuilt image from GHCR:
docker run --rm -it ghcr.io/darksworm/traefiktop:latest \
--host https://traefik.example.orgFor self-signed endpoints, add --insecure. To reach a Traefik container, attach to its network:
docker run --rm -it --network <traefik_net> ghcr.io/darksworm/traefiktop:latest \
--host http://traefik:8080Build locally instead of pulling:
bun run docker:build
bun run docker:run -- --host https://traefik.example.orgnpm i --global traefiktopbrew tap darksworm/homebrew-tap
brew install --cask traefiktopyay -S traefiktop-binGrab binaries and packages from the latest release: https://github.com/darksworm/traefiktop/releases/latest
Screenshot

What it shows
- Routers, their rules, and the services they target
- Which router is effectively down (no healthy services)
- The active service path (failover aware)
- Quick, readable status with a minimal set of emojis and colors
Usage
--host is required. Optionally hide routers by name with --ignore patterns (case‑insensitive). Use * at the start/end for “starts with” / “ends with”. Use --insecure to disable TLS verification for development against self‑signed endpoints.
traefiktop --host https://traefik.example.org \
--ignore staging-* \
--ignore *-tmp,*-oldDevelopment only (self-signed endpoints):
traefiktop --host https://selfsigned.local --insecureKeys
- Navigation:
j/kor arrows - Page:
PgDn/PgUp,Ctrl+f/Ctrl+b - Jump:
gg(top),G(bottom),Home/End - Search:
/to filter,Escto clear - Sort:
stoggles (dead first/name);ddead first;nname - Quit:
qorCtrl+C
Build from source
Prereqs: Bun ≥ 1.2.20, Node ≥ 18
bun install
# Node bundle (dist/cli.js)
bun run build:node
# Native binary (bun compile)
bun run build:binaryDocker
- Prebuilt images are published for releases to
ghcr.io/darksworm/traefiktop. - Local builds work cross‑platform via a multi‑stage Dockerfile.
Pull and run (interactive TTY):
docker run --rm -it ghcr.io/darksworm/traefiktop:latest \
--host https://traefik.example.orgBuild locally and run:
# Build (uses buildx automatically if enabled)
bun run docker:build
# Run (pass CLI flags after image name)
bun run docker:run -- --host https://traefik.example.orgMulti‑arch build with buildx (optional):
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ghcr.io/darksworm/traefiktop:dev .Notes
- API URL is mandatory. The app won’t start without
--host. - Ignore patterns support:
foo*(starts with),*bar(ends with),*mid*(contains). Pass multiple--ignoreflags or comma‑separate values. - When selected, dead routers use a bright red background for better contrast. Active services are colored; inactive/down are grey.
