Help us improve
Share bugs, ideas, or general feedback.
From wandb-plot
Download and generate plots from Weights & Biases runs. Use when you need to: - List projects you have access to - List runs in a W&B project - Inspect available metrics for a run - Download existing plot images from a run - Generate line plots from metric history (loss, accuracy, etc.)
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin rubenbranco-wandb-plot-skillHow this skill is triggered — by the user, by Claude, or both
Slash command
/wandb-plot:wandb-plotThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**IMPORTANT:** Before running ANY script, you MUST execute this setup block to ensure the correct working directory and virtual environment.
pyproject.tomlrequirements-dev.txtrequirements.txtscripts/__init__.pyscripts/download_plots.pyscripts/generate_plots.pyscripts/list_metrics.pyscripts/list_projects.pyscripts/list_runs.pyscripts/wandb_utils.pytests/__init__.pytests/conftest.pytests/fixtures/mock_metrics.jsontests/fixtures/mock_run_data.jsontests/fixtures/sample_plot.pngtests/test_download_plots.pytests/test_generate_plots.pytests/test_integration.pytests/test_list_metrics.pytests/test_list_projects.pyTraining monitoring dashboard setup with TensorBoard and Weights & Biases (WandB) including real-time metrics tracking, experiment comparison, hyperparameter visualization, and integration patterns. Use when setting up training monitoring, tracking experiments, visualizing metrics, comparing model runs, or when user mentions TensorBoard, WandB, training metrics, experiment tracking, or monitoring dashboard.
Logs and retrieves ML training metrics and alerts via Python API and CLI. Syncs to Hugging Face Spaces for real-time dashboards. Use during training or for automated diagnostics.
Opens local web dashboard to browse workflow runs, inspect step timelines, view artifacts, and diff executions side-by-side.
Share bugs, ideas, or general feedback.
IMPORTANT: Before running ANY script, you MUST execute this setup block to ensure the correct working directory and virtual environment.
# Determine skill directory (Claude Code plugin or Codex/local)
if [ -n "${CLAUDE_PLUGIN_ROOT}" ]; then
SKILL_DIR="${CLAUDE_PLUGIN_ROOT}/skills/wandb-plot"
elif [ -d "${HOME}/.codex/wandb-plot-skill/skills/wandb-plot" ]; then
SKILL_DIR="${HOME}/.codex/wandb-plot-skill/skills/wandb-plot"
else
SKILL_DIR="$(pwd)"
fi
cd "$SKILL_DIR"
# Create/activate venv and install deps (uv preferred, pip fallback)
if [ ! -d ".venv" ]; then
if command -v uv &> /dev/null; then
uv venv .venv && . .venv/bin/activate && uv pip install -e .
else
python3 -m venv .venv && . .venv/bin/activate && pip install -e .
fi
else
. .venv/bin/activate
fi
After setup completes, all python3 scripts/*.py commands will work correctly from this directory.
WANDB_API_KEY environment variable (recommended) or run wandb login.scripts/list_projects.pyInputs
--entity <entity> (optional; defaults to current user or org)--limit <n> (optional, default: 100)--json (optional)Output
--json), where each item includes:
name, entity, description, created_at, urlscripts/list_runs.pyInputs
<entity/project> (required)--state <state> (optional)--limit <n> (optional, default: 100)--json (optional)Output
--json), where each item includes:
id, name, state, created_at, summary_metrics, tagsscripts/list_metrics.pyInputs
<entity/project> (required)<run_id> (required; run id or run name)--include-system (optional; include _step, _timestamp, etc.)--json (optional)Output
--json) keyed by metric name.type, count, non_null_count, and for numeric metrics: min, max, mean, std.scripts/download_plots.pyInputs
<entity/project> (required)<run_id> (required)--pattern "<glob>" (optional; defaults to common image paths)--output <dir> (optional; overrides default output location)--force (optional; re-download if file exists)Output
metadata.json in the same directory.scripts/generate_plots.pyInputs
<entity/project> (required)<run_id> (required; comma-separated for multiple runs)--metrics "<m1,m2,...>" (required; metric names as shown by list_metrics.py)--all-metrics (optional; plot all metrics)--full-res (optional; uses full scan_history)--smooth <n> (optional; rolling average window)--output <dir> (optional)--ema-weight <w> (optional; default: 0.99)--viewport-scale <n> (optional; default: 1000)--no-ema (optional; disable EMA smoothing)--group-by-prefix (optional; group outputs by metric prefix)--include-system (optional; include system metrics like _step and system/* with --all-metrics)Output
<metric>.png for each generated plot plus metadata.json to the output directory.python3 scripts/list_projects.py --limit 10
python3 scripts/list_runs.py <entity/project> --limit 10
python3 scripts/list_metrics.py <entity/project> <run_id>
python3 scripts/download_plots.py <entity/project> <run_id>
python3 scripts/generate_plots.py <entity/project> <run_id> --metrics loss,accuracy
python3 scripts/generate_plots.py <entity/project> run1,run2 --metrics loss --ema-weight 0.99 --viewport-scale 1000
python3 scripts/generate_plots.py <entity/project> run1,run2 --metrics rewards/total_mean,rewards/total_std --output /path/to/folder --group-by-prefix
python3 scripts/generate_plots.py <entity/project> run1,run2 --all-metrics --output /path/to/folder --group-by-prefix
Default output directory:
wandb_plots/<entity>_<project>/<run_name>_<run_id>/
- *.png
- metadata.json
If download_plots.py finds no images, fall back to generate_plots.py.