What stays the same

You open a VS Code–compatible editor in a browser tab and work with a terminal and a coding agent. The data does not have to come to your laptop.
Editor and extensions
Opens in a new browser tab. Several tabs are fine.
Terminal
Closing the tab does not stop what runs there; reopen it and the same terminal is back (with its most recent 100 lines on screen).
Coding agent
Claude Code is installed, as a command-line tool and a VS Code extension. Connect your Claude account once and every workspace uses it.
Installing packages
Python with pip install --user, system packages with sudo apt-get install. They stay when the environment is recreated.
Long jobs
Start long jobs such as training inside tmux or screen in the terminal. They keep running when the IDE restarts.
GPU
Workspaces share the GPU. Each has a GPU memory limit set by an admin; past it, the largest process is stopped.
SSH
If an admin allows it, connect to your running workspaces from your own terminal or desktop VS Code (Remote-SSH). The screen shows the command to copy. Checking every connect command on Windows and macOS is still to be done.

The browser IDE is code-server, a VS Code–compatible editor. Extensions come from Open VSX, so some Microsoft-only extensions (such as Pylance) are missing, and with the “Claude only” internet rule none can be installed.

Two new things

Choose the data when you create a workspace, and press Release outputs when you share a result.

Choose the data

When you create a workspace, choose the data it uses. All your data is chosen to start with. As you choose, you see how many people can see this workspace's results, and data that would narrow it is flagged before you add it. Choose what you need.

You can add data later, but data you have added cannot be taken out, because files made from it may already sit in your work folder. To drop data, create a new workspace.

New workspace App in development

Data this workspace uses

  • (partly chosen)All my data
  • (chosen)/images/ct_20241,248 files
  • (chosen)/tables/patients4 files
  • (not chosen) (previewing)/tables/labs4 files

Visible files1,252

Who can see this workspace's results

4 of 31 people

Admins can always see

Adding this data narrows who can see the results from 4 to 2: /tables/labs

Roles needed one ofct_researchorimaging_all and one ofehr_basicorehr_full

Name (optional) A name to find it by in your list.
Create workspace

Runs when pressed

ws create kim --data /images/ct_2024 /tables/patients
The pointer rests on /tables/labs: the two people who would no longer see the results are hatched. This is an example, drawn from the app in development.

Release outputs

To share a result, press Release outputs on the workspace and name the files and the reproduce command file. Only the people who can see this workspace's results can see what you release.

What it takes to rebuild the result is saved with it: the work folder and the environment at that moment, and the data you used. Re-running to check is planned.

Release outputs App in development
Workspace
ws-0012
Who can see
4 of 31 people

Only the people who can see this workspace's results can see the released outputs.

Files to release project/outputs/model.pt project/outputs/roc_curve.png Give paths relative to the work folder. A folder releases every file in it.
Reproduce command project/reproduce.sh The file with the commands that make the outputs again. For now Synapse only checks that it exists; it does not run it.
Replaces (optional) None
Release outputs

Runs when pressed

release create --workspace ws-0012 --outputs project/outputs/model.pt project/outputs/roc_curve.png --reproduce project/reproduce.sh
The dialog behind Release outputs on a workspace. This is an example, drawn from the app in development.

Inside a workspace

The editor shows two folders: your work in ~/project, your data in /data.
/data
Your data: the files you may see among the data you chose. Read-only.
~/project
Your work. Keep code here; it stays when the environment is recreated.
~/project/outputs
Where outputs to release go.
~/project/reproduce.sh
The commands that rebuild the outputs from scratch.
/data/tables/<table>/table.yaml
What a table means: columns, code systems, units, missing-value rules.
~/.synapse/data.duckdb
A DuckDB file with every table ready to query, read-only.

The coding agent gets the workspace rules: read data from /data, keep code in ~/project and outputs in ~/project/outputs, fix random seeds, and write the commands that rebuild the outputs to ~/project/reproduce.sh. Before you release, open the reproduce file to see whether the agent followed them.

My data shows each item's “Path in a workspace” (for example /data/images/ct_2024): that is the exact path to tell the agent.

The internet is open only as far as an admin set it for the workspace: by default, Claude and the package repositories (PyPI, Ubuntu apt, VS Code extensions). Blocked requests show in the internet access log; send an admin the address you need.

The workspace editor
An example drawing of the editor's explorer. My work is your work folder (~/project); My data (read-only) is /data.

In a workspace terminal

