mcpField
S
swanlab-skill

swanlab-skill

github.com/swanhubxData & databases17102 installsUpdated 5w ago
Repository

About swanlab-skill

swanlab-skill guides AI coding agents in using SwanLab for experiment tracking and analysis. It covers Python SDK instrumentation, CLI queries, connectivity checks, and scripts for plotting or comparing runs.

Key features

  1. 01Python SDK tracking guidance
  2. 02CLI queries for experiment data
  3. 03Connectivity and credential checks
  4. 04Scripts for plotting and run comparison
  5. 05Guidance for selecting reference materials

Use cases

  1. 01Add metric and media logging to training code
  2. 02Query experiment metrics, logs, or summaries
  3. 03Plot metrics from one experiment
  4. 04Compare a metric across experiment runs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/swanhubx/swanlab-skill --skill swanlab-skill

After installing, type/swanlab-skillin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
ANALYSIS_GUIDE.md
CLI_REFERENCE.md
SDK_QUICKSTART.md
SWANLAB_CONCEPTS.md
scripts/
plot_metrics.py
runs_benchmark.py

Details

From the project README

SwanLab Skill

SwanLab is an AI training experiment tracking platform. This skill covers two usage patterns:

  • Writing tracking code — use the Python SDK (swanlab.init, swanlab.log, swanlab.finish, media helpers)
  • Reading experiment data — use the swanlab api CLI to query metrics, logs, summaries, media, etc.

Reference Routing

If the user wants to...Read this reference
Write tracking code (init/log/finish/media)references/SDK_QUICKSTART.md
Query data via CLI (metrics/summary/logs/filter/etc.)references/CLI_REFERENCE.md
Understand data model / terminology / filter syntaxreferences/SWANLAB_CONCEPTS.md
Analyze runs/projects, compare experiments, write an experiment reportreferences/ANALYSIS_GUIDE.md
Plot metrics or compare experiments visuallySee Scripts below

Version note (SDK ≥ 0.9.0): use swanlab api run series to discover an experiment's metric keys. run column / run columns are deprecated since 0.9.0 and do not apply to multi-view experiments — only fall back to them when the installed SDK is < 0.9.0. See CLI_REFERENCE.md > Version Applicability.


Run Modes

swanlab.init(mode=...) controls where data goes:

ModeLocal StorageCloud UploadUse Case
onlineYes (protobuf)Yes (Transport → HTTP)Normal cloud usage. Requires login.
localYes (protobuf)NoAir-gapped / no account needed.
offlineYes (protobuf)No (syncable later via swanlab sync)Save locally, upload to cloud later.
disabledNoNoCompletely disable all logging.

Default is online if logged in; otherwise an interactive prompt offers login, registration, or offline. In non-interactive environments without an API key, init raises an error instead of falling back.


Scripts

Two helper scripts are available for visualizing experiment data:

scripts/plot_metrics.py — Single Experiment Line Chart

Trigger when the user wants to visualize scalar metrics from one experiment (e.g. "plot my loss curve", "show training metrics chart").

python scripts/plot_metrics.py username/project_name/run_id --keys loss,acc
python scripts/plot_metrics.py user/proj/run1 -k loss -o loss_chart.png -s 500
python scripts/plot_metrics.py --data metrics.json -k loss,acc -o chart.png   # from saved JSON
scripts/runs_benchmark.py — Cross-Experiment Comparison

Trigger when the user wants to compare the same metric across multiple experiments (e.g. "compare loss across runs", "benchmark these experiments").

python scripts/runs_benchmark.py user/proj/run1 user/proj/run2 user/proj/run3 -k loss
python scripts/runs_benchmark.py user/proj/run1 user/proj/run2 -k loss --direction lower
python scripts/runs_benchmark.py user/proj/run1 user/proj/run2 -k loss,acc --normalize
python scripts/runs_benchmark.py --data benchmark_data.json -k loss              # from saved JSON

