Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps…

Apache-2.0Auto-check passedBackend & APIs

Install Devbox Jcm Runs

skills CLI
$ npx skills add climate-analytics-lab/jax-gcm --skill devbox-jcm-runs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install climate-analytics-lab/jax-gcm devbox-jcm-runs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/climate-analytics-lab/jax-gcm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/devbox-jcm-runs .claude/skills/devbox-jcm-runs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
devbox-jcm-runs
GitHub stars
108
Token cost
~1.7k tokens
SKILL.md length
795 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps…

  • Any local jcm run
  • SKILL.md covers The defining difference from…, Finding a free GPU, Abandoned processes pin cards… and Etiquette on a shared box, plus 4 more sections
  • Calls python and git
  • Long integration on this machine

What it does

Devbox Jcm Runs is an agent skill from climate-analytics-lab/jax-gcm. Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps specific to an unscheduled multi-tenant box. Use for any local jcm run, benchmark or long integration on this machine.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Multi-tenancy. The repository describes itself as: GCM Physics written in JAX. The licence is Apache-2.0.

When your agent uses it

  • Any local jcm run
  • Long integration on this machine

Example prompts

  • “/devbox-jcm-runs”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 20ca89d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Devbox Jcm Runs loads about 1.7k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 795 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from climate-analytics-lab/jax-gcm at commit 20ca89d, republished under its Apache-2.0 licence (© climate-analytics-lab). 795 words, ~1,687 tokens.

