# AX Check: linkerd.io
Checked 2026-10-28.

Linkerd's quickstart works, but no AI-ready docs index exists
Getting Started gives copyable install commands and a working demo walkthrough. But there's no llms.txt or Markdown version of the homepage, so agents must parse HTML.

## End-to-end onboarding not demonstrated

## Coding sessions
All three independent sessions completed and correctly identified Linkerd as free open source, with the paid Buoyant Enterprise tier described as custom-quoted per cluster rather than publicly priced, drawn from the agents' own knowledge rather than a fetched pricing page.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/672a23ad-7e9c-4330-89b0-57a8df0b1264) · [Read transcript](https://www.ax-check.com/linkerd.io/sessions/deepseek.json)
Open-source Linkerd is free apart from infrastructure cost. Buoyant Enterprise is free in non-production, and production needs a custom license from sales with no public price. All of this was sourced from the fetched pricing pages. (seq 16, seq 18)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Agent never obtained or used product credentials. It determined Linkerd is a Kubernetes-resident service mesh with no hosted SDK/API, and stopped per the session's explicit instruction not to start local service stacks or wait on long-running commands. No signup, API key, or authenticated operation was attempted.
  Event 18:

  ```text
  That quickstart **requires a Kubernetes cluster and installing a control plane into it** — i.e., a local service stack and a long-running cluster. You told me not to start local service stacks or wait on long-running commands, so I'm calling it plainly: **there is no hosted SDK/API workflow here that I can act on, and the quickstart needs a cluster. I'm not building the example.**
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Linkerd requires a Kubernetes cluster, no hosted SDK/API path**: Product behavior, not agent error: Linkerd's own getting-started docs state the quickstart requires a working Kubernetes cluster and kubectl, then installing the control plane via the CLI. This conflicts with the session's constraint to stay light and avoid local service stacks or long-running commands, so the agent correctly stopped rather than spinning up a cluster.
  Event 12:

  ```text
  Before anything else, we need to ensure you have access to modern Kubernetes
  cluster and a functioning kubectl command on your local machine.
  ```
  Event 18:

  ```text
  This sandbox has no `kubectl`, `kind`, or `minikube`, and I did not install any.
  ```

#### Suggested Changes
- **Add a hosted sandbox or API-accessible demo environment for Linkerd**: The getting-started page (linkerd.io/2.16/getting-started/) only offers a CLI-plus-cluster install path, with no hosted SDK/API alternative for quick evaluation. Consider linking a hosted try-it sandbox directly from the getting-started page so developers without a cluster can test it without standing up local infrastructure; verify by confirming a developer can exercise basic mesh features through an API or web console without running kubectl locally.
  Event 12:

  ```text
  install the CLI (command-line interface) onto your local machine. Using this
  CLI, you’ll then install the control plane onto your Kubernetes cluster.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/0902ad5b-e46d-470e-a209-3594e7a54987) · [Read transcript](https://www.ax-check.com/linkerd.io/sessions/kimi.json)
OSS was called free and Buoyant Enterprise 'contact sales, per node/cluster', all from memory. No paid figure and no assumptions about cluster size, plan tiers or company size were given. (seq 6)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Agent never attempted any hosted credential acquisition or authenticated API/SDK call. It checked locally for kubectl/linkerd CLI tooling, found none, and immediately concluded Linkerd has no hosted product to act on, stopping before any onboarding flow could begin.
  Event 3:

  ```text
  which kubectl linkerd kind minikube 2>/dev/null; kubectl version --short 2>&1 | head -5; echo "---"; env | grep -i -E "kube|linkerd" | head -10
  ```
  Event 6:

  ```text
  I verified this sandbox: no `kubectl`, no `linkerd` CLI, no kubeconfig, no cluster of any kind.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No hosted SDK/API surface for Linkerd in this sandbox**: Linkerd is a self-hosted Kubernetes service mesh with no hosted control plane, API key flow, or account signup. The agent found no kubectl, linkerd CLI, or kubeconfig present, and per the session's own constraints against starting local service stacks or long-running commands, correctly identified there was no lightweight hosted workflow to exercise. This is a product-category mismatch with the session's requirement to use a hosted SDK/API rather than a specific product defect or agent error.
  Event 4:

  ```text
  /bin/bash: line 1: kubectl: command not found
  ---
  
  ```
  Event 6:

  ```text
  Linkerd is a **self-hosted service mesh for Kubernetes** (a CNCF graduated project), not a hosted SaaS product.
  ```
  Event 6:

  ```text
  The only "quickstart" requires:
  1. A running Kubernetes cluster (kind, minikube, k3d, or a cloud cluster)
  2. Installing the `linkerd` CLI and running `linkerd install` into that cluster
  3. Deploying apps into the mesh to see it work
  ```

#### Suggested Changes
None identified in this transcript.

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/4716bf22-b4df-4ba8-bbef-067ffb1005a9) · [Read transcript](https://www.ax-check.com/linkerd.io/sessions/qwen.json)
Separated free Apache-2.0 open source from quote-based Buoyant Enterprise subscription, per-cluster not metered; plan basis named. (seq 6)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials were obtained or used, and no authenticated operation against a hosted product occurred. The agent inspected an empty repo, found no Linkerd-related files, and concluded Linkerd requires a live Kubernetes cluster to operate, then stopped without attempting any API/SDK calls or sign-up flow.
  Event 3:

  ```text
  ls /sandbox/repo && rg -il linkerd /sandbox/repo | head
  ```
  Event 6:

  ```text
  Linkerd is a service mesh that runs **inside a Kubernetes cluster**. There is no hosted Linkerd product with an SDK/API I can call directly
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Linkerd requires a live Kubernetes cluster, not a hosted SDK/API**: The agent determined that Linkerd has no hosted product with an SDK or API to call; every quickstart path involves installing into a Kubernetes cluster and running long-lived commands (install, deploy demo apps, check). This is a product architecture characteristic, not a credential or environment-specific issue, and it directly conflicted with the session's constraint against starting local service stacks or waiting on long-running commands, so the agent stopped per instructions.
  Event 6:

  ```text
  every "quickstart" path (`linkerd install | kubectl apply -f -`, deploying demo apps, `linkerd check`) requires a running cluster, which means starting a local service stack (kind/minikube/k3d) and waiting on long-running commands. That's exactly what you told me not to do, so I'm saying so plainly and stopping.
  ```

#### Suggested Changes
- **Add a lightweight hosted sandbox or API for first-time SDK-only evaluation**: The session found no way to try Linkerd without standing up a Kubernetes cluster via long-running local commands. If a hosted trial/sandbox environment with API/SDK access existed (even read-only or simulated), developers constrained to lightweight SDK/API evaluation (as in this session's seed prompt) could test core behavior without provisioning a cluster. Verify by having a fresh agent attempt the same seed prompt and confirm it can complete an authenticated operation without starting a local cluster.
  Event 6:

  ```text
  In an environment where a cluster already exists and `linkerd`/`kubectl` are pre-configured, management would be reasonably easy
  ```

### Task given to each agent
Help me build a simple example using Linkerd. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: C · 55/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html even when text/markdown was requested; no Markdown representation offered.
  ```

- **Failed** — llms.txt provides an actionable documentation index

  ```text
  https://linkerd.io/llms.txt returns HTTP 404, so no documentation index exists.
  ```

- **Failed** — A compact guide representation exists

  ```text
  No site-published Markdown guide; /llms.txt returns 404 and homepage Markdown negotiation yields HTML.
  ```

- **Skipped** — llms.txt provides navigation guidance

  ```text
  llms.txt is 404, so its navigation guidance cannot be evaluated.
  ```

- **Skipped** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt is 404, so mentions of API, MCP or skills cannot be evaluated.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  Getting Started page is directly retrievable with concrete install steps and commands.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  Getting Started guide is 5423 tokens, under the 8000-token budget.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown is unsupported, so link preservation across formats cannot be measured.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  Getting Started gives concrete steps: install CLI, install control plane, mesh Emojivoto, verify.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Homepage Get Started and docs links fetched successfully; getting-started next-step links resolve.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  Getting Started guide walks through installing Linkerd, deploying Emojivoto, and meshing it.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install commands shown as copyable code: curl install script, linkerd install --crds, linkerd install.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Bash and YAML examples rendered inline in docs without interaction or login.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Prerequisites state Kubernetes cluster, kubectl, Gateway API CRDs, and supported versions.
  ```


### Pricing
- **Skipped** — Pricing is readable without interaction

  ```text
  Not applicable: the relevant product is free. Linkerd is 100% open source; no pricing page was fetched, so no prices to read.
  ```

- **Skipped** — Prices are stated, not gated

  ```text
  Not applicable: the relevant product is free. No pricing page fetched; Linkerd is free open source with no applicable paid plans.
  ```

- **Skipped** — Pricing units and limits are explicit

  ```text
  Not applicable: the relevant product is free. No pricing evidence fetched; free open-source product has no pricing units or limits.
  ```

- **Skipped** — Agents identify pricing and its assumptions

  ```text
  Not applicable: the relevant product is free. Linkerd is 100% open source; no pricing page was fetched, so no prices to read.
  ```


### Activation
- **Skipped** — An API reference or OpenAPI spec is reachable

  ```text
  No API reference or OpenAPI spec fetched; Linkerd is a service mesh configured via CRDs and CLI.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server documentation found in the fetched Linkerd pages.
  ```

- **Pass** — A CLI install path is documented

  ```text
  Getting Started documents installing the linkerd CLI via curl script and verifying with linkerd version.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No SDK package registry lookup supplied; Linkerd ships a Go CLI, not a distributed SDK.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills published or referenced in the fetched Linkerd documentation.
  ```



[Full report data](https://www.ax-check.com/linkerd.io/report.json)