pip install --user scikit-imagesudo apt-get install -y graphviztmux new -s trainsynapse help

The agent asks. You decide.

To add data or release outputs, the agent makes a request and gives you an approval link.

The approval page shows what would change (visible files, and how many people could see the results). Press Approve and run, and the command runs once, as you. If the files change after the request it does not run, so have the agent fix them and ask again.

Writing and running code, reading the data in /data and using the internet addresses the workspace allows need no approval. What you do yourself in the portal, Add data or Release outputs, runs at once.

Approvals App in development

Request to add data a-0031

Claude wants to add data to this workspace.

Workspace
ws-0012
Data to add
/tables/labs (4 files)
What changes
WhenVisible filesWho can see
Now1,2524 of 31 people
If approved1,2562 of 31 people

Command to run

ws add-data ws-0012 /tables/labs

Approving runs the command above once, as kim.

If files change or are added after the request, approving does not run it.

Approve and runReject
The page behind the approval link the agent hands you. This is an example, drawn from the app in development.

Share with a link

Every release has a share link. Whoever gets it still needs permission to open it.

People without permission see the roles needed and can ask an admin. People with permission get previews, a summary and the release's sources.

A colleague who pastes the link to the agent in their own workspace turns it into a request to add your release to that workspace as data. Once they approve, it appears read-only under /data/releases in their workspace.

To share a corrected version, release again and choose the earlier release under Replaces. The earlier release's page then points to the new one.

Release r-0137 App in development

Release r-0137

Copy linkDownload
  • project/outputs/gradcam_017.pngImage
  • project/outputs/roc_curve.pngImage
  • project/outputs/model.ptWeights
  • project/outputs/metrics.jsonMetrics

Summary

Created by
kim
Workspace
ws-0012
Data used
/images/ct_2024, /tables/patients
Who can see
4 of 31 people
To reproduce
project/reproduce.sh

Not yet run again to check. The reproduce command and the environment at the time are saved.

Downloads are recorded

What someone who may see the release gets when they open its share link. This is an example, drawn from the app in development.

Your work stays

You start and stop your workspaces. Nothing turns them off because they sit idle.

Stopping keeps your work folder and installed packages, and starting again picks up where you left off. If an environment ends, the reason is kept (for example, out of memory).

Archive a workspace you no longer use. Archiving frees its GPU and its place under your workspace limit; the work folder, records and releases stay, and you can restore it.

Each work folder has a size limit, and at 80% or more you see “nearly full”. Your institution sets how many workspaces one person may keep running.

Command console App in development
ws stop ws-0012
Stopped workspace: ws-0012The work folder stays as it is.
ws archive ws-0012
Archived workspace: ws-0012The work folder, records and releases stay.
The command console after Stop and Archive. This is an example, drawn from the app in development.

When something fails, it tells you why and what to do

An error says in one sentence what failed, then gives the reason and the fix. The agent reads the same reason and can fix it too.

The example is a symbolic link to /data inside the outputs folder. The release stops before anything leaves, so source data cannot slip out through a link.

Release outputs App in development

Could not release the outputs. A path is a symbolic link.

reason: Symbolic link: project/outputs/ct -> /data/images/ct_2024. Replace it with the real file, then try again.

This is an example, drawn from the app in development.
Command console App in development
release create --workspace ws-0012 --outputs project/outputs --reproduce project/reproduce.sh
Could not release the outputs. A path is a symbolic link.reason: Symbolic link: project/outputs/ct -> /data/images/ct_2024. Replace it with the real file, then try again.
The screen shows it in your language; the command console shows the CLI's English as it is. This is an example, drawn from the app in development.

Who can see your work

What can be seen, and by whom, written down plainly.
Releases
People who can see this workspace's results, and admins.
The workspace and its IDE
Only the workspace owner opens the IDE. Workspaces are not shared with other people; results are shared by releasing them.
Work folder and environment saved with a release
You and admins. The conversation with the agent (~/.claude) is part of the work folder.
Admins
Can see all data and releases in the installation.
What the agent reads
Goes to the model provider (Anthropic) under your Claude account. Data terms, such as whether conversations may train models, follow your Claude account settings, and the institution cannot set them. Check your Claude privacy settings before you connect.
Records
Sign-ins, commands run from the screen, the API and workspaces, release views and downloads, and files downloaded through the editor are recorded. What the terminal shows is not.

From your first workspace to your first release

The Quick Start walks through it step by step, with the command each screen runs.