.claude/skills: add panda-install skill#21090
Merged
Conversation
added 2 commits
May 10, 2026 18:45
Adds a Claude Code skill that installs and configures the EthPandaOps Panda CLI / MCP server (https://github.com/ethpandaops/panda) on a fresh host. Panda gives Claude (and the panda CLI) a single authenticated entry point to the EthPandaOps data ecosystem: - Xatu ClickHouse (beacon-chain data lake) - Prometheus (EthPandaOps infra metrics) - Loki (EthPandaOps infra logs) - Direct Ethereum node access Skill covers: - Pre-flight checks (Docker, curl) - Install via the official install.sh script - Initialize against the hosted proxy (panda-proxy.ethpandaops.io) including the GitHub OAuth flow caveats - Self-hosted proxy alternative for orgs with own credentials - Wire into Claude Code via ~/.claude.json MCP config - Verify + troubleshoot - Note on benchmarkoor data: not currently a named datasource; includes Python snippets to probe Prometheus/ClickHouse for benchmarkoor_* metrics, plus guidance to file an ingestion request with EthPandaOps if not present Auto-discovered by Claude Code from any subdirectory of the repo.
Three explicit prompt points using AskUserQuestion: 1. Step 1 (mode selection): hosted proxy / self-hosted / skip 2. Step 3 (OAuth): wait-for-completion gate during the device-flow browser handoff, plus a fallback prompt if OAuth fails 3. Step 4 (self-hosted): structured datasource selection + per-source host/user prompts Secrets (passwords, tokens) explicitly NOT routed through AskUserQuestion (it logs to telemetry). Instead, the skill instructs the user to set env vars in their shell rc, and the config file + docker run command reference those env vars. This makes the install repeatable across servers — the skill drives the prompts rather than expecting Claude to improvise them.
added 2 commits
May 10, 2026 19:28
…in question AskUserQuestion option labels are short (≤5 words) and the question text doesn't render long URLs as clickable in most clients. The device-flow URL + code need to be presented as plain markdown FIRST so the user can click the link and copy the code with their normal UI affordances; then ask a minimal "Done? / Need fresh / Error" question. Discovered during the first install run on dev-bm-e3-ethmainnet-n4 — when the URL was embedded inside the AskUserQuestion question text the user couldn't copy it cleanly.
…st template When GitHub returns bad_verification_code during device-flow code exchange (not a real expired-code, but Mark's GitHub identity without panda-proxy app access), the skill should: 1. Recognize the symptom (immediate failure after device approval, distinguishable from genuinely expired codes which take minutes) 2. Give the user a ready-made request template with all the fields EthPandaOps needs (GitHub identity, service name, Dex issuer, OAuth client ID, reproducer) 3. Stop the local server (it flaps because the proxy embedding backend is unreachable without auth) Discovered during the first install run on dev-bm-e3-ethmainnet-n4 when the user's GitHub identity was not on the panda-proxy allowlist.
wmitsuda
approved these changes
May 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Claude Code skill that installs and configures the
EthPandaOps Panda CLI / MCP
server on a fresh host. Auto-discovered when anyone clones the repo —
Claude Code scans
.claude/skills/of cwd + parents.Panda is a CLI + MCP server + sandboxed Python runtime that gives a
single authenticated entry point to the EthPandaOps data ecosystem:
xatu(beacon-chain data lake)What the skill does
Drives the install end-to-end with three explicit prompt points:
EthPandaOps GitHub allowlist) / self-hosted proxy (own credentials)
/ skip.
browser step, plus a fallback prompt if the user isn't on the
allowlist (path: switch to self-hosted, or coordinate access).
selection + host/user prompts.
Secrets (passwords, tokens) are explicitly routed via environment
variables in the user's shell rc, not via
AskUserQuestion(whichlogs to telemetry). The proxy config +
docker runreference thoseenv vars.
Includes verify steps (
panda server status,panda datasources,panda execute) and the MCP wire-up snippet for~/.claude.json.Note on benchmarkoor data
Benchmarkoor results are not currently a directly-named Panda
datasource (verified 2026-05-10 against
benchmarkoor-api.core.ethpandaops.io). The skill includes Pythonsnippets to probe Prometheus / ClickHouse for
benchmarkoor_*metrics post-install, plus guidance to file an EthPandaOps
ingestion request if not present.
Test plan
panda server statusreports running,panda datasourceslists at least 1 source,
panda execute --code 'print("ok")'succeeds
ethpandaops-pandatools after restart🤖 Generated with Claude Code