The kilter portal is the platform's control-plane web UI, backed by kilter-server. It's the single place to see everything deployed on the platform: every app shipped with kilter deploy shows up automatically, no registration step required.
How apps appear
Each deployed app becomes a tile in the portal. The tile shows what the platform knows about the app — its name, environments, and whatever the app's manifest declares (description, owner, tags, links).
Launch links. Apps in public, routed environments get an outbound launch link on their tile pointing at <app>.<cluster-domain> — the URL the cluster Gateway serves the app on. Clicking it takes you to the app itself, in its own tab.
Launch links are plain outbound links. The portal doesn't proxy or iframe apps — your app serves its own traffic at its own hostname, with its own auth. The portal is a directory, not a gateway.
Apps deployed with public: false have no external route, so they get no launch link — they still appear as tiles, discoverable but reachable only in-cluster.
The discovery registry
The portal's registry (ADR-0016) is fed by the optional manifest: block in each app's kilter.yaml:
manifest:
description: "Customer-facing billing dashboard"
owner: platform-team
tags: [billing, internal]
links:
docs: https://kb.example.com/billing
runbook: https://kb.example.com/billing/runbookdescription,owner, andtagspower the tile and portal-wide filtering.linksis a free-form map of named URLs.docsandrunbookare the conventional keys; arepolink is auto-filled from the git remote at deploy time, so every tile links back to its source without anyone maintaining it.- Apps declaring
manifest.agent(a2a/mcp paths) are classified as Agents in the portal, separating AI agents from ordinary web apps.
The manifest ships with every kilter deploy, so the registry is always as fresh as the last deploy — there's no separate catalog to keep in sync. Full field reference: kilter.yaml Reference.
Who uses it
Users browse the portal to find and launch apps — the answer to "where's the staging billing dashboard?" is a tile with a launch link, a docs link, and an owner to ping.
Admins use it as the platform inventory: what's deployed, on which clusters, owned by whom, with runbooks one click away. Because the registry is populated from deploys rather than manual entry, it doesn't rot.
Getting an app into the portal
There's nothing portal-specific to do — deploy and it appears:
kilter login --server <url> --token <tok>
kilter deploy --project <org>/<app> --registry registry.netshire.com/<scope>Add a manifest: block before deploying if you want the tile to carry a description, owner, tags, and links. See Deploying to Production for the full deploy flow.