Download SKILL.mdSave it as .claude/skills/devbox-jcm-runs/SKILL.md (or your agent's skills folder).
name
devbox-jcm-runs
description
Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps specific to an unscheduled multi-tenant box. Use for any local jcm run, benchmark or long integration on this machine.

Running jcm on the shared dev workstation

Site layer for sn4622116170: 8x NVIDIA A100 80GB PCIe, no batch scheduler. Read jcm-run for the model/Hydra layer and jcm-benchmark for throughput methodology — this file only covers what is specific to this machine. (The Derecho equivalent is derecho-jcm-runs; the contrast matters, see below.)

For benchmarks, prefer kubernetes-jcm-runs. Exclusivity is the whole problem here — a neighbour landing on your card mid-run corrupts the timing silently — and a cluster pod gets it by construction. Use this box when you want a card immediately, are iterating interactively, or need the local scratch and boundary data.

The defining difference from Derecho: nothing allocates GPUs for you

On Derecho, PBS hands you exclusive GPUs and queueing is the scheduler's problem. Here you self-allocate, several colleagues run directly on the same box at the same time, and nothing stops two people picking the same card. Everything below follows from that.

Always run on a free card. For benchmarks this is absolute — a contended card does not fail loudly, it returns a plausible number that is simply wrong.

Finding a free GPU

bash
python tools/gpu_util.py            # every GPU, its memory, and its tenants
python tools/gpu_util.py --free     # free indices; exit 1 if none
python tools/gpu_util.py --wait 3600  # block until one frees, print its index

Do not judge freeness by utilisation. A real reading from this box:

GPU 0  busy   36113/81920 MiB    0%  python(414 MiB) x4, python(34422 MiB)
GPU 3  busy   21854/81920 MiB    0%  python(1318 MiB) ... python(14994 MiB)
GPU 4  FREE       5/81920 MiB    0%

GPUs 0 and 3 both read 0 % utilisation while carrying five or six of someone else's processes and tens of GB. Utilisation is instantaneous; a parked job shows 0 % until it wakes.

Nor by memory alone. A colleague's Jupyter kernel sat on GPU 1 for weeks holding ~1.2 GiB, so the card read 1182 MiB, 0 % — which looks like idle driver overhead. It was judged free and a 3-hour benchmark was started on top of it. Require no compute apps and < ~2 GiB resident; gpu_util.py enforces exactly that, and tools/benchmark.py refuses to start otherwise.

Note nvidia-smi --query-compute-apps reports GPU uuids, not indices, so the two queries must be joined on uuid — the reason this is a module and not a shell one-liner.

Abandoned processes pin cards — check periodically

bash
python tools/gpu_util.py --stale   # >24 h old and holding <4 GiB

A Jupyter kernel holding 1.2 GiB of an 80 GiB card contributes no compute contention but pins the GPU for anyone whose scheduler — or safety gate — treats "has a tenant" as "busy". At the time of writing that is 6 processes from one user, 24-26 days old, holding 9.4 GiB and pinning 3 of the 8 cards.

Report these to their owner rather than quietly working around them; the whole box benefits. --stale exists so the list is generated rather than hand-maintained, since the specific PIDs change but the pattern does not.

If a card is blocked only by a long-parked kernel and nothing else is free, --allow-busy-gpu is defensible — a dormant tenant does not perturb timings — but it is a judgement call about someone else's process, so ask first, and record it in the report's provenance.

Show full SKILL.md (336 more words)Show less

Etiquette on a shared box

  • Never kill a process you did not start. Other users' jobs are visible (/home/lepeng/..., /data/j2wilke/..., /data/jamadan/...).
  • Never pkill -f <pattern>. The pattern matches your own shell and other people's jobs; it has killed this session's own shell twice. Kill explicit PIDs you have confirmed are yours — e.g. filter on your run's output prefix: ps -eo pid,args | grep "[m]yprefix" | awk '{print $1}'.
  • Long runs: nohup + CUDA_VISIBLE_DEVICES=<idx> so a dropped session does not take the run with it.
  • XLA_PYTHON_CLIENT_PREALLOCATE=false — otherwise one process grabs the whole HBM and locks out everyone including your own second run.
  • Do not raise XLA_PYTHON_CLIENT_MEM_FRACTION here the way the Derecho skill does; that machine gives you the node, this one does not.

Environment

bash
PY=/home/dwatsonparris/micromamba/envs/jcm/bin/python   # NOT on PATH
# or: eval "$(micromamba shell hook --shell bash)" && micromamba activate jcm

jcm, jax-rrtmgp and mam4-jax are editable installs, so the working tree is the running code. Check what you are actually running:

bash
git -C /data/dwatsonparris/jax-rrtmgp rev-parse --abbrev-ref HEAD

To A/B a library version, never git checkout in the shared clone — that silently changes the code under a colleague's running job. Use a worktree and PYTHONPATH:

bash
git -C /data/dwatsonparris/jax-rrtmgp worktree add \
    /data/dwatsonparris/jax-rrtmgp-worktrees/<name> origin/<branch>
PYTHONPATH=/data/dwatsonparris/jax-rrtmgp-worktrees/<name> $PY -m jcm.main ...
# verify it took:
PYTHONPATH=<worktree> $PY -c "import rrtmgp,os; print(os.path.dirname(rrtmgp.__file__))"

Storage

  • Write run outputs, checkpoints and logs to /scr/dwatsonparris/ — fast ephemeral NVMe. /data is near-full and is not the place for netCDF output.
  • Copy finals back to /data when a campaign is done; /scr is scratch.
  • Repo lives at /data/dwatsonparris/jax-gcm, with worktrees under /data/dwatsonparris/jcm-worktrees/.

Boundary data

Terrain, forcing and ozone are packaged in the repo (jcm/data/bc/t63/) and forcing.ozone_file: auto resolves the right one — pass no ozone override. See jcm-run for the full explanation; on a hybrid grid auto raises rather than falling back, so a resolution failure is loud. There is no scratch-purge concern here, unlike Derecho's prepared JAM aux inputs.

Reference points (this machine)

T63L47, ECHAM + RRTMGP, real orography/SSTs, dt=12 min, one A100-80GB, measured with tools/benchmark.py over 30 days:

builds/sim daysim days/hrsim years/day
jax-rrtmgp with the unbounded minor-gas scan72.249.93.3
jax-rrtmgp perf/minor-gas-scan-bound20.5174.611.5

Peak memory 8.6 GiB; ~85 % utilisation at ~223 W of the card's 300 W rating — i.e. not compute-bound. Three independent A/B pairs agreed to within 2.5 % (jax-rrtmgp#22).

© climate-analytics-lab, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/devbox-jcm-runs of climate-analytics-lab/jax-gcm.

Open the folder on GitHubat commit 20ca89d

Compare with similar skills

Devbox Jcm Runs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Devbox Jcm Runs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Devbox Jcm Runs this skillclimate-analytics-lab/jax-gcm108—~1.7kAutomated safety check: PassApache-2.0
PR Review Provideryansongda/pay5.4k—~2.4kAutomated safety check: PassMIT
Abp Authorizationabpframework/abp14k—~1.3kAutomated safety check: PassLGPL-3.0
Django Access Reviewgetsentry/skills1k3 repos~2.6kAutomated safety check: NotesApache-2.0
Backend Dev Guidelineslitefuse/litefuse1001 repos~5.8kAutomated safety check: PassCustom licence
Ecto Persistence Patternsgeorgeguimaraes/elixir-agent-tools184—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • PR Review Provider

    yansongda/pay

    A skill your agent uses when reviewing PRs that add or modify a payment Provider in yansongda/pay - covers plugin pipeline, multi-tenant safety, signature verification, docs, and naming conventions.

    5.4k GitHub stars~2.4k tokensUpdated 9 days ago
    Backend & APIsAuto-check passed
  • Abp Authorization

    abpframework/abp

    ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.

    14k GitHub stars~1.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Django Access Review

    getsentry/skills

    Official

    Django access control and IDOR security review. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 3 repos~2.6k tokens
    Backend & APIsAuto-check: notes
  • Backend Dev Guidelines

    litefuse/litefuse

    Comprehensive backend development guide for Litefuse's Next.js 14/tRPC/Express/TypeScript monorepo.

    100 GitHub starsUsed in 1 repo~5.8k tokens
    Backend & APIsAuto-check passed
  • Ecto Persistence Patterns

    georgeguimaraes/elixir-agent-tools

    Designs and debugs Elixir persistence with Ecto: schemas, changesets, queries, preloads, migrations and multi-tenancy, kept within application contexts.

    184 GitHub stars~1.2k tokensUpdated 18 days ago
    Backend & APIsAuto-check passed
  • Rails Security Multitenancy

    marckohlbrugge/37signals-skills

    Apply Rails security and multi-tenant safety practices including scoped queries, SSRF defenses, rate limiting, and tenant-scoped realtime updates.

    724 GitHub stars~1.7k tokensUpdated 4 mo ago
    Backend & APIsAuto-check passed

More from climate-analytics-lab/jax-gcm

  • Derecho Jcm Runs

    climate-analytics-lab/jax-gcm

    Submit, monitor and benchmark jax-gcm (jcm) simulations on NCAR Derecho's PBS queues.

    108 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Kubernetes Jcm Runs

    climate-analytics-lab/jax-gcm

    Run jcm on a Kubernetes GPU cluster — generate benchmark and production Job manifests, pick a comparable GPU, survive eviction, collect results.

    108 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Jcm Benchmark

    climate-analytics-lab/jax-gcm

    Measure jcm throughput reproducibly — short (1 month) or long (12 month) runs on a validated stable config, with GPU memory/utilisation logging and an explicit convergence criterion.

    108 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Jcm Dev Workflow

    climate-analytics-lab/jax-gcm

    End-to-end development workflow for jcm — atomic commits, the local test/lint gate, opening a PR linked to its issue, monitoring CI and the automatic Codex review, addressing feedback, and handing…

    108 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Jcm Local CI

    climate-analytics-lab/jax-gcm

    Run the jax-gcm CI gates locally on Derecho when GitHub Actions minutes are exhausted or a pre-push check is wanted — lint, fast tests (90% coverage), slow tests (80% PR coverage) and a local Claude…

    108 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Jcm Run

    climate-analytics-lab/jax-gcm

    Launch a jcm model run through the built-in Hydra configs — config groups, the validated stable T63L47 overrides, Hydra override traps, and watching for startup failures.

    108 GitHub stars~2.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Devbox Jcm Runs

What does Devbox Jcm Runs do?

Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps…. Devbox Jcm Runs is an agent skill from climate-analytics-lab/jax-gcm. Run jcm on the shared UCSD dev workstation (8x A100-80GB, no scheduler) — find a genuinely free GPU, avoid stomping on colleagues' jobs, environment and scratch paths, and the etiquette/traps specific to an unscheduled multi-tenant box.

When should I use Devbox Jcm Runs?

Devbox Jcm Runs fits situations like: any local jcm run; long integration on this machine.

How do I install Devbox Jcm Runs in Claude Code?

Run `npx skills add climate-analytics-lab/jax-gcm --skill devbox-jcm-runs -a claude-code`. Or copy the skill folder (.claude/skills/devbox-jcm-runs in climate-analytics-lab/jax-gcm) into .claude/skills/devbox-jcm-runs in your project. Claude Code loads it when a task matches its description.

How do I install Devbox Jcm Runs in Codex?

Run `npx skills add climate-analytics-lab/jax-gcm --skill devbox-jcm-runs -a codex`. Or copy the skill folder (.claude/skills/devbox-jcm-runs in climate-analytics-lab/jax-gcm) into .agents/skills/devbox-jcm-runs in your project. Codex loads it when a task matches its description.

Can I use Devbox Jcm Runs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add climate-analytics-lab/jax-gcm --skill devbox-jcm-runs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/devbox-jcm-runs, .gemini/skills/devbox-jcm-runs, .github/skills/devbox-jcm-runs and .opencode/skills/devbox-jcm-runs in your project.

What does Devbox Jcm Runs need to run?

Going by SKILL.md and its folder, Devbox Jcm Runs needs the command-line tools its instructions call (python and git). Our summary lists: Python 3.

Does Devbox Jcm Runs access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Devbox Jcm Runs safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Devbox Jcm Runs use?

Devbox Jcm Runs is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Devbox Jcm Runs use?

About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Devbox Jcm Runs?

Skills that share tags, products or a category with Devbox Jcm Runs: PR Review Provider (yansongda/pay, 5.4k stars), Abp Authorization (abpframework/abp, 14k stars), Django Access Review (getsentry/skills, 1k stars) and Backend Dev Guidelines (litefuse/litefuse, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Devbox Jcm Runs?

climate-analytics-lab (a GitHub organization) maintains it in climate-analytics-lab/jax-gcm, which has 108 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: climate-analytics-lab/jax-gcm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.