Runspace is a desktop sandbox for running multiple programming runtimes in isolated, on-demand environments.
Install the release build for your platform.
Each environment you add in the playground needs its own runtime installed and configured in Settings → Environments (binary paths are auto-detected when possible).
| Environment | What you need |
|---|---|
| Node.js | Node.js |
| PHP | PHP |
| Python | Python |
| Ruby | Ruby |
| GCC (C) | GCC (Xcode Command Line Tools on macOS) |
| G++ (C++) | G++ (Xcode Command Line Tools on macOS) |
| Laravel | PHP + Composer |
| Symfony | PHP + Composer |
| Dropwizard | Java JDK + Maven |
| CakePHP | PHP + Composer |
| Slim | PHP + Composer |
| Laminas | PHP + Composer |
| Phalcon | PHP (with Phalcon extension) + Composer |
| Express | Node.js + npm |
| Micronaut | Java JDK + Maven |
| Vert.x | Java JDK + Maven |
| Spring Boot | Java JDK + Maven |
| Ktor | Kotlin + Gradle |
| Padrino | Ruby + Bundler + Padrino |
| Quarkus | Java JDK + Maven |
| Express | Node.js |
| Roda | Ruby + Bundler |
| Phalcon | PHP (with Phalcon extension) + Composer |
| Ktor | Kotlin + Gradle |
| JHipster | Java + Maven |
| Flask | Python |
| Koa | Node.js |
| Hono | Node.js |
| Fastify | Node.js |
| NestJS | Node.js |
| Play Framework | Scala + sbt |
You only install the runtimes for the environments you use. Node.js is not required to run PHP, and so on.
To build or contribute to Runspace from source:
- Node.js 20+
- Rust stable
- Xcode Command Line Tools (macOS)
- Composer — generates bundled Laravel/Symfony/CakePHP skeletons during build (
npm run prepare:frameworks) - Composer — generates bundled Laravel/Symfony/Slim skeletons during build (
npm run prepare:frameworks) - Composer — generates bundled Laravel/Symfony/Laminas skeletons during build (
npm run prepare:frameworks) - Composer — generates bundled Laravel/Symfony/Phalcon skeletons during build (
npm run prepare:frameworks) - Composer — generates bundled Laravel/Symfony skeletons during build (
npm run prepare:frameworks) - curl — generates bundled Micronaut skeleton via launch.micronaut.io during build
- curl — generates bundled Spring Boot skeleton via start.spring.io during build
- Ruby 3.2+ with Bundler and the
padrinogem — generates the bundled Padrino skeleton during build (npm run prepare:frameworks) - curl — generates bundled Quarkus skeleton via code.quarkus.io during build
- npm — generates bundled Express skeleton during build (
npm run prepare:frameworks) - Ruby + Bundler — generates bundled Roda skeleton during build (
npm run prepare:frameworks) - Gradle — generates bundled Ktor skeleton during build (
npm run prepare:frameworks) - npm — generates bundled Express/JHipster skeletons during build (
npm run prepare:frameworks) - Python with pip — generates the bundled Flask skeleton during build (
npm run prepare:frameworks) - sbt — generates the bundled Play skeleton during build (
npm run prepare:frameworks)
Install dependencies:
npm installRun the desktop app in development mode (with hot reload):
npm run tauri devBuild the production app:
npm run tauri buildRun tests:
npm testGenerate Laravel/Symfony/Express/Vert.x skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/CakePHP skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Slim skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Laminas skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/Spring Boot skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/ASP.NET Core/Padrino skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/Quarkus skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/Roda skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/Ktor skeletons manually (first clone or after bumping manifest.json):
Generate Laravel/Symfony/Express/JHipster skeletons manually (first clone or after bumping manifest.json):
Generate framework skeletons manually (first clone or after bumping manifest.json):
npm run prepare:frameworksLint:
npm run lint