MeshReader
Kubernetes ASPM

See every service's security posture at a glance.

MeshReader reads your live cluster, scans every workload for vulnerabilities, and renders it all as one navigable risk graph — services, dependencies, CVEs, and computed risk in a single view.

No agent to configure to explore — try the schema-import demo.

prod-cluster live
webauthapicachedb
2 critical · 1 high

Application security posture, built for Kubernetes.

Most tools give you a list of CVEs. MeshReader gives you the picture: which services exist, how they connect, what they depend on, and where the real risk concentrates — so you fix what matters first.

01gRPC · live

In-cluster agent

A lightweight agent watches the Kubernetes API, scans every workload image, and streams posture to the backend over gRPC. No data leaves your control plane.

02read-only

Kubeconfig

Point MeshReader at a kubeconfig and it reads deployments, services, and endpoints across namespaces — no install required.

03offline

Schema import

Paste or upload a Syft SBOM, a Grype report, or a MeshReader snapshot. It normalizes and renders instantly, with no cluster access at all.

Pipeline

From cluster to risk graph in four steps.

1

Discover

Services, deployments, and pods are read straight from the Kubernetes API. Edges come from your real workload config.

2

Scan

Syft builds an SBOM of each image; Grype matches it against CVE data. Findings carry their source — the model is scanner-agnostic.

3

Score

Risk is computed, not guessed: Impact (data sensitivity × severity) × Exploitability (internet-facing + connections).

4

Visualize

Everything renders as a navigable dependency graph, a sortable table, and a per-service detail panel.

What you see

One view, every signal.

Dependency graph

Force-directed map of every service, with risk-colored rings and protocol-labeled edges.

Risk scoring

A 0–100 score per service with an Impact × Exploitability breakdown you can reason about.

Real CVEs

Violations come from actual Grype scans of your images — not a static list.

SBOM & libraries

Every dependency Syft finds, with versions and which ones are vulnerable.

Classifiers

Flag sensitive services (PII, PCI) so impact reflects what the workload actually handles.

Scanner-agnostic

Trivy, Snyk, OSV — adapters plug into one finding model. Swap or add scanners freely.

Overview

What is MeshReader?

FAQ

Frequently asked questions

What is MeshReader?

MeshReader is an open-source, Kubernetes-native Application Security Posture Management (ASPM) tool. It discovers your running services, scans their container images for vulnerabilities, computes a risk score for each, and renders everything as one navigable dependency graph.

How does MeshReader discover services?

Three ways: an in-cluster agent that watches the Kubernetes API and pushes data over gRPC, a read-only kubeconfig connection, or a static schema import where you paste a Syft SBOM, a Grype report, or a MeshReader snapshot.

Which scanners does it use?

Syft generates the software bill of materials (SBOM) and Grype matches it against CVE data by default. The finding model is scanner-agnostic, so Trivy, Snyk, or OSV adapters plug into the same schema.

Does MeshReader send my data anywhere?

No. With the in-cluster agent, posture data stays within your own control plane and backend. The schema-import mode runs entirely client-side in your browser.

How is the risk score calculated?

Risk decomposes into Impact (data sensitivity × finding severity) and Exploitability (internet-facing exposure + connection count), computed per service from real scan findings — never a hardcoded number.

Can I try it without installing anything?

Yes. Use schema import to paste a Syft SBOM or Grype JSON report and MeshReader renders the graph instantly, no cluster access required.

Is MeshReader open source?

Yes. The protobuf object model and the full stack — agent, ingestion, and frontend — are available on GitHub.

Map your cluster's risk.

Launch the console and explore a live posture graph, or import a snapshot to try it offline.