Kubernetes-native · Self-hosted · Beta

Probably the best
developer platform
in the world.

Drop a lightweight agent into your clusters and see every workload across all of them: owners, exposed services, RBAC risk, Helm and GitOps status. The catalog, search and docs come built in.

Backstage-compatible · your catalog-info.yaml files just work · *probably.

The Shoehorn dashboard: security, pipelines, workloads, scorecards and team resources at a glance

Your whole platform at a glance, discovered automatically.

How it works

Connect. Map. Ask.

Three moves. Shoehorn does the wiring in between.

1

Connect

GitHub org & repos
Kubernetes clusters
Cloud (UpCloud)

~15 min of setup, once.

2

Map

Shoehorn crawls everything and builds the catalog, ownership and dependency graph, automatically.

3

Ask

payments-api healthy

owned by Team Orion · 3 services depend on it

Found in 184ms across 42 services.

The K8s agent, explained

Your cluster talks out.
Nothing reaches in.

Drop a lightweight agent into your cluster. It watches your workloads and pushes what's running up to Shoehorn over a single outbound connection.

  • No inbound access. No open ports, no firewall holes, no VPN into your cluster.
  • Real-time. Deploy something and it shows up in the catalog within seconds.
  • GitOps-aware. Understands ArgoCD and FluxCD sync status out of the box.
$ helm install shoehorn-agent shoehorn/agent
Your Kubernetes clusterapi-gatewaypaymentsworkersredisshoehorn-agentwatches & pushesoutbound · TLSShoehorncatalog · graphno inbound

Key features

Everything ships together

Catalog, search, docs, governance and operations: one service in your stack. No plugins to maintain.

Discover

A catalog that builds itself

Every service, who owns it, what it depends on, where the docs live, all discovered from your repos and clusters. Nobody has to hand-write a single YAML file.

catalog / services
P

payments-api

Team Orion · Go

healthy
C

checkout-web

Team Vega · Svelte

healthy
N

notifications

Team Lyra · Python

degraded

"What breaks if I change payments-api?"

paymentscheckoutledgerbillingrefunds

4 services in the blast radius

Operate

See the blast radius before you ship

Trace dependencies 1–5 levels deep. Know exactly what calls the endpoint you're about to deprecate, before the incident, not during it.

Find

Search that actually finds it

Hybrid keyword and vector search across services, docs and APIs. Stop asking in Slack who owns the thing that's on fire.

who owns auth ⌘K
A

auth-service

Team Phoenix · 99.98% uptime

service
D

Authentication guide

docs · updated 3d ago

doc

12 results · 184ms

AI-ready

Plug your AI assistant
into your platform

Shoehorn ships a read-only MCP server. Point Claude, Cursor or Copilot at it and they answer questions about your stack from your real catalog: who owns a service, what depends on it, where the docs live. Grounded in live data, not guesses.

  • Read-only and safe. Assistants read context, they can't change anything. The CLI stays the path for writes.
  • Any MCP client. Claude, Cursor, VS Code, and more.
  • Grounded in your catalog. Answers cite real services, owners and docs.
AI Assistant · connected to Shoehorn MCP
Who owns payments-api, and what breaks if I deprecate /charge?
payments-api is owned by Team Orion.
3 services call /charge: checkout-web, ledger, billing.
Runbook: payments/on-call.
via Shoehorn MCP

Why Shoehorn?

It runs as part of your stack. No portal team needed just to keep it alive.

Other portals
Shoehorn
Days of setup before anything's useful
Connect your GitHub org. Drop an agent into your cluster. 15 minutes.
Maintenance becomes an ongoing side job
Just another service in your stack
Common needs still require extra assembly
Catalog, search, docs, security and Kubernetes operations ship together
Adoption depends on how much rework's required
Backstage-compatible. Your YAML just works.

Build with Shoehorn

Terraform, CLI, REST or MCP. Every action is an API. Same data underneath.

Pricing

Free while we're in beta

Self-hosted, per cluster, never per seat. Unlimited entities, users and sources.

BETA

Free

Self-host on your own infrastructure. Pay nothing while we're in beta.

Freeforever

During beta, Free unlocks everything

Up to 3 Kubernetes clusters and every feature, free while we're in beta. Your feedback shapes 1.0.

  • Unlimited nodes, entities and users
  • Every feature included
  • Backstage-compatible: your YAML just works
  • A direct line to the team
Get started free

After beta, Free continues with 1 cluster. Add more any time.

Multi-cluster production plans arrive after beta. See full pricing →