بنقرة واحدة
bip-scout
Check remote server CPU, memory, and GPU availability via SSH
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Check remote server CPU, memory, and GPU availability via SSH
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Cold-start into a worktree/clone from a fresh conversation — read the PR, issue, and any status files, figure out where things stand, then STOP and ask the user what to do next. Use for a fresh conversation dropped into a bip-spawn or bip-epic-spawn worktree/clone that already has history (a PR, an in-progress phase, or a stalled worker).
Quick poll of tracked EPICs and code repos for new manuscript-relevant results
Persist manuscript session state before context reset
Cold-start for a manuscript session — the paper is the source of truth and shared context; discuss results, orchestrate research through issues/PRs, and update the paper as threads complete
Spawn a Claude session in a clone for an EPIC issue
Worker self-spawns a follow-up issue and hands off to a new slot
| name | bip-scout |
| description | Check remote server CPU, memory, and GPU availability via SSH |
Check remote server availability and resource usage. Runs bip scout to collect metrics, presents a human-readable summary, and answers follow-up questions by reasoning over the data.
/bip-scout [question]
Arguments:
[question] — Optional natural-language question (e.g., "which server has free GPUs?", "where should I run a training job?")If no question is given, show a full summary of all servers.
Run bip scout to get JSON output:
bip scout
If the command fails, check for common issues:
servers.yml: "No servers.yml found — see bip scout --help for config location."~/.ssh/config.The JSON output has this structure:
{
"servers": [
{
"name": "servername",
"status": "online",
"metrics": {
"cpu_percent": 45.2,
"memory_percent": 62.1,
"load_avg_1min": 2.3,
"load_avg_5min": 1.8,
"load_avg_15min": 1.5,
"gpus": [
{
"utilization_percent": 85,
"memory_used_mb": 30720,
"memory_total_mb": 49152
}
],
"top_users": [
{"user": "alice", "cpu_percent": 45.2},
{"user": "bob", "cpu_percent": 12.1}
]
}
},
{
"name": "deadserver",
"status": "offline",
"error": "connection timed out"
}
]
}
If no question was asked, present a summary table showing:
If a question was asked, reason over the JSON data to answer it. Common question types:
| Question Type | How to Answer |
|---|---|
| "Which server has free GPUs?" | Find online servers where GPU utilization < 50% and GPU memory has headroom |
| "Where should I run a training job?" | Find servers with lowest GPU utilization and most free GPU memory |
| "Is server X available?" | Check that specific server's status and metrics |
| "What's the GPU memory on Y?" | Report per-GPU memory used/total for that server |
| "Which servers are idle?" | Find servers with CPU < 20% and memory < 50% |
| "Who is using server X?" | Report top_users with their CPU percentages |
Formatting guidelines:
After presenting results, briefly note that the user can ask follow-up questions like:
Once you've picked a host, two rules keep remote runs from silently breaking or clobbering a neighbor:
REMOTE_DIR
explicitly on every make remote-sync/remote-run/remote-tmux call (or ssh to
an explicit path). The config-derived default (~/.config/dasm2/config.yaml) is the
same directory for every clone/worktree on the box, so concurrent runs overwrite
each other's checkout — the rule bip-epic-spawn states for EPIC slots applies to
any remote run, not just EPIC workers. Don't trust that default to be non-empty
either: the Makefile resolves it with a bare python3 that may lack the project's
deps and silently return "" (cd → "not a git repository").make remote-tmux (its tmux window is a login
shell) or ssh <host> 'bash -lc "…"' — not a bare
ssh <host> "source .venv/bin/activate && …". A non-login shell skips lmod module
init, so a venv Python built against a module-provided libpython dies with
libpython3.XX.so.1.0: cannot open shared object file. In a long ssh command
string cd is easy to drop — prefer absolute paths (e.g. the full
.venv/bin/activate path).go build -o bip ./cmd/biphas_gpu: true