Both scripts require swanlab login (or --api-key / --host flags).


Path Convention

CLI commands use username/project_name (project) or username/project_name/run_id (experiment). See SWANLAB_CONCEPTS.md > Path Convention for details.


Quick Disambiguation

User says...They probably mean...Route
"track my training" / "log metrics"Write tracking codeSDK_QUICKSTART.md
"log images/audio/text"Log media dataSDK_QUICKSTART.md
"my loss curve" / "experiment metrics"Query scalar dataCLI_REFERENCE.md > run metrics
"filter experiments"Query by conditionsCLI_REFERENCE.md > run filter
"my experiments" / "list runs"List experimentsCLI_REFERENCE.md > run list
"compare runs visually"Cross-experiment chartscripts/runs_benchmark.py
"plot metric chart"Single-experiment chartscripts/plot_metrics.py
"experiment config"HyperparametersCLI_REFERENCE.md > run info
"console output"Captured logsCLI_REFERENCE.md > run logs
"what metrics are tracked"Metric keysCLI_REFERENCE.md > run series
"check connectivity" / "can I reach swanlab"Environment checkswanlab ping
"check login status" / "am I logged in"Verify credentialsswanlab verify
"project not found" / a query returns 404Wrong host (most likely)CLI_REFERENCE.md > Troubleshooting
run fields / run list or run info responseRun object schemaSWANLAB_CONCEPTS.md > Run Object Schema
"analyze this project/run" / "experiment report"Analysis pipelineANALYSIS_GUIDE.md

Environment Connectivity

Before writing tracking code or running CLI queries, especially in online mode, run these two checks to confirm the environment is ready:

1. swanlab ping — Test network reachability

The fastest way to diagnose connectivity issues. Run it first when a user reports upload failures, login problems, or unknown mode fallbacks.

swanlab ping
# Reports: API host, web host, latency, and login status.
# If ping fails, check SWANLAB_API_HOST / network proxy / firewall settings.
2. swanlab verify — Validate login credentials

After confirming the server is reachable, use swanlab verify to check that stored credentials are valid and have not expired. This reads the API key and host from the local .netrc file (created by swanlab login).

swanlab verify
# Validates stored API key against the server.
# Reports: which host (default https://swanlab.cn) and the logged-in username.
# Fails if: not logged in, API key is invalid, or key has expired.

swanlab verify --local
# Check local login status (.swanlab in current directory) instead of the global one.

Recommended pre-flight sequence:

  1. swanlab ping → confirm the server is reachable
  2. swanlab verify → confirm credentials are valid, and note which host you are logged into
  3. Confirm the target project lives on that host. SwanLab has multiple independent instances (public swanlab.cn + self-hosted deployments) and credentials are per-instance — see SWANLAB_CONCEPTS.md > Instances, Hosts & Credentials. If the project is on another instance, pass --host / --api-key on every command (or export SWANLAB_API_HOST / SWANLAB_API_KEY). A 404 Not_Found from project info / run list means wrong host, not a missing project — see CLI_REFERENCE.md > Troubleshooting.
  4. Proceed with swanlab api queries or SDK code

Behavioral Constraints

See CLI_REFERENCE.md > Behavioral Constraints for the full list. Key rules:

  • Use --all only when the user explicitly asks for it (e.g. "fetch all", "get everything", "complete list"). For paginated list commands, always use default pagination (--page_num / --page_size).
  • Always ask for specific metric keys before running run metrics or run medias. If the user doesn't know the key names, first run run series PATH to discover them (run columns PATH only as a fallback on SDK < 0.9.0).
  • Always persist large metric data to file via --save, then visualize with scripts/plot_metrics.py --data file.json or use run summary for aggregate stats.

Further Reading

This skill covers the most common SwanLab workflows for AI coding agents. For details that are out of scope here (full SDK surface, advanced CLI flags, self-hosted deployment, integrations, etc.), consult the official SwanLab documentation:

Comments

Markdown supported