Istio service mesh tooling

Your routes,
made visible.

Parse Gateway, VirtualService, and DestinationRule manifests offline and render the full L7 routing topology as an interactive diagram. Trace requests, lint configs, watch for changes.

macOS (Apple Silicon) Linux x64 / arm64 Works offline No cluster access needed

Four commands

Everything you need to understand
your Istio routing

render

Routing diagrams

Generate interactive HTML, SVG, PNG, Graphviz DOT, or a diff-friendly text tree — all from a single command, all formats from the same routing model.

trace

Request tracing

Simulate any request — host, path, method, headers — and see exactly which rule matches. Skip reasons shown for every non-matching rule, highlighted in the diagram.

lint

Config validation

Catch unbound VirtualServices, missing Services, port mismatches, shadowed unreachable rules, and weight inconsistencies before they reach production. CI-friendly --strict mode.

watch

Live development

Local HTTP server that re-renders on every file change and reloads the browser automatically via SSE. Filter selections and Kustomize overlays persist across reloads.

Under the hood

Load. Resolve. Render.

Three clean phases — from raw YAML to a complete, interactive picture of your service mesh.

Load

Point istio-viz at YAML files, a directory, a Kustomize overlay, or your live cluster. Multi-document files and recursive directories are supported.

# files, directories, or cluster istio-viz render ./overlays/prod # or point at a live cluster istio-viz render --context staging

Resolve

Gateways, VirtualServices, Services, and DestinationRule subsets are joined into a complete routing model using the same first-match-wins logic as Envoy.

# joined and evaluated in order Gateway listeners → Hosts Hosts → RouteRules → Destinations

Render

Choose your output. The interactive HTML is self-contained — share it as a file. The paths format diffs cleanly in code review.

# interactive HTML -o routes.html # static image -o routes.svg # diff-friendly text -f paths

Catch problems early

Your routing config,
validated before deploy.

istio-viz lint checks the things that kubectl apply won't — like a VirtualService that binds to a Gateway that doesn't exist, or a route rule that can never be reached because an earlier rule always matches first.

E001 VirtualService binds to an unknown Gateway
E002 Destination references a missing Service
E003 Service port not declared on destination
W002 Route rule shadowed — can never be reached
W003 Destination weights do not sum to 100

Get started

Up in thirty seconds.

No cluster access needed. Works entirely offline against your local manifests.

# Install (macOS · Linux x64 · Linux arm64)
$ curl -fsSL https://istio-viz.wckd14.xyz/install.sh | bash
 
# Install a specific version
$ curl -fsSL https://istio-viz.wckd14.xyz/install.sh | bash -s -- v0.1.0
 
# Render an interactive routing diagram
$ istio-viz render ./manifests/ -o routes.html
 
# Trace a specific request through your rules
$ istio-viz trace ./manifests/ --host api.example.com --path /checkout --method POST
 
# Validate configs in CI
$ istio-viz lint ./manifests/ --strict
 
# Watch for changes during development
$ istio-viz watch ./overlays/dev --port 4400

Windows: download from GitHub Releases  ·  Source on GitHub