diff --git a/ansible/inventories/devnet-6/group_vars/all/chat.yaml b/ansible/inventories/devnet-6/group_vars/all/chat.yaml
new file mode 100644
index 0000000..ebfff93
--- /dev/null
+++ b/ansible/inventories/devnet-6/group_vars/all/chat.yaml
@@ -0,0 +1,26 @@
+# AI chat (panda-chat) — glamsterdam-devnet-6.
+# role: ethpandaops.general.generate_kubernetes_config
+#
+# Prereqs (shared with the bal-devnet-7 pilot; central, not per-devnet):
+# - `chat` section in services.enc.yaml with llm_api_key,
+# langfuse_public_key, langfuse_secret_key, and (panda on) the Authentik
+# service-account panda_bot_username / panda_bot_token.
+# - Cloudflare Access guard: the wildcard chat.*.ethpandaops.io app in
+# ethPandaOps/cloudflare/terraform/chat.tf (allow: Ethereum Github Org).
+# Trusted-header SSO is on by default (chat_auth_enabled).
+# - hermes-agent-panda image with the dispatch entrypoint (panda-chat chart
+# >= 0.2.0 runs the two-container pod) and panda >= 0.32.0.
+
+gen_kubernetes_config_chat_enabled: true
+# Pinned image: CI publishes to GHCR (private) and mirrors to Docker Hub.
+# -.
+gen_kubernetes_config_chat_image: "ethpandaops/chat:hermes-agent-panda-2026.6.5-20c0647"
+gen_kubernetes_config_chat_chart_version: "0.3.0"
+# services.enc.yaml#chat llm_api_key is an OpenRouter key (sk-or-v1-...).
+gen_kubernetes_config_chat_llm_provider: "openrouter"
+gen_kubernetes_config_chat_llm_api_key_env: "OPENROUTER_API_KEY"
+gen_kubernetes_config_chat_llm_model: "anthropic/claude-sonnet-4.6"
+# Panda on: renders the panda-server sidecar and seeds the panda CLI config
+# (/opt/data/.config/panda/config.yaml -> local server). Reuses the central
+# Authentik panda-chat service account + services.enc.yaml#chat panda_bot_*.
+gen_kubernetes_config_chat_panda_enabled: true
diff --git a/kubernetes/devnet-6/chat/.helmignore b/kubernetes/devnet-6/chat/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/kubernetes/devnet-6/chat/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/kubernetes/devnet-6/chat/Chart.lock b/kubernetes/devnet-6/chat/Chart.lock
new file mode 100644
index 0000000..a33c94d
--- /dev/null
+++ b/kubernetes/devnet-6/chat/Chart.lock
@@ -0,0 +1,6 @@
+dependencies:
+- name: panda-chat
+ repository: https://ethpandaops.github.io/ethereum-helm-charts
+ version: 0.3.0
+digest: sha256:bd206f3456227a3466c0f3996526cccbdcb63f7df44d5b7cd312762477eea1d2
+generated: "2026-06-11T17:16:01.248748594+02:00"
diff --git a/kubernetes/devnet-6/chat/Chart.yaml b/kubernetes/devnet-6/chat/Chart.yaml
new file mode 100644
index 0000000..ed6c99c
--- /dev/null
+++ b/kubernetes/devnet-6/chat/Chart.yaml
@@ -0,0 +1,11 @@
+# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/Chart.yaml.j2
+
+apiVersion: v2
+name: chat
+description: A Helm chart for Kubernetes
+type: application
+version: 0.1.0
+dependencies:
+ - name: panda-chat
+ repository: https://ethpandaops.github.io/ethereum-helm-charts
+ version: 0.3.0
diff --git a/kubernetes/devnet-6/chat/charts/panda-chat-0.3.0.tgz b/kubernetes/devnet-6/chat/charts/panda-chat-0.3.0.tgz
new file mode 100644
index 0000000..bd9c4e1
Binary files /dev/null and b/kubernetes/devnet-6/chat/charts/panda-chat-0.3.0.tgz differ
diff --git a/kubernetes/devnet-6/chat/values.yaml b/kubernetes/devnet-6/chat/values.yaml
new file mode 100644
index 0000000..aaef994
--- /dev/null
+++ b/kubernetes/devnet-6/chat/values.yaml
@@ -0,0 +1,88 @@
+# Ansible managed. Don't change this file manually. Template info: /vendor/collections/ansible_collections/ethpandaops/general/roles/generate_kubernetes_config/templates/chat.yaml.j2
+# Everything nests under the dependency chart's name — the generated wrapper
+# chart (Chart.yaml.j2) has no templates of its own, so top-level values
+# never reach the panda-chat subchart.
+panda-chat:
+ fullnameOverride: chat
+
+ network: glamsterdam-devnet-6
+ chainId: "7052886157"
+
+ image:
+ repository: ethpandaops/chat
+ tag: hermes-agent-panda-2026.6.5-20c0647
+ pullPolicy: IfNotPresent
+
+ llm:
+ provider: openrouter
+ model: anthropic/claude-sonnet-4.6
+ apiKeyEnv: OPENROUTER_API_KEY
+
+ # Override the chart's default prompt (panda-chat values.yaml). Pilot override
+ # ahead of an ansible/chart bump; mirrors ethereum-helm-charts panda-chat 0.3.x.
+ # Debugging-oriented: names the devnet's active forks so the agent reads
+ # symptoms under the right protocol model, and points at panda's canonical
+ # debugging procedure (the panda skill carries the detailed playbook).
+ systemPrompt: |
+ You are the EthPandaOps debugging assistant for the Ethereum devnet "glamsterdam-devnet-6" (chain id 7052886157), scoped to it alone. It runs Fulu/PeerDAS from genesis and Gloas/ePBS from epoch 30 — be fork-aware: missing-payload, PTC, and data-column symptoms are normal protocol artifacts here unless evidence says otherwise.
+ Tools: `panda` (query + debug live chain data, container logs, and nodes; its skill carries the panda debugging playbook), `faucet` (fund accounts), `join-devnet` (join the network).
+ To debug, follow panda's procedure: read `networks://glamsterdam-devnet-6` for fork context, then `runbooks://debug_devnet`. Discover before querying; never invent APIs, tables, or node names.
+ Report exactly what the tools return — paste raw output, cite the panda command behind each finding, and flag any disagreement between sources. Lead with the numbers, in plain English. Be concise.
+
+ # Panda integration (panda-server sidecar + Authentik bot identity). Off =
+ # plain LLM chat; the bot credentials are only referenced when on, so the
+ # devnet can run chat before services.enc.yaml#chat has panda_bot_* keys.
+ panda:
+ enabled: true
+
+ # LLM-call tracing → EthPandaOps Langfuse (keys from services.enc.yaml#chat).
+ langfuse:
+ enabled: true
+ baseUrl: "https://langfuse.analytics.production.platform.ethpandaops.io"
+
+ devnetTools:
+ faucet:
+ enabled: true
+ url: "https://faucet.glamsterdam-devnet-6.ethpandaops.io"
+ join:
+ configUrl: "https://config.glamsterdam-devnet-6.ethpandaops.io"
+ rpcUrl: "https://rpc.glamsterdam-devnet-6.ethpandaops.io"
+ explorerUrl: "https://dora.glamsterdam-devnet-6.ethpandaops.io"
+
+ credentials:
+ # Stable OW<->Hermes bearer: the chart can't preserve a generated one under
+ # ArgoCD (client-side `helm template`), so it must be a fixed sops value.
+ apiServerKey: ""
+ llmApiKey: ""
+ panda:
+ botUsername: ""
+ botToken: ""
+ langfuse:
+ publicKey: ""
+ secretKey: ""
+
+ open-webui:
+ sso:
+ enabled: true
+ trustedHeader:
+ enabled: true
+ openaiBaseApiUrls:
+ - "http://chat-hermes:8642/v1"
+ extraEnvVars:
+ - name: ENABLE_OLLAMA_API
+ value: "false"
+ - name: ENABLE_LOGIN_FORM
+ value: "false"
+ - name: OPENAI_API_KEYS
+ valueFrom:
+ secretKeyRef:
+ name: chat-hermes-secret
+ key: API_SERVER_KEY
+ ingress:
+ host: chat.glamsterdam-devnet-6.ethpandaops.io
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-body-size: "0"
+ nginx.ingress.kubernetes.io/configuration-snippet: |
+ sub_filter '' '';
+ sub_filter_types text/html;
+ sub_filter_once off;