A small emulation of my daily cockpit: a Claude agent working in one tmux pane, a
local CI pipeline (gctui) in the other, the yas statusline with my wrapper badges, and the real
keybindings. Click the terminal, then drive it with the keys below — the prefix is applied
for you (press o/n/p/Space/G directly; click the green
prefix: auto indicator for the real Ctrl-b behaviour) — or use the chips.
The concepts behind it are in the Workflow articles.
Ctrl-b prefix: auto ✓prefix o next paneprefix n next sessionprefix p prev sessionprefix Space which-key… K agentsviewprefix G gctuiTab gctui local⇄remote
tmux · aoeprefix
claude · network · 🌳 personal · pane 1/2 — prefix-O → gctui
🌳 personal📄 0🧠 4⏵ Opus▱▱▱▱ 8%🦊 —~/dev/network · main
❯ claude "onboard tenant wingtip: namespace + route + SSO sidecar"✻ a new tenant is three files and one MR — the gateway is never touched⏺ Write(namespaces/namespaces/wingtip.yml) tenant: wingtip · clusters: eu01 us01⏺ Write(gateway/routes/wingtip-shop.yaml) HTTPRoute · parentRef shared-gateway → :4180⏺ Write(gateway/workloads/wingtip-shop.yaml) app :8080 + oauth2-proxy sidecar :4180⏺ Bash(gctui run validate) — plan → OPA gate → exit 0☑ todo · MR ready: feat/tenant-wingtip⎿ ONE shared gateway per cluster — tenants attach routes, they don't add doors
$ argocd app wait wingtip --sync✓ ns wingtip created (claim: tenant: wingtip)✓ HTTPRoute wingtip-shop attached — parentRef gateway/shared-gateway✓ deploy wingtip-shop 2/2 ready (app + oauth2-proxy sidecar)$ curl -sI https://shop.wingtip.example/ | head -1HTTP/2 302 → login (SSO — the Service only exposes :4180)a route at the app port would show up as drift, not as traffic
❯ kubectl apply -f gateway/chaos/gateway-pod-kill.yaml✻ the scary one, on purpose: kill the ONE gateway's pods while users watchchaosengine.litmuschaos.io/gateway-pod-kill created⏺ pod-delete · ns gateway · app.kubernetes.io/name=traefik · 120s, a kill every 20s✂ traefik-7d4b9-x2kfp killed↻ rescheduled (PDB minAvailable: 1 held)✂ traefik-7d4b9-m9qwl killed↻ rescheduled (zone-2 replica kept serving)☑ verdict: Pass — steady-state hypothesis held for the full 120s⎿ a failed probe here is a design bug filed against gateway — not an incident
probe · through the gateway · pane 2/2 — prefix-O → litmus
$ watch -n1 curl -so /dev/null -w '%{http_code}' https://status.internal.nimbus.example/healthz200 200 200 200 200 200 200 200 200 200200 200 200 200 200 200 200 200 200 200 ← pods dying the whole time200 200 200 200 200 200 200 200 200 200$ kubectl -n gateway get pdb traefikNAME MIN AVAILABLE ALLOWED DISRUPTIONS AGEtraefik 1 1 212damber, not red: degraded-but-serving is a state you engineer, then rehearse
This is a simplified emulation — the real setup is tmux + which-key menus, agentsview
(a context inspector reading Claude transcript JSONL), aoe (session/worktree/profile manager),
gctui (local↔remote GitLab CI cockpit) and yas with a wrapper that adds the 📄/🧠/profile/🐳 badges.
Read the details: cockpit ·
signals ·
aoe ·
local CI.