Getting started

Run VESPR on your own computer. The fastest way needs no keys and no Docker: one script starts a throwaway stack and prints a link.

On this page

Get the code

The public repository is Planned. Until it is published you need a copy of the source folder from the team. Every command on this page runs from the top folder of that copy, the one that holds README.md.

Fastest: the throwaway demo stack

scripts/demo-stack.sh starts the realtime server, one agent in demo mode, the app shell, the sample project and made-up test logins. Everything listens on 127.0.0.1 only and lives in one temporary folder that stop deletes, test logins included.

You need

Steps

  1. Install the dependencies of the server and the agent (once).

    bash
    (cd server && npm ci) && (cd agents && npm ci)
  2. Start the stack. It prints seeded 6 files and then a line that starts with up:.

    bash
    scripts/demo-stack.sh start

    The server uses port 9611, the agent's inline suggestions the next port, and the app shell the one after (9613). If a port is busy, pick another start: VESPR_DEMO_PORT=9700 scripts/demo-stack.sh start.

  3. Print the link and open it in a browser.

    bash
    scripts/demo-stack.sh url

    The link carries a throwaway test login after the #. It only works on this stack and disappears when you stop it. If you started on another port, run the url command with the same VESPR_DEMO_PORT.

  4. You are in a workspace called demo as alex, with one agent, coder. The top bar shows a pill that reads Live (demo), the workspace's name in brackets, once the connection is up (it says Connecting until then). The sample project is a small shopping cart: cart.py has a discount bug on purpose, test_cart.py finds it, and boom.py fails on purpose so you can see an error.

  5. In the chat box, type the first prompt. A Manual-mode agent asks before it runs anything, so an Approve / Deny card appears; approve it and the tests run (and fail).

    chat
    @coder run python3 -m unittest -q

    Then ask for the fix and approve again.

    chat
    @coder fix the discount bug in cart.py and run the tests again
  6. When you are done, stop it. This kills the three processes and deletes the folder, tokens included.

    bash
    scripts/demo-stack.sh stop
Demo mode is scripted, not a model

With no Nebius key the agent answers with scripted replies and edits, and says so in its messages. That is enough to see the approval flow, the live edit view, History and the Run button. For a real model see Use a real model. scripts/demo-stack.sh status tells you which of the three processes are up; their logs are in the stack's folder (server.log, agent.log, web.log under /tmp/vespr-demo-stack-<your user>, or the folder you set with VESPR_DEMO_DIR).

The full local stack with Docker

This runs the realtime server, the agent and two SDE containers (full VS Code with the VESPR extension, one for alice and one for bob) on your computer, so you can open two browser windows and watch two people and an agent in one file. You need Docker with Compose.

bash
cd deploy/local
./make-env.sh
docker compose up -d --build
cat links.txt

The app's Run button is on in this stack (it is your own computer). See the tour for what it does and why it is off by default on shared servers.

The app shell on the Docker stack

The links in links.txt open the SDE. The app shell is plain static files in app/. Serve that folder with any static server and tell the page where the server is and which login to use:

bash
python3 -m http.server 8000 --bind 127.0.0.1 --directory app
url
http://127.0.0.1:8000/prototype.html?live=1&server=ws://127.0.0.1:8241&room=demo&name=alice#token=THE-TOKEN-FOR-ALICE

The token is alice's value in deploy/local/tokens (the part after the colon). It goes after the #, so the static server that serves the page never receives it. Without live=1 the page opens with example data and no connection.

Use a real model (optional)

The agent calls NVIDIA Nemotron models through Nebius Token Factory. You need a Token Factory API key. Treat it like a password: never paste it into chat, an issue or a commit.

  1. In deploy/local, create a file named nebius.env that contains one line: NEBIUS_API_KEY= followed by your key. Git ignores files that end in .env.
  2. Run ./make-env.sh again. It reads that file, and without a key it says the agent will run in scripted demo mode. It also makes new logins, so use the new links.txt.
  3. Run docker compose up -d --build.

The agent asks the account for its model list and picks Nemotron 3 Super for everyday chat, edits and inline suggestions and Nemotron 3 Ultra for plan mode. Vision-language, embedding and safety models are never picked. You can override the choice with the environment variables NEBIUS_MODEL, NEBIUS_PLAN_MODEL and NEBIUS_SUGGEST_MODEL on the agent process.

Run the tests

This runs every test. It needs no keys and no Docker, only Node.js 20 or newer, git and python3, and takes a few minutes.

bash
./scripts/test-all.sh

A server for other people

deploy/judge/ runs the same stack on one machine behind HTTPS, with caps on memory, processes, CPU and AI tokens per day. deploy/judge/README.md walks through it. It was written for a Nebius AI Cloud VM; any Docker host works. On that deployment the app's Run button is off, because a run executes workspace code next to the agent's secrets (see the FAQ).

When something does not work