kermt-monitor
Check progress for a detached KERMT run (pretrain, finetune, or any kermt_run_detached invocation). Reads run.json, queries docker for container state, tails the pretrain/finetune log, and parses progress lines (epoch, step, val loss).
Install / Use
npx skills add NVIDIA/skills --skill bionemo-kermt-monitorInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
OperationsSupported Platforms
Our assessment of kermt-monitor
kermt-monitor scores 90/100 on our quality scale, 182nd of 487 Operations skills we index (top 38%).
Its SKILL.md is 6.9 KB long, well organised into 9 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
With 3,421 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 5 days ago, so kermt-monitor is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
kermt-monitor compared with similar skills
All 4 of these similar skills score higher than kermt-monitor; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| kermt-monitor (this skill)by NVIDIA | 90 | 3.4k | 5d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 7d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 7d ago | SKILL.md |
Frequently asked questions
- How do I install kermt-monitor?
- Run
npx skills add NVIDIA/skills --skill kermt-monitor. The install tabs above show the steps for each supported agent. - Which AI agents does kermt-monitor work with?
- It is written for Claude Code and OpenAI Codex, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is kermt-monitor safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is kermt-monitor still maintained?
- The repository was last updated 5 days ago, so kermt-monitor is actively maintained.
Skill content
View source on GitHubname: kermt-monitor description: Check progress for a detached KERMT run (pretrain, finetune, or any kermt_run_detached invocation). Reads run.json, queries docker for container state, tails the pretrain/finetune log, and parses progress lines (epoch, step, val loss). license: Apache-2.0 compatibility: Requires docker and jq. Designed for Claude Code, Codex, and Nemotron. metadata: owner: evax@nvidia.com classification: atomic-skill risk_tier: skill
Line/token budget: this file is targeted at ~120 lines / ~1500 tokens — well
within the 500-line / 5000-token cap for skill files.
kermt-monitor
Companion skill for any KERMT workflow that runs detached: the three pretrain
skills (kermt-continue-pretrain, kermt-pretrain-scratch,
kermt-add-cmim-pretrain) plus kermt-finetune. kermt-infer and
kermt-embed run blocking by default and don't need this skill, but if a
user launches them detached on purpose the monitor still works (the
workflow-dispatch in step 4 handles unknown workflows by tailing the
most-recent log file in the run dir). Reads the run directory's run.json,
queries docker for the container's state, surfaces the latest progress,
and either tails or follows the log.
Hardware requirements
None. This skill only reads disk + queries docker; no GPU compute.
Inputs
One of:
<run-dir>— a positional argument pointing at the directory containingrun.json(e.g.runs/continue-pretrain_2026-05-17T10-23Z). Preferred.--container <name-or-id>— direct container reference; the skill still readsrun.jsonfrom the run dir referenced inside the container's inspect output if available, but works degraded-mode without it.
Optional:
--lines N— number of trailing log lines to print (default 50).--follow— streamdocker logs -funtil ^C. Useful for "watch the loss". Without it, the skill is one-shot and exits.--json— emit a structured status report instead of human-readable text. Useful when the parent agent wants to take downstream action.
Workflow
Let RUN_DIR=$1 (or whatever path the user supplies).
-
Locate the manifest.
MANIFEST=$RUN_DIR/run.jsonRefuse to proceed if it doesn't exist; surface a helpful message pointing the user at the run-dir convention (
runs/<workflow>_<ts>/). -
Parse the manifest (Python helper):
workflow=$(jq -r .workflow $MANIFEST) container_name=... # not directly in run.json today; the skill that # launched stored it in run.json under # container.name during launch (see below note). logs_dir=$(jq -r .logs_dir $MANIFEST) image_tag=$(jq -r .container.image_tag $MANIFEST) started_at=$(jq -r .started_at $MANIFEST) -
Query docker for container state.
docker ps --filter "name=$container_name" --format \ '{{.ID}}\t{{.Status}}\t{{.CreatedAt}}'If absent, fall back to
docker inspect $container_name --format '{{.State.Status}} (exit {{.State.ExitCode}})'to see whether the container exited (ok or failed) or was removed (--rmafter exit). -
Find the live log file.
case "$workflow" in continue-pretrain|pretrain-scratch) LOG=$logs_dir/pretrain_ddp.log ;; finetune) LOG=$logs_dir/finetune.log ;; *) LOG=$(ls -1t $logs_dir/*.log 2>/dev/null | head -n 1) ;; esacThe manifest's
workflowfield disambiguates pretrain (pretrain_ddp.log) from finetune (finetune.log). Other workflows fall back to the most-recently-modified.login$logs_dir. -
Show the latest progress.
tail -n $LINES $LOGfor the raw recent output.- Parse the last few progress lines and surface a human-friendly
summary. The format differs per workflow:
- Pretrain: epoch / step / val_loss
Current epoch: 12/100 step: 4523/9000 val_loss: 0.832 (best 0.821 @ step 4100) - Finetune: fold / epoch / val_<metric> (e.g. val_mae for regression,
val_auc for classification — read
args_applied.metricfrom run.json)Fold 0 epoch 12/30 val_mae 0.187 (best 0.182 @ epoch 9)
Wall-clock: 1h 23m since started_at; ETA ~6h remaining. - Pretrain: epoch / step / val_loss
-
Final test-metrics block (finetune, on completion). If
workflowisfinetuneAND the container has exited cleanly (State.Status=exited,ExitCode=0) AND$RUN_DIR/ckpt/fold_*/test_result.csvexists, parse it and emit a per-task metric table:Final test metrics (per task): Target MAE HLM_clearance 0.187 RLM_clearance 0.213 MDR1-MDCK_efflux 0.241 solubility_pH6.8 0.156The metric column matches
args_applied.metric(mae for regression, auc for classification, etc.). For multi-fold or ensemble runs, average across folds/models and note± stdif std > 0. Skip silently if notest_result.csvexists (run incomplete or no test split was emitted). -
If
--follow, stream live logs.docker logs -f $container_nameWraps until ^C.
-
Stop / cleanup hints (printed at end of one-shot mode):
To stop: docker stop $container_name To remove: docker rm $container_name To re-run: `$(jq -r .cmd_replay $MANIFEST)`
Hard rules
- Read-only on the user's data. Never modify
run.json, never touch the container's checkpoint dir. The monitor only inspects. - Don't kill the container without explicit user instruction. If the
user asks to stop, run
docker stop; if they ask to abandon, leave it running and just exit. - Don't pull or modify the kermt image. The monitor only reads.
- JSON output mode is non-interactive. Skip the "press ^C to exit" prompts and emit a single JSON document so the parent agent can pipe it.
Note on container_name plumbing
The run.json schema as currently written does not yet include the launched
container name — kermt_run_detached prints it to stdout but the runner
script doesn't capture it into run.json. The monitor falls back to a
filesystem-based lookup: list runs/<workflow>_*/ directories and match by
mtime; or accept --container <name> explicitly. Follow-up: have the
launching skill record container name into run.json before exiting.
Output (text mode, default)
KERMT continue-pretrain · runs/continue-pretrain_2026-05-17T10-23Z
Container : kermt-continue-pretrain-… (Up 1 hour, status: running)
Image : kermt:latest@sha256:…
Repo : 2fe00f9 (clean)
Started : 2026-05-17T10:23:14Z (1h 23m ago)
Workflow : continue-pretrain, pretrain_mode=hybrid, world_size=2
Latest log (last 50 lines from $LOG):
[Epoch 12/100] step 4523/9000 loss 0.832 lr 1.2e-4
[val] step 4100 val_loss 0.821 (new best)
...
Progress: epoch 12/100, ~12% done. ETA ~6h.
TensorBoard: tensorboard --logdir $RUN_DIR/logs/tb
Replay command: $(jq -r .cmd_replay $RUN_DIR/run.json)
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
