nemo-rl-brev-etiquette — Claude Code skill: Brev instance etiquette
A skill that tells the agent where files belong on a Brev box: code stays in the repo, heavy run output goes to /ephemeral.
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a claude-codeWhat nemo-rl-brev-etiquette does
This skill sets operating rules for NeMo-RL agents on a Brev instance. Source edits and small config changes stay in /home/ubuntu/RL, while everything a run produces — checkpoints, logs, Ray temp directories, offline W&B files, profiler traces, evaluation dumps — lands under /ephemeral. The checkout stays small and easy to inspect.
What's inside is a set of storage rules plus ready-made shell snippets. Before a campaign the skill has the agent check capacity with df -h /home/ubuntu/RL /ephemeral and skip the launch if /ephemeral is missing or nearly full. Caches for Hugging Face, PyTorch, Triton, uv and pip live in one shared root per user instead of scattering across experiments, and variables such as HF_HOME, TORCH_HOME, RAY_TMPDIR, TMPDIR and WANDB_DIR get pointed at the experiment directory.
Secrets sit in /home/ubuntu/RL/.env, which may hold WANDB_API_KEY, HF_TOKEN or HUGGING_FACE_HUB_TOKEN. The skill loads that file before any authenticated run and forbids printing or logging key values. If the file is missing or a key stays unset after loading, the agent is told to remind you to add it — authenticated jobs won't start without it. Cleanup is scoped to the current campaign only; shared caches and another user's run directory are off limits.
What it helps with
- keep checkpoints and logs on
/ephemeralinstead of the git checkout - check free space before a long training run
- consolidate Hugging Face, PyTorch and pip caches under one root
- load
WANDB_API_KEYandHF_TOKENfrom.envbefore launching - clean up after an experiment without touching shared caches
Example prompts for the agent
- check disk space and set up a campaign root on
/ephemeralbefore starting nemo-rl-auto-research - load
/home/ubuntu/RL/.envand launch training with logs going to$EXP_DIR/logs/run.log - move checkpoints and offline W&B files to
/ephemeral, keep only reproducibility records in the repo
How to install nemo-rl-brev-etiquette
1Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a claude-code2Manually: put the files in place
~/.claude/skills/nemo-rl-brev-etiquette/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/nemo-rl-brev-etiquette/
1Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a codex2Manually: put the files in place
.agents/skills/nemo-rl-brev-etiquette/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a cursor2Manually: put the files in place
.cursor/skills/nemo-rl-brev-etiquette/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install NVIDIA/skills nemo-rl-brev-etiquette2Manually: put the files in place
.github/skills/nemo-rl-brev-etiquette/SKILL.md1Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a gemini-cli2Platform CLI
gemini skills install https://github.com/NVIDIA/skills --path skills/nemo-rl-brev-etiquetteManually: put the files in place
.devin/skills/nemo-rl-brev-etiquette/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about nemo-rl-brev-etiquette
How do I install nemo-rl-brev-etiquette in Claude?
Run npx skills add NVIDIA/skills --skill nemo-rl-brev-etiquette -a claude-code. The skill lands at ~/.claude/skills/nemo-rl-brev-etiquette/SKILL.md.
What does nemo-rl-brev-etiquette do?
It gives the agent storage and secret-handling rules for a Brev instance: what stays in the repo, what moves to /ephemeral, and how caches are shared.
What does the skill need to work?
A Brev instance with /home/ubuntu/RL and an /ephemeral volume. Runs that need external auth also need /home/ubuntu/RL/.env with the right keys.
Source text
SKILL.md · Apache-2.0
---
name: nemo-rl-brev-etiquette
license: Apache-2.0
description: Brev instance operating guidance for NeMo-RL agents working in /home/ubuntu/RL with limited workspace disk, a larger /ephemeral volume, and optional /home/ubuntu/RL/.env secrets. Use when running nemo-rl-auto-research campaigns, experiments, training jobs, model or dataset downloads, shared cache-heavy commands, log-producing runs, checkpoint generation, W&B or Hugging Face authenticated workflows, or any workflow that may create large files on Brev.
when_to_use: Running on a Brev instance; launching nemo-rl-auto-research campaigns or long jobs; managing large logs, checkpoints, caches, datasets, Ray temp files, W&B files, or Hugging Face auth on Brev.
---
# Brev Etiquette
Operate as though `/home/ubuntu/RL` is the source checkout and `/ephemeral` is the working storage for generated experiment state. Keep the repo small, reproducible, and easy to inspect. Move bulky run outputs to `/ephemeral` before launching anything expensive.
## Storage Rules
- Keep code edits, small config changes, committed experiment hypotheses, and concise reproducibility records under `/home/ubuntu/RL`.
- Put generated experiment assets under `/ephemeral`, including checkpoints, run logs, Ray temp directories, W&B offline files, profiler traces, evaluation dumps, rollout samples, and per-experiment artifacts.
- Keep reusable caches under one shared `/ephemeral` cache root per user, not under each experiment. This includes Hugging Face models, dataset caches, PyTorch caches, Triton caches, `uv` caches, and pip caches.
- Before a campaign or long run, check capacity with `df -h /home/ubuntu/RL /ephemeral` and avoid starting if `/ephemeral` is missing or nearly full.
- Create a campaign root such as `/ephemeral/nemo-rl/${USER:-ubuntu}/nemo-rl-auto-research/<campaign>` and use one subdirectory per experiment.
- Do not leave large files, cache directories, or generated outputs in the git checkout. If a tool defaults to the repo, override its output/cache path before running it.
## Environment Secrets
- Treat `/home/ubuntu/RL/.env` as the local secret store. It may contain keys such as `WANDB_API_KEY`, `HF_TOKEN`, or `HUGGING_FACE_HUB_TOKEN`.
- Before any run that may need external auth, load `/home/ubuntu/RL/.env` when it exists. Never print, `cat`, log, commit, or summarize secret values.
- If `/home/ubuntu/RL/.env` is absent, or a required key is still unset after loading it, remind the user to add the needed key to that file before launching authenticated work.
```bash
if [ -f /home/ubuntu/RL/.env ]; then
set -a
. /home/ubuntu/RL/.env
set +a
else
echo "Missing /home/ubuntu/RL/.env; add required keys such as WANDB_API_KEY or HF_TOKEN before authenticated runs."
fi
```
## Auto-Research Pattern
When using `nemo-rl-auto-research`, keep the git ledger in the repo and heavy evidence on `/ephemeral`.
```bash
if [ -f /home/ubuntu/RL/.env ]; then
set -a
. /home/ubuntu/RL/.env
set +a
fi
BREV_ROOT=/ephemeral/nemo-rl/${USER:-ubuntu}
CACHE_ROOT=$BREV_ROOT/cache
CAMPAIGN_ROOT=$BREV_ROOT/nemo-rl-auto-research/<campaign>
EXP_DIR=$CAMPAIGN_ROOT/<experiment>
mkdir -p "$EXP_DIR"/{logs,checkpoints,artifacts,ray,tmp,wandb}
mkdir -p "$CACHE_ROOT"/{huggingface,torch,triton,uv,pip,xdg,wandb}
export HF_HOME=$CACHE_ROOT/huggingface
export HF_HUB_CACHE=$HF_HOME/hub
export HF_DATASETS_CACHE=$HF_HOME/datasets
export TRANSFORMERS_CACHE=$HF_HOME/transformers
export TORCH_HOME=$CACHE_ROOT/torch
export TRITON_CACHE_DIR=$CACHE_ROOT/triton
export UV_CACHE_DIR=$CACHE_ROOT/uv
export PIP_CACHE_DIR=$CACHE_ROOT/pip
export XDG_CACHE_HOME=$CACHE_ROOT/xdg
export WANDB_CACHE_DIR=$CACHE_ROOT/wandb
export RAY_TMPDIR=$EXP_DIR/ray
export TMPDIR=$EXP_DIR/tmp
export WANDB_DIR=$EXP_DIR/wandb
```
Record the absolute `/ephemeral` paths in the nemo-rl-auto-research TSV fields for log path, checkpoint path, artifacts, shared cache root, and command. If the TSV itself may grow large, store the full TSV in `/ephemeral` and keep a small pointer file or summary in the repo.
## Launch Checklist
- Inspect disk first: `df -h /home/ubuntu/RL /ephemeral`.
- Choose a unique `/ephemeral` run root before editing recipes or launching jobs.
- Reuse a shared cache root such as `/ephemeral/nemo-rl/${USER:-ubuntu}/cache` across experiments unless a run explicitly requires a clean cache.
- Override recipe output paths, logger paths, checkpoint paths, and temp paths to point under the experiment directory.
- Override cache paths to point under the shared cache root.
- Stream stdout/stderr to `$EXP_DIR/logs/run.log` or an equivalent file under `/ephemeral`.
- Periodically check disk during long runs with `df -h /ephemeral` and stop gracefully if the volume is approaching exhaustion.
- At the end, summarize the important metrics and paths in the repo ledger; do not copy bulky artifacts back into `/home/ubuntu/RL`.
## Cleanup
- Clean only files that belong to the current campaign or experiment.
- Prefer pruning clearly named experiment directories under `/ephemeral/nemo-rl/...`; never remove shared caches or another user's run directory without an explicit instruction.
- Preserve enough small metadata in the repo to reproduce a result after `/ephemeral` is cleaned.
© NVIDIA · Apache-2.0 · NVIDIA/skills