Skip to content

Languages & runtimes

The workspace sandbox image ships a set of language toolchains. There are two things to distinguish: what is installed (usable from the terminal or a startup command) and what the Run button supports directly (single-file entrypoints).

ToolchainVersion
Node.js20
TypeScript + tsx5
Python3 (with pip, venv)
Ruby3.3 (Rails 8 gems pre-baked)
JavaOpenJDK 17
Go1.22
C / C++gcc / g++ (build-essential)
Static servertypelets-static (see Host a static site)

All of these are usable from the shared terminal and as part of a preview startup command.

The Run button executes single-file entrypoints for:

  • Python (.py)
  • Ruby (.rb)
  • JavaScript (.js, .mjs, .cjs)
  • TypeScript (.ts, .tsx - via tsx)
  • Go (.go - go run)
  • Java (.java - compiled then run)
  • C (.c - gcc)
  • C++ (.cc, .cpp, .cxx - g++)

Multi-file Go modules, Rails apps, and the like are not run via the Run button; start them from the terminal or a startup command instead.

Because you have a real shell as coder, you can pip install, npm install, bundle install, go get, etc. from the terminal. Remember that anything you install only at runtime does not survive a sandbox restart - put dependencies in your project manifest (package.json, Gemfile, requirements.txt, go.mod) and install them via a startup command if you need them on every boot. See Core concepts.