Coder - Cloud Development Environments
Coder (https://coder.bk.lbl.gov) provides self-hosted, interactive cloud development environments on the Berkelium Kubernetes cluster. Researchers can launch pre-configured browser and desktop IDEs, autonomous AI agents, GPU-accelerated notebooks, graphical Linux desktops, and hardware-virtualized Virtual Machines in seconds—without writing Kubernetes YAML manifests or configuring local drivers.
Key Capabilities
Section titled “Key Capabilities”- 16 Production-Ready Templates: Purpose-built environments for PyTorch/CUDA, multi-agent AI coding, vLLM & Ollama serving, ComfyUI generative media, reactive data science (Marimo/DuckDB/Polars), bioinformatics & cheminformatics, RStudio, Go/Rust/Kubernetes systems engineering, hardware-accelerated Selkies KDE Plasma & XFCE4 Linux GUI desktops, and full KubeVirt Linux VMs.
- Any IDE, Browser or Desktop: Launch VS Code Web (
code-server), JupyterLab, Marimo, RStudio, Selkies KDE Plasma Desktop, or XFCE Desktop directly in your browser, or connect Cursor, local VS Code Remote-SSH, or JetBrains Gateway via the Coder CLI. - On-Demand Enterprise GPUs: Attach 1 to 8 GPUs—including NVIDIA B300 Blackwell, H200, H100 (80GB), A100 (80GB), or A40 (48GB)—with automatic Talos NVIDIA CDI driver binding and shared-memory (
/dev/shm) provisioning. - Persistent Ceph RBD Storage: Your
/home/coderdirectory (or KubeVirt root disk) is backed by a dedicatedceph-rbdPersistentVolumeClaim that survives workspace restarts and image updates. - Built-In Modern CLI Toolchain: Workspaces come pre-equipped with
uv(ultra-fast Python package/tool manager),ripgrep(rg),fd,fzf,jq,gh(GitHub CLI),tmux,btop, andnvtop. - LBNL OneID SSO: Authenticate seamlessly with your institutional Berkeley Lab credentials.
Quick Start
Section titled “Quick Start”1. Sign In to the Coder Portal
Section titled “1. Sign In to the Coder Portal”Visit coder.bk.lbl.gov and sign in with your LBNL OneID credentials.
2. Create a Workspace from a Template
Section titled “2. Create a Workspace from a Template”- Click Templates in the top navigation bar and choose one of the 16 templates below.
- Click Create Workspace, give your workspace a name, and customize its parameters:
- CPU & Memory: Select core count (
1–64cores) and RAM (2–256GiB). - Home Disk Size: Configure persistent
/home/coderstorage (10–1000GiB onceph-rbd). - GPUs (on GPU-enabled templates): Select GPU count (
0–8) and GPU hardware model (NVIDIA A40,A100,H100,H200, orB300). - Git Repository & Dotfiles (optional): Provide a Git URL to automatically clone into
/home/coderon first boot, or a personal dotfiles repository URL.
- CPU & Memory: Select core count (
3. Connect via Browser, SSH, or Local IDE
Section titled “3. Connect via Browser, SSH, or Local IDE”Once your workspace is running, click any of the exposed App buttons on your workspace dashboard (such as VS Code Web, JupyterLab, Marimo, Cursor, OpenClaw UI, or Web Terminal).
To connect from your local terminal or desktop IDE using the Coder CLI:
# 1. Install the Coder CLI (macOS / Linux)curl -fsSL https://coder.bk.lbl.gov/install.sh | sh
# 2. Authenticate with the Berkelium Coder servercoder login https://coder.bk.lbl.gov
# 3. Open an interactive SSH shell into any workspace (including KubeVirt VMs)coder ssh <workspace-name>
# 4. Configure standard ~/.ssh/config entries (`ssh coder.<workspace-name>`) for VS Code / Cursor / rsynccoder config-sshWorkspace Templates Catalog (16 Templates)
Section titled “Workspace Templates Catalog (16 Templates)”1. AI Agents, LLM Inference & Generative Media
Section titled “1. AI Agents, LLM Inference & Generative Media”ai-agents — AI Coding Agents Studio
Section titled “ai-agents — AI Coding Agents Studio”Multi-agent coding suite running on codercom/enterprise-node:ubuntu-20261019 (Node 24 LTS), pre-wired to LBNL CBorg (api.cborg.lbl.gov) or NRP Managed LLMs.
- Exposed Apps:
code-server(:13337), Web App Preview (:3000), Cursor, Web Terminal - Included Tools: Claude Code (
claude), OpenCode (opencode), Aider (aider), Gemini CLI (gemini), OpenAI Codex CLI (codex), Continue.dev,uv,ripgrep,fd,fzf,jq,gh,tmux,btop
openclaw — OpenClaw Agent Workspace
Section titled “openclaw — OpenClaw Agent Workspace”Autonomous AI assistant and gateway running on codercom/enterprise-node:ubuntu-20261019 (Node 24 LTS) with automatic openclaw doctor --fix self-healing and live LLM parameter sync.
- Exposed Apps: OpenClaw Control UI (
:18789),code-server(:13337), Cursor, Web Terminal - Included Tools: OpenClaw (
2026.10.6),uv,gh,ripgrep,fd,jq,tmux, and Berkelium IPv6/NAT64 preload
vllm — vLLM Inference & Playground
Section titled “vllm — vLLM Inference & Playground”High-throughput vLLM OpenAI server (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 1–8 GPUs) with automatic multi-GPU tensor parallelism (--tensor-parallel-size).
- Exposed Apps: vLLM Chat & Throughput Playground (
:7860), vLLM OpenAI API (:8000),code-server(:13337), Cursor - Included Tools: vLLM, Gradio Benchmark Playground,
huggingface-cliwithhf_transfer,nvtop,uv, and presets forQwen2.5-Coder,Gemma-3,DeepSeek-R1,Llama-3.3, or any custom Hugging Face model
ollama-webui — Ollama + Open WebUI
Section titled “ollama-webui — Ollama + Open WebUI”Turnkey personal local LLM and RAG stack (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 0–4 GPUs) that automatically starts ollama serve and pulls your selected starter model into persistent storage (~/.ollama/models).
- Exposed Apps: Open WebUI (
:8080), Ollama API (:11434),code-server(:13337), Cursor - Included Tools: Ollama (
0.40.10), Open WebUI (with persistent vector DB storage in~/.open-webui),uv,nvtop,btop
comfyui — ComfyUI Diffusion Studio
Section titled “comfyui — ComfyUI Diffusion Studio”Node-based generative image, video, and audio diffusion studio (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 1–4 GPUs) with selectable VRAM modes (--normalvram, --highvram, --lowvram) and NVIDIA B300 Blackwell support.
- Exposed Apps: ComfyUI Studio (
:8188), JupyterLab (:8888),code-server(:13337), Cursor - Included Tools: ComfyUI (
0.42.0) + ComfyUI-Manager (persisted in/home/coder/ComfyUI),ffmpeg,git-lfs,huggingface-cli,uv,nvtop
2. GPU Compute, Data Science & Scientific Research
Section titled “2. GPU Compute, Data Science & Scientific Research”cuda — PyTorch / CUDA Deep Learning
Section titled “cuda — PyTorch / CUDA Deep Learning”Flagship GPU deep learning workspace (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 0–8 GPUs) with built-in CUDA 13.0 (cu130, PyTorch 2.14.1+cu130) support for NVIDIA B300 Blackwell GPUs.
- Exposed Apps: JupyterLab (
:8888), TensorBoard (:6006),code-server(:13337), Cursor, Web Terminal - Included Tools: PyTorch (
2.14.1+cu130), CUDA (13.0), TensorBoard,uv,ruff,nvtop,btop,huggingface_hub[cli,hf_transfer], and pre-installed Python/Jupyter VS Code extensions
data-lab — Reactive Data Science & Analytics Lab
Section titled “data-lab — Reactive Data Science & Analytics Lab”Modern analytics studio (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 0–4 GPUs) featuring reactive Python notebooks with LBNL CBorg / NRP AI completion and fast in-process OLAP SQL.
- Exposed Apps: Marimo Reactive Lab (
:2718), JupyterLab (:8888), Streamlit / Gradio Preview (:8501),code-server(:13337), Cursor - Included Tools: Marimo, DuckDB (CLI + Python), Polars, PyArrow, Plotly, Altair, Streamlit, Gradio,
uv,ruff
bio-chem-lab — Bioinformatics & Cheminformatics Lab
Section titled “bio-chem-lab — Bioinformatics & Cheminformatics Lab”Computational biology, structural biology, and molecular modeling environment (harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4, 0–4 GPUs) with optional PyTorch GPU acceleration.
- Exposed Apps: JupyterLab (
:8888),code-server(:13337), Cursor, Web Terminal - Included Tools: Biopython, RDKit, MDAnalysis, py3Dmol, Scanpy, AnnData, Scikit-Learn, Seaborn, Plotly,
uv
rstudio — RStudio Server
Section titled “rstudio — RStudio Server”Statistical computing and bioinformatics workspace (rocker/tidyverse:4.6.1) with persistent /home/coder storage.
- Exposed Apps: RStudio Server (
:8787),code-server(:13337), Cursor, Web Terminal - Included Tools: R (
4.6.1), RStudio Server, Tidyverse,REditorSupport.rVS Code extension,uv,ripgrep,fd,fzf,jq,gh,tmux
3. Virtual Machines, GUI Desktop & Systems Engineering
Section titled “3. Virtual Machines, GUI Desktop & Systems Engineering”kubevirt — KubeVirt Linux Virtual Machine
Section titled “kubevirt — KubeVirt Linux Virtual Machine”Full hardware-virtualized KVM Linux VM (kubevirt.io/v1 VirtualMachine running pinned Ubuntu 24.04 release-20261017 / 22.04 release-20261020 or Debian 13 / 12 20261021-2638) with a dedicated guest kernel, systemd, persistent Ceph RBD root disk, and optional /scratch block disk (20–1000 GiB).
- Exposed Apps: Web Terminal, SSH (
coder ssh),code-server(optional checkbox,:13337), Cursor - Included Tools: Native Docker Engine (
docker+docker compose),qemu-guest-agent,uv,ripgrep,fd,fzf,bat,btop,jq,gh,tmux
selkies — Selkies GPU Desktop (KDE Plasma + EGL)
Section titled “selkies — Selkies GPU Desktop (KDE Plasma + EGL)”High-performance, GPU-accelerated KDE Plasma 6 Linux desktop (harbor.bk.lbl.gov/coder-images/selkies:9b1c10da, 0–4 GPUs) streamed over Selkies with full DRI3/EGL/Vulkan/NVENC hardware acceleration (or automatic Mesa software fallback when 0 GPUs are selected), PipeWire browser audio, and selectable X11 or Wayland (kwin_wayland) session mode.
- Exposed Apps: Selkies KDE Desktop (
:8080),code-server(:13337), Cursor, Web Terminal - Included Tools: KDE Plasma 6, JetBrains PyCharm, VS Code Desktop & VS Code Web (
code-server), Blender, Wine, LibreOffice, GIMP, Inkscape, VLC, OBS Studio, Firefox / Chromium,uv,nvtop, plus optional scientific/engineering packages (ParaView, KiCad, QGIS)
desktop — Linux GUI Desktop (XFCE)
Section titled “desktop — Linux GUI Desktop (XFCE)”Full browser-accessible XFCE4 Linux desktop (codercom/enterprise-base:ubuntu-20261019, 0–4 GPUs) streamed over TigerVNC + HTML5 noVNC with automatic window resizing.
- Exposed Apps: Linux Desktop (
:6080noVNC),code-server(:13337), Cursor, Web Terminal - Included Tools: Selectable GUI bundles — Minimal (XFCE4, Firefox, GIMP, VLC), Scientific (+ Blender, ParaView, Inkscape), or Engineering (+ KiCad, QGIS, Wireshark)
cloud-native — Cloud-Native & Systems (Go + Rust)
Section titled “cloud-native — Cloud-Native & Systems (Go + Rust)”Systems and Kubernetes engineering suite (codercom/enterprise-golang:ubuntu-20261019) with persistent /home/coder/go and /home/coder/.cargo toolchains.
- Exposed Apps:
code-server(:13337), Cursor, Web Terminal - Included Tools: Go (
1.27.3,gopls,dlv), Rust (1.99.1,rustup,cargo,rust-analyzer,clippy),kubectl,helm,k9s,talosctl,uv,gh,ripgrep,fd,fzf,jq,tmux,btop
golang — Go (Golang) Workspace
Section titled “golang — Go (Golang) Workspace”Streamlined Go development environment (codercom/enterprise-golang:ubuntu-20261019) with persistent GOPATH=/home/coder/go.
- Exposed Apps:
code-server(:13337), Cursor, Web Terminal - Included Tools: Go (
1.27.3),gopls, Delve (dlv),golang.goVS Code extension,kubectl,helm,uv,ripgrep,fd,fzf,jq,gh,tmux
nodejs — Node.js 24 LTS & TypeScript
Section titled “nodejs — Node.js 24 LTS & TypeScript”Full-stack JavaScript/TypeScript studio (codercom/enterprise-node:ubuntu-20261019, Node 24 LTS) with Berkelium IPv6/NAT64 fetch() preload and persistent ~/.local global prefix.
- Exposed Apps:
code-server(:13337), Web App Preview (:3000), Cursor, Web Terminal - Included Tools: Node.js 24 LTS (
24.22.1), pnpm, yarn, Bun,tsx,typescript,@antfu/ni, and ESLint/Prettier/Tailwind/Astro VS Code extensions
universal — Universal Multi-Language
Section titled “universal — Universal Multi-Language”Polyglot Ubuntu workspace (mcr.microsoft.com/devcontainers/universal:6.1.10-noble) for general-purpose development and coursework.
- Exposed Apps:
code-server(:13337), Cursor, Web Terminal - Included Tools: Python, Node.js, Go, Java, .NET, PHP, Ruby, C/C++,
uv,ripgrep,fd,fzf,jq,gh,tmux,btop
Working with Specific Templates
Section titled “Working with Specific Templates”Using the KubeVirt Linux VM Template (kubevirt)
Section titled “Using the KubeVirt Linux VM Template (kubevirt)”Unlike container-based templates, the kubevirt template provisions a true hardware-virtualized KubeVirt VirtualMachine with its own Linux kernel, systemd init system, and native rootless-ready Docker daemon (docker and docker compose).
- Choose Your Guest OS: Select Ubuntu 24.04 LTS (Noble), Ubuntu 22.04 LTS (Jammy), Debian 13 (Trixie), or Debian 12 (Bookworm) when creating the workspace.
- First Boot Provisioning (~1–2 minutes):
- CDI clones the official cloud image onto your persistent
ceph-rbdroot disk (20–500GiB). cloud-initconfigures Berkelium’s dual-stack + NAT64 networking, formats and mounts/scratch(if requested), installs Docker Engine and modern CLI tools (ripgrep,fd,fzf,bat,btop,jq,gh,tmux,uv), and starts the Coder agent inside the guest VM.
- CDI clones the official cloud image onto your persistent
- Connecting Inside the VM:
- Browser: Click Terminal on the workspace page in
https://coder.bk.lbl.gov(or check Install VS Code Web (code-server) in the workspace parameters for browser IDE access on:13337). - Local Terminal (
coder ssh):Terminal window coder ssh <vm-workspace-name> - VS Code / Cursor Remote-SSH:
Terminal window coder config-sshssh coder.<vm-workspace-name>
- Browser: Click Terminal on the workspace page in
- Verifying Your VM Environment:
Once inside the shell, you can confirm you are running inside a full KVM hardware-virtualized guest with its own kernel and Docker daemon:
Terminal window # Verify KVM hardware virtualization (prints "kvm")systemd-detect-virt# Inspect dedicated guest kernel and block devices (/dev/vda root disk, /dev/vdb /scratch)uname -alsblk# Run Docker containers directly inside your VMdocker run --rm hello-world
(For deploying standalone KubeVirt VMs via kubectl and virtctl outside of Coder, see the Virtual Machines (KubeVirt) Guide.)
AI Coding Agents & Institutional LLM Endpoints
Section titled “AI Coding Agents & Institutional LLM Endpoints”The ai-agents, openclaw, and data-lab templates include a built-in LLM Provider selector that automatically configures your terminal agents and IDE extensions to use Berkeley Lab and NRP LLM gateways:
- LBNL CBorg (
https://api.cborg.lbl.gov/v1) (Default) — Berkeley Lab’s institutional AI gateway (https://cborg.lbl.gov) providing access to frontier and open-weights models. - NRP Managed LLMs (
https://ellm.nrp-nautilus.io/v1) — National Research Platform open-weights LLM service. - Custom OpenAI-Compatible Endpoint — Point to any custom URL (including your own
vllmorollama-webuiworkspace!).
In the ai-agents template, all major terminal and IDE agents are pre-configured out of the box:
# Launch Claude Code (pre-wired via ~/.claude/settings.json)claude
# Launch OpenCode TUI agent (pre-wired via ~/.config/opencode/opencode.json)opencode
# Launch Aider pair programmer in any Git repositoryaider
# Or use Gemini CLI / OpenAI Codex CLIgeminicodexGPU Acceleration & NVIDIA Blackwell B300 Support
Section titled “GPU Acceleration & NVIDIA Blackwell B300 Support”All GPU-capable templates (cuda, vllm, ollama-webui, comfyui, data-lab, bio-chem-lab, selkies, desktop) support dynamic GPU scheduling across Berkelium’s accelerator pool:
- Selectable GPU Types:
nvidia.com/a40— NVIDIA A40 (48GB GDDR6, default)nvidia.com/a100— NVIDIA A100 (80GB PCIe)nvidia.com/h100— NVIDIA H100 (80GB HBM3)nvidia.com/h200— NVIDIA H200 NVL (141GB HBM3e)nvidia.com/b300— NVIDIA B300 SXM6 AC (275GB HBM3e, Blackwell architecture)
- Native NVIDIA B300 (
sm_100/sm_103) Compatibility: Theharbor.bk.lbl.gov/coder-images/pytorch:a0d801e4base image ships with CUDA 13.0 (cu130, PyTorch2.14.1+cu130) (torch,torchvision,torchaudio) pre-installed at build time, so Blackwell tensor cores work out of the box without runtime upgrades. - Shared Memory (
/dev/shm): GPU workspaces automatically mount an in-memory/dev/shmvolume sized to match your requested RAM so multi-worker PyTorchDataLoaderprocesses and multi-GPU NCCL collectives never run out of shared memory.
Best Practices
Section titled “Best Practices”Recommended Research Workflow
Section titled “Recommended Research Workflow”- Prototype Interactively in Coder: Use
cuda,data-lab,bio-chem-lab, orai-agentsto write code, explore datasets, and test GPU training loops interactively. - Version Control & Containerize: Push your code to GitHub / LBNL GitLab and build container images in Harbor (
harbor.bk.lbl.gov). - Scale to Multi-Node Batch Jobs: Submit long-running training runs or large parameter sweeps as Kubernetes Batch Jobs or distributed KubeRay workloads.
- Stop the Workspace: Stop your interactive Coder workspace to release GPUs back to the cluster pool.
Troubleshooting
Section titled “Troubleshooting”Workspace Pending or Fails to Start
Section titled “Workspace Pending or Fails to Start”- GPU Availability: If you requested a specific GPU type (e.g.,
NVIDIA B300orH200) and all cards of that model are currently in use, the workspace pod will wait inPendingstate. Try switching the GPU model parameter to another available pool (such as NVIDIA A40 (nvidia.com/a40)) or reducing the GPU count. - Build Logs: Inspect the real-time Provisioner & Agent Startup Logs directly in the Coder UI to check
cloud-initor startup script progress.
Updating Workspace Parameters (CPU, RAM, GPU, or LLM Key)
Section titled “Updating Workspace Parameters (CPU, RAM, GPU, or LLM Key)”To change CPU, memory, GPU count, or LLM API keys on an existing workspace:
- Open your workspace in the Coder Portal.
- Click Settings → Parameters (or Update / Restart) and adjust the sliders or dropdowns.
- Restart the workspace—your
/home/coderdata is preserved automatically.
Resources
Section titled “Resources”- Berkelium Coder Portal (
coder.bk.lbl.gov) — Launch and manage workspaces - Virtual Machines (KubeVirt) Guide — Advanced guide for KubeVirt VMs on Berkelium
- Coder Official Documentation — CLI reference and IDE integration guides
- Science IT Support — Submit a ticket or join office hours for assistance
