Skip to content

The IDEs

This page describes the IDEs a hub offers and how sessions, home directories and packages work in them. After logging in at https://hub.<your domain>, you see one tile per IDE: RStudio Server, VS Code and JupyterLab. Each tile starts a session, which is a container of its own with the hub's R or Python stack, the coding agent, and your home directory mounted.

Starting a session

Before the session starts, the tile asks for a size: Small (2 CPU, 4 GiB), Standard (4 CPU, 8 GiB) or Large (8 CPU, 16 GiB). The size sets the session's limits. The default is Standard, so one click on the tile is enough. Starting takes a few seconds while the container comes up. A user's first session also creates their home volume.

You can run several sessions of one IDE at the same time, three by default, each with its own size. The instance menu in the bar at the top of a session lists them, and lets you start another one under a name or stop one. Sessions keep running when you close the browser tab. The hub can be configured to stop a session after a period with no open tab (ide_idle_timeout). Files on the home survive this, but the R process and unsaved editor state are lost.

The home directory

Every user has one persistent home volume. The hub creates it at the user's first session, with the size the hub configures, 20 GiB by default. All three IDEs mount the same volume, so a project you started in RStudio is also there in VS Code, and a terminal in JupyterLab sees the same files. No other user can see your home.

The home appears at a different path in each IDE, because each image runs as its own Linux user:

IDE Home path Opens in
RStudio /home/rstudio the home itself
VS Code /home/coder ~/workspace
JupyterLab /home/jupyter ~/workspace

This is why the folder VS Code opens is called coder for everyone. It also means that an absolute path one IDE stores, in a recent-projects list for instance, is wrong in the others. The files themselves are the same.

A project you create in RStudio sits directly in the home, at ~/sales for a project named sales. That is outside the ~/workspace folder that VS Code and JupyterLab open. In VS Code, open it with File > Open Folder. JupyterLab's file browser does not reach it, but its terminal does. To have a project in the file browsers of all three IDEs, create it under ~/workspace.

Everything outside the home belongs to the image and is reset when a session starts. A system package you install with apt in a terminal is gone in the next session. Only tooling you install locally into a project on the home persists.

Packages

R. Inside a project, renv::install() and install.packages() install into the project's library on the home, and renv::snapshot() records the package for the deploy. Outside a project, the same calls install into a personal library on the home. That library persists, but renv does not record it. The hub's stack, the packages every image ships, is available everywhere. A project sees the stack as an external library, and renv::snapshot() records a stack package with its source, so a deploy restores it.

Python. The image's shared environment is read-only. A project gets its own .venv on the home through uv sync. To use that environment in a JupyterLab notebook, select a kernel from it.

RStudio

The RStudio image runs RStudio Server from rocker, with the hub package, Posit Assistant, and Claude Code in the terminal. File > New Project > New Directory > Hub project creates a project from one of the hub's templates. A suspended session resumes where it left off, including an open renv project.

VS Code

The VS Code image runs VS Code in the browser (code-server) with Claude Code. It opens ~/workspace, and keeps recent workspaces and settings on the home. Extensions you install persist on the home as well. code-server ships GitHub Copilot Chat as a built-in extension. We remove it from the image, and the default settings of a new user turn VS Code's built-in chat off (chat.disableAIFeatures).

JupyterLab

The JupyterLab image has the hub's Python stack and Claude Code in the terminal. The file browser's root is ~/workspace.

What the agents know

Claude Code and Posit Assistant describes what the hub gives the coding agents in every IDE and how you add your own instructions.