VS Code Server on HPC

Run VS Code Server (code-server) on a compute node

One-time Setup

Install code-server

If you followed our software setup using pixi, install code-server with:

pixi global install code-server -c conda-forge

Alternatively, ask your IT admin to install code-server as a module, then load it with module load code-server (or similar) before running the script.

Usage

Submit the VS Code Server job and follow the prompts to connect. To do so, download the script to your home directory:

curl -O https://wanggroup.org/scripts/vscode_cumc_cloud.sh

Then modify the script as needed:

  • Adjust memory and wall time requirements: Default to 15GB memory running 18 hours which typically works for moderate scale of computing.
  • Add bash configurations before the launch command (e.g., custom paths from your ~/.bashrc or simply add source ~/.bashrc).

And then submit the job:

bash vscode_cumc_cloud.sh -i <hpc_ip>

Note: Run the script with bash (not sbatch) to validate inputs on the head node before job submission. This gives immediate feedback if code-server is not installed.

Connect

After the job starts, check the job output file for connection info:

cat vscode_<JOBID>.out

Replace <JOBID> with your actual job ID. You’ll see instruction like:

========================================
VS Code Server - Job 12345678
========================================
On your LOCAL machine, run:
  ssh -N -L 9234:ondemand-dy-cpu2mem16a-2:9234 username@hpc_ip

Then open: http://127.0.0.1:9234
To stop:   scancel 12345678
========================================

Extensions: /home/username/vscode-status/extensions
User data:  /home/username/vscode-status/data
For a fresh start: rm -rf /home/username/vscode-status

Run the SSH tunnel command on your local machine, then open http://127.0.0.1:9234 in your browser.

Persistent Data

VS Code Server stores your settings and extensions in ~/vscode-status/:

Directory Contents
data/ User settings, workspace state
extensions/ Installed VS Code extensions
job_<JOBID>/ Job-specific config files

Extensions and settings persist across sessions. For a fresh start, remove the entire directory:

rm -rf ~/vscode-status

Notes

  • Cost: Terminate when done: scancel <JOBID>
  • Extensions: Install extensions from the Extensions panel - they persist in ~/vscode-status/extensions/
  • Python/R support and other user tips: Install the Python and R extensions for language support, then select your pixi environment as the interpreter. See also this page for other tips.