Skip to content

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.

  • 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/coder directory (or KubeVirt root disk) is backed by a dedicated ceph-rbd PersistentVolumeClaim 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, and nvtop.
  • LBNL OneID SSO: Authenticate seamlessly with your institutional Berkeley Lab credentials.

Visit coder.bk.lbl.gov and sign in with your LBNL OneID credentials.

  1. Click Templates in the top navigation bar and choose one of the 16 templates below.
  2. Click Create Workspace, give your workspace a name, and customize its parameters:
    • CPU & Memory: Select core count (1–64 cores) and RAM (2–256 GiB).
    • Home Disk Size: Configure persistent /home/coder storage (10–1000 GiB on ceph-rbd).
    • GPUs (on GPU-enabled templates): Select GPU count (0–8) and GPU hardware model (NVIDIA A40, A100, H100, H200, or B300).
    • Git Repository & Dotfiles (optional): Provide a Git URL to automatically clone into /home/coder on first boot, or a personal dotfiles repository URL.

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:

Terminal window
# 1. Install the Coder CLI (macOS / Linux)
curl -fsSL https://coder.bk.lbl.gov/install.sh | sh
# 2. Authenticate with the Berkelium Coder server
coder 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 / rsync
coder config-ssh

Workspace 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”

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

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

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-cli with hf_transfer, nvtop, uv, and presets for Qwen2.5-Coder, Gemma-3, DeepSeek-R1, Llama-3.3, or any custom Hugging Face model

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

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”

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

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.r VS 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)

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 (:6080 noVNC), 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

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.go VS Code extension, kubectl, helm, uv, ripgrep, fd, fzf, jq, gh, tmux

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

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

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).

  1. 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.
  2. First Boot Provisioning (~1–2 minutes):
    • CDI clones the official cloud image onto your persistent ceph-rbd root disk (20–500 GiB).
    • cloud-init configures 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.
  3. 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-ssh
      ssh coder.<vm-workspace-name>
  4. 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 -a
    lsblk
    # Run Docker containers directly inside your VM
    docker 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 vllm or ollama-webui workspace!).

In the ai-agents template, all major terminal and IDE agents are pre-configured out of the box:

Terminal window
# 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 repository
aider
# Or use Gemini CLI / OpenAI Codex CLI
gemini
codex

GPU 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: The harbor.bk.lbl.gov/coder-images/pytorch:a0d801e4 base image ships with CUDA 13.0 (cu130, PyTorch 2.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/shm volume sized to match your requested RAM so multi-worker PyTorch DataLoader processes and multi-GPU NCCL collectives never run out of shared memory.

  1. Prototype Interactively in Coder: Use cuda, data-lab, bio-chem-lab, or ai-agents to write code, explore datasets, and test GPU training loops interactively.
  2. Version Control & Containerize: Push your code to GitHub / LBNL GitLab and build container images in Harbor (harbor.bk.lbl.gov).
  3. Scale to Multi-Node Batch Jobs: Submit long-running training runs or large parameter sweeps as Kubernetes Batch Jobs or distributed KubeRay workloads.
  4. Stop the Workspace: Stop your interactive Coder workspace to release GPUs back to the cluster pool.

  • GPU Availability: If you requested a specific GPU type (e.g., NVIDIA B300 or H200) and all cards of that model are currently in use, the workspace pod will wait in Pending state. 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-init or 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:

  1. Open your workspace in the Coder Portal.
  2. Click Settings → Parameters (or Update / Restart) and adjust the sliders or dropdowns.
  3. Restart the workspace—your /home/coder data is preserved automatically.