A VS Code–compatible editor and a coding agent, in the browser
Open a workspace in the browser, and your data and a coding agent (Claude Code, today) are ready. There are only two new things to learn: choosing the data, and releasing the outputs.
Not released yet. The portal screens are being built; the screen drawings on this page are examples copied from the app in development.
What stays the same
- 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 withsudo apt-get install. They stay when the environment is recreated. - Long jobs
- Start long jobs such as training inside
tmuxorscreenin 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, 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.
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
Runs when pressed
ws create kim --data /images/ct_2024 /tables/patients 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.
- 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.
project/outputs/model.pt project/outputs/roc_curve.png Give paths relative to the work folder. A folder releases every file in it. 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. Runs when pressed
release create --workspace ws-0012 --outputs project/outputs/model.pt project/outputs/roc_curve.png --reproduce project/reproduce.sh Inside a workspace
~/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.
EXPLORER
outputsreproduce.shtrain.pyimages/ct_2024tables/patientsIn a workspace terminal
pip install --user scikit-imagesudo apt-get install -y graphviztmux new -s trainsynapse help The agent asks. You decide.
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.
Request to add data a-0031
Claude wants to add data to this workspace.
- Workspace
ws-0012- Data to add
/tables/labs(4 files)
| When | Visible files | Who can see |
|---|---|---|
| Now | 1,252 | 4 of 31 people |
| If approved | 1,256 | 2 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.
Share with a link
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.
project/outputs/gradcam_017.pngImageproject/outputs/roc_curve.pngImageproject/outputs/model.ptWeightsproject/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
Your work stays
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.
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. When something fails, it tells you why and what to do
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.
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.
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. Who can see your work
- 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.