Skip to content
Back to skills

Remote Compute

DSecurity

Run research, replication, or benchmark code somewhere other than the bare host — a Docker sandbox, Modal serverless GPUs, or a persistent RunPod GPU pod. Use when the user picks an isolated/remote execution environment, or asks to run untrusted or GPU-heavy code safely.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
developmentpythonrustshellbashnodedockerdebugginggitapibackend

Works with

  • cli
  • api

Security analysis

D42/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalAccesses sensitive system or user directories
  • criticalReads or references SSH private keys
  • criticalDownloads and executes remote scripts — classic supply chain attack
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 17, 2026

npx -y skills add 8-Sync-Dev/8sync --skill remote-compute --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Remote Compute?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Remote Compute
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/8-sync-dev-remote-compute/badge)](https://www.skillsdirectory.com/skills/8-sync-dev-remote-compute)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: remote-compute
description: Run research, replication, or benchmark code somewhere other than the bare host — a Docker sandbox, Modal serverless GPUs, or a persistent RunPod GPU pod. Use when the user picks an isolated/remote execution environment, or asks to run untrusted or GPU-heavy code safely.
allowed-tools: Bash(docker:*), Bash(modal:*), Bash(runpodctl:*)
---

# Remote Compute

Ported from `companion-inc/feynman`'s `docker`, `modal-compute`, and `runpod-compute` skills (generic CLI usage — no feynman dependency). One skill, three backends: the agent stays on the host, the job runs elsewhere, raw outputs come back into the artifact folder.

## Pick a backend

| Need | Backend | Availability check |
| --- | --- | --- |
| Isolation, untrusted code, reproducible env, no GPU or a local GPU | **Docker** | `command -v docker` |
| Burst GPU, bounded job, no state between runs | **Modal** | `command -v modal` |
| Long run, persistent state, large datasets, SSH between iterations | **RunPod** | `command -v runpodctl` |

Never install packages, start training, or run an experiment before the user has confirmed the environment (`research-paper` asks this explicitly). Tie every remote resource to a named replication/benchmark objective — this skill is not for deploying services, unrelated batch jobs, or provider administration.

---

## Docker sandbox

Mount the project into a container, run the commands inside, results write back through the mount.

Python (most common):

```bash
docker run --rm -v "$(pwd)":/workspace -w /workspace python:3.11 bash -c "
  pip install -r requirements.txt &&
  python train.py
"
```

Project with a Dockerfile:

```bash
docker build -t research-experiment .
docker run --rm -v "$(pwd)/results":/workspace/results research-experiment
```

GPU workloads (requires the NVIDIA Container Toolkit):

```bash
docker run --rm --gpus all -v "$(pwd)":/workspace -w /workspace pytorch/pytorch:latest bash -c "
  pip install -r requirements.txt &&
  python train.py
"
```

### Choosing the base image

| Research type | Base image |
| --- | --- |
| Python ML/DL | `pytorch/pytorch:latest` or `tensorflow/tensorflow:latest-gpu` |
| Python general | `python:3.11` |
| Node.js | `node:20` |
| R / statistics | `rocker/r-ver:4` |
| Julia | `julia:1.10` |
| Multi-language | `ubuntu:24.04` with manual installs |

### Persistent containers

For an iterative loop (e.g. the `research-paper` autoresearch loop), use a named container instead of `--rm` so installed packages survive across iterations:

```bash
docker create --name <name> -v "$(pwd)":/workspace -w /workspace python:3.11 tail -f /dev/null
docker start <name>
docker exec <name> bash -c "pip install -r requirements.txt"
docker exec <name> bash -c "python train.py"
docker stop <name> && docker rm <name>   # clean up
```

Containers are network-enabled by default — add `--network none` for full isolation.

---

## Modal (serverless burst GPU)

No pod lifecycle to manage: write a decorated Python script, run it, save raw outputs back into the artifact folder.

```bash
pip install modal
modal setup
```

| Command | Description |
|---------|-------------|
| `modal run script.py` | Run one experiment script on Modal |
| `modal run --detach script.py` | Run a long experiment and record the returned app/run identifier |
| `modal shell --gpu a100` | Interactive GPU shell for environment debugging |

GPU types: `T4`, `L4`, `A10G`, `L40S`, `A100`, `A100-80GB`, `H100`, `H200`, `B200`. Multi-GPU: `"H100:4"`.

```python
import modal

app = modal.App("experiment")
image = modal.Image.debian_slim(python_version="3.11").pip_install("torch==2.8.0")

@app.function(gpu="A100", image=image, timeout=600)
def train():
    import torch
    # training code here

@app.local_entrypoint()
def main():
    train.remote()
```

---

## RunPod (persistent GPU pods)

```bash
brew install runpod/runpodctl/runpodctl   # macOS
# or: curl -sSL https://raw.githubusercontent.com/runpod/runpodctl/main/install.sh | bash
runpodctl config --apiKey=YOUR_KEY
```

| Command | Description |
|---------|-------------|
| `runpodctl create pod --gpuType "NVIDIA A100 80GB PCIe" --imageName "runpod/pytorch:2.4.0-py3.11-cuda12.4.1-devel-ubuntu22.04" --name experiment` | Create a pod |
| `runpodctl get pod` | List all pods |
| `runpodctl stop pod <id>` | Stop (preserves volume) |
| `runpodctl start pod <id>` | Resume a stopped pod |
| `runpodctl remove pod <id>` | Terminate and delete |
| `runpodctl gpu list` | List available GPU types and prices |
| `runpodctl send <file>` / `runpodctl receive <code>` | Transfer files to/from pods |

SSH access (pods must expose `22/tcp`; get details from `runpodctl get pod <id>`):

```bash
ssh root@<IP> -p <PORT> -i ~/.ssh/id_ed25519
```

GPU types: `NVIDIA GeForce RTX 4090`, `NVIDIA RTX A6000`, `NVIDIA A40`, `NVIDIA A100 80GB PCIe`, `NVIDIA H100 80GB HBM3`.

**Always stop or remove pods after the experiment** — they bill while running.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.