Detail Views
A detail view is the per-object surface. It opens whenever you select a single row: by typing <resource> <name> in the command bar, pressing Enter or o on a table row, or following a deep link (buoy://...).
The view is built from tabs that render conditionally based on the object’s kind and group. A Pod gets Logs and Shell tabs; a Node gets Allocation; a Deployment gets History and Pods. The tab strip only shows what applies.
Contents
Opening a Detail View
From a table:
| Key | Effect |
|---|---|
Enter, o | Open detail, Overview tab. |
d | Open detail in describe mode (Overview, expanded sections). |
y | Open detail, YAML tab. |
l | Open detail, Logs tab (Pod-only shortcut). |
From the command bar:
pods my-pod
deployments api-server
nodes ip-10-0-1-23.ec2.internal
From a deep link, anywhere buoy://... URLs are recognized (other tabs, system links). Generate one for the current view with Cmd+L then the c l chord, or /link.
Tab Reference
Overview
The default tab. Shows metadata (labels, annotations, owner references, timestamps), spec, and status in collapsible sections. The conditions table is reused across kinds and renders any status.conditions array.
d opens the detail in “describe” mode, which expands every section by default for a kubectl-describe feel.
YAML
CodeMirror 6 with YAML syntax highlighting and a Cmd/Ctrl-F search panel. Read-only by default.
Click Edit (or use the Edit button in the tab strip) to switch to writable mode. Type changes, click Apply, review the unified diff in the confirmation modal, type the object name, and confirm. Errors surface inline. The editor’s read-only state hot-swaps via CodeMirror Compartments, so toggling Edit preserves scroll and any open search panel.
YAML editing details, including the apply behavior, live in mutations.md.
Logs
Available on Pods. Multi-container aware: the container picker lists regular containers, init containers, native sidecars, and ephemeral debug containers, with a suffix tag like (init) indicating the kind.
| Control | Description |
|---|---|
| Container | Picker for the source container. |
| Tail | 100, 500, 2000, or All. Default is 500. |
| Follow | Stream new lines as they arrive. Disabled when Previous is checked. |
| Previous | Logs from the previous container instance after a restart or crash. |
| Filter | Substring (case-insensitive) or regex. Toggle the Regex flag to switch modes. Invalid regex shows “(invalid regex)” without breaking the stream. |
| Reload | Restarts the current log fetch. |
The viewer sticks to the bottom while you are at the bottom, and stops sticking once you scroll up. When a filter is active, the visible-line count is shown below the controls.
The aggregated multi-pod view (/logs <selector>) follows the same controls but reads from every pod that matches the selector.
Shell
Available on Pods. Opens an interactive exec session in the container picker’s choice. Buoy can attach an ephemeral debug container using the default image from Settings, Debug Container.
Pods
Available on owners that select pods: Node, Deployment, StatefulSet, ReplicaSet, DaemonSet, Job, PodDisruptionBudget, Service, Argo Rollout, Argo Workflow, PersistentVolumeClaim, Namespace.
The list is derived without any extra API calls. For workloads that expose spec.selector.matchLabels, the watch uses that label selector. For a Workflow, the selector is workflows.argoproj.io/workflow=<name>. For a PVC, Buoy filters client-side by spec.volumes[].persistentVolumeClaim.name because no field selector exists. For a Namespace, every pod in the namespace is included.
Selectors that use matchExpressions only (no matchLabels) cannot drive a server-side watch and surface a warning.
Endpoints
Available on Services. Renders the backing endpoints grouped by ready and not-ready.
Related
Available on Pods, PersistentVolumeClaims, and PersistentVolumes. The relationships are derived from object spec without round trips.
| From | Shows |
|---|---|
| Pod | Owning workload (from ownerReferences), node (spec.nodeName), mounted PVCs. |
| PVC | Bound PV (status.volumeName), pods mounting the PVC. |
| PV | Bound PVC (spec.claimRef), storage class. |
Allocation
Available on Nodes. Per-node CPU and memory bars, chunked by the pods running on the node and colored by namespace. Mirrors the | allocation pipe view but scoped to one node.
Neighbors
Available on Pods. Lists the other pods on the same node, with the same allocation visualization.
Scheduling
Available on Pods. The scheduling explainer with four sub-tabs: Parameters, Existing Nodes, NodePools, and Summary. See scheduling.md for the full reference.
Events
Filtered to involvedObject.name and involvedObject.namespace, sorted by last-seen time descending. Shows reason, message, type, count, and age.
Metrics
Available on Pods, Nodes, Deployments, StatefulSets, DaemonSets, and Namespaces when Prometheus is configured. CPU, memory, and network charts with a range picker and a chart-vs-table toggle.
Explain
The kubectl explain equivalent. Hierarchical view of the resource’s schema, populated from the OpenAPI documents the apiserver exposes.
History
Available on Deployment, StatefulSet, DaemonSet, and Argo Rollout.
| Kind | Source |
|---|---|
| Deployment, Argo Rollout | Owned ReplicaSets. The Rollout uses the rollout.argoproj.io/revision annotation; the Deployment uses deployment.kubernetes.io/revision. |
| StatefulSet, DaemonSet | Owned ControllerRevisions. |
Each revision card shows the revision number, creation time, status, and change-cause annotation. Click the header to expand the unified diff against the previous revision. The current revision is expanded by default.
Permissions
Available on ServiceAccounts. Lists the RoleBindings and ClusterRoleBindings that reference the account, plus the resolved verbs.
HPA and VPA
Available on HorizontalPodAutoscaler (autoscaling/v2) and VerticalPodAutoscaler (autoscaling.k8s.io/v1) objects. See integrations/hpa-vpa.md.
Workflow, Templates, Workflows
Available on Argo Workflow CRs. See integrations/argo-workflows.md.
Rollout
Available on Argo Rollouts. See integrations/argo-rollouts.md.
ArgoCD
Available on ArgoCD Applications and ApplicationSets. See integrations/argocd.md.
KRO Tabs
KRO Resources, KRO Graph, and KRO Instances tabs surface on KRO ResourceGraphDefinitions and instances. See integrations/kro.md.
Kueue Tabs
Workload, ClusterQueue, LocalQueue, and Flavor tabs surface on Kueue CRs. See integrations/kueue.md.
Helm Sections
Helm releases are virtual objects synthesized from helm.sh/release.v1 Secrets. The detail view branches to a dedicated layout with History, Resources, Manifest, Values, and Notes sections. See integrations/helm.md.
NodeClaims and Managed Nodes
Available on Karpenter NodePools and NodeClass kinds (EC2NodeClass, AKSNodeClass, GCENodeClass). The NodeClaims tab lists the live NodeClaims tied to the pool or class. The Managed Nodes tab lists the Nodes those claims provisioned. See integrations/karpenter.md.
Plugin Tabs
Plugins can add tabs to any kind. They appear after the built-in tabs with the plugin’s name. They cannot replace or hide built-in tabs. See plugins/README.md.
Tab Shortcuts
The tab strip honors letter shortcuts. Capitalization matters when two tabs would otherwise collide.
| Key | Tab |
|---|---|
1 to 9 | Jump to the Nth visible tab. |
O | Overview |
y | YAML |
E | Events |
l | Logs (Pod) |
s | Shell (Pod) |
p | Pods |
e | Endpoints (Service) |
r | Related |
A | Allocation (Node) |
n | Neighbors (Pod) |
S | Scheduling (Pod) |
R | Rollout |
H | HPA |
V | VPA |
P | Permissions |
m | Open the Actions menu. |
The c chord (c l, c k, c y, c n) copies a link, a kubectl command, the YAML, or the object name. See hotkeys.md for the full keymap.