PandaOSPandaOSby Pandata
Projects

Dev server

Panda edits, the server reloads, the preview updates, all beside the chat.

Secrets live in the Credentials panel

The .env files PandaOS finds are listed there with their values hidden. Add and edit them in the panel; the agent reads and writes through it rather than opening .env in the editor.

The loop

Ask for a change. Panda edits, and the preview updates itself a few seconds later, next to the conversation. No window switching, no manual refresh, so "try it and look" becomes the normal way to work.

An edit, a reload and the preview updating beside the chat.

Set one up on a new project

A project with no dev server has no play button. Giving it one takes a minute.

  1. Open the project's settings, then Dev servers. — From the project card, or the project's own overview page.
  2. Give it a command. — PandaOS proposes one from your package manager when it recognises the project. Accept it or write your own.
  3. Set the port it listens on. — This is the one that matters. It is how the preview knows where to point, and it has to match what your command actually serves on.
  4. Save. — Play, stop and restart now appear in the dock, and the preview can open against it.
  5. Optionally turn on auto-start. — The server then comes up with the project instead of waiting for you to press play.

Starting one

PandaOS detects the framework when you open a web project and proposes the command it derives from your package manager, usually npm run dev, or pnpm dev, yarn dev or bun dev if that is what the project uses. Accept it or write your own. The port lives beside the command in the project's settings, and once it is set the dock carries play, stop and restart for that server.

A project can run several at once, each with its own command, port, working directory and auto-start, which is what a monorepo needs: the web app on one port, the API on another.

Automatic framework detection

When you open a web project, PandaOS detects the framework and suggests the right dev command. The command comes from your package manager, so it is usually npm run dev, or pnpm dev, yarn dev or bun dev if the project uses one of those. You can accept the suggestion or customize it. The detected framework also informs Panda's understanding of your project, so it knows whether to generate App Router code or Pages Router code, for example.

Running multiple servers

Many real projects need more than one process. A frontend and an API server. A web app and a background worker. PandaOS supports multiple dev servers per project, each with its own command, port, working directory, and auto-start preference.

This is particularly useful in monorepos. You might run the Next.js frontend from apps/web/ on port 3000 and the Express API from apps/api/ on port 4000, both managed from the same project. The browser preview connects to whichever server you choose.

Browser preview integration

Once a dev server is running, the embedded browser preview automatically opens to its URL. The preview sits alongside the chat and updates as the dev server reflects code changes. This means Panda can make an edit, you can see the visual result, and you can respond with feedback, all without leaving PandaOS.

For the full set of workspace tools available alongside the preview, see Files, Terminal & Browser.

Environment variables and credentials

A dev server usually needs secrets, so PandaOS gives the project a Credentials panel: the .env files it finds, with their variables listed and values hidden until you reveal them. You can add, edit and delete variables there instead of opening the file by hand.

The agent reads and writes those variables through the same panel rather than by opening .env in the editor, so a key can be set for a run without its value being printed into the conversation. Credentials open as their own panel and can be placed as a card on the Canvas.

Port Allocation

PandaOS automatically assigns ports to avoid conflicts:

  • Ports are allocated from a pool when a framework is detected
  • You can override the port in the Project Setup Dialog or Project Settings
  • Valid port range: 1,65535
  • Port allocation is deferred until a dev command is detected (optimization for non-web projects)

Dev Server States

StateIndicatorDescription
StoppedGrayServer is not running
StartingAmber (pulsing)Server is booting up, health checks in progress
RunningGreenServer is running and responding to health checks
ErrorRedServer failed to start or crashed

Configuring the Dev Command

To change the dev command or port after setup:

  1. Open Settings (Cmd+,)
  2. Switch to your project's scope
  3. Navigate to General
  4. Edit the Dev Command and Port fields

You can also edit these in the Project Setup Dialog when adding a project.

  1. Open Settings (Cmd+,)
  2. Switch to your project's scope
  3. Navigate to General
  4. Edit the Dev Command and Port fields

Framework Detection

When you add a project, PandaOS scans for common web frameworks and auto-detects:

FrameworkDetectionDefault Dev Command
Next.jsnext in dependenciesnpm run dev
Nuxtnuxt in dependenciesnpm run dev
SvelteKit@sveltejs/kit in dependenciesnpm run dev
Remix@remix-run/react in dependenciesnpm run dev
Angular@angular/core in dependenciesnpm run start
Astroastro in dependenciesnpm run dev
Vitevite in dependenciesnpm run dev
React (CRA)react-scripts in dependenciesnpm run start
Expressexpress in dependenciesnpm run start

Detection follows a precedence order, if a project has both Vite and Next.js, Next.js is detected (as it's higher priority).

Python Projects

PandaOS also detects Python projects by checking for pyproject.toml, requirements.txt, setup.py, or dbt_project.yml. Python projects don't get a dev server command, but PandaOS will auto-detect virtual environments (venv, conda, poetry) and offer to enforce activation. See Python Environments for details.