Quickstart
Create your first DevEx REPL, open a terminal, run some code, and see your files persist across restarts — in about five minutes.
This walks you through creating a REPL on the hosted instance and getting to a running shell. If you want to run DevEx on your own cluster instead, start with Self-hosting.
Before you start
You need a GitHub account. DevEx uses GitHub OAuth so that REPLs can clone and push to your repositories.
No GitHub account?
You can sign in with a magic link instead. It works for everything except the GitHub integrations — cloning private repos, pushing branches, and the repository picker are all unavailable on that path.
Create a REPL
Sign in
Go to the dashboard and sign in with GitHub. On first sign-in you will be asked
to authorise the DevEx OAuth app; it requests read:user and repo scopes.
Pick a template
A template is the starting filesystem for your REPL — a language runtime, a
package manager, and a minimal project. Pick node or python to start.
# What you get with the node template
/workspace
├── index.js
├── package.json
└── README.mdName it and create
Give the REPL a name. Names are scoped to your account, so api is fine even if
someone else already has one.
Core copies the template into S3 under your-username/repl-id/, then asks
Kubernetes for a Deployment, a Service and an Ingress.
Wait for the pod
The status moves through provisioning → starting → running. First boot is
usually 10–20 seconds; the image is normally already cached on the node.
Use the terminal
Open the REPL and you get a real PTY over a WebSocket. Job control, colours,
less, vim and Ctrl-C all behave the way they do locally.
node --version
npm install express
node index.jsPorts are public while the REPL runs
Anything you bind to a port is reachable through the REPL's Ingress hostname. Treat it as a public URL — don't run an unauthenticated admin panel on it.
Edit files
The editor is Monaco — the same engine as VS Code — talking to the same WebSocket as the terminal. Saves write straight to the container's filesystem, so a file you save is immediately visible to a process running in the shell.
Stop and restart
Stopping a REPL is what makes it cheap: the pod is deleted and you stop consuming cluster resources.
Stop it
An ephemeral container attaches to the pod and syncs changed files back to S3 before the pod terminates.
Start it again
A fresh pod comes up and pulls your files back down. Your /workspace is as you
left it.
Only /workspace persists
The sync covers your project directory. Things installed outside it — global
npm packages, apt installs, changes to /etc — are gone on restart. Put
them in the template if you need them every time. See
Templates.