Dev server
Panda edits, the server reloads, the preview updates, all beside the chat.
Secrets live in the Credentials panel
The
.envfiles 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.envin 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.
Set one up on a new project
A project with no dev server has no play button. Giving it one takes a minute.
- Open the project's settings, then Dev servers. — From the project card, or the project's own overview page.
- Give it a command. — PandaOS proposes one from your package manager when it recognises the project. Accept it or write your own.
- 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.
- Save. — Play, stop and restart now appear in the dock, and the preview can open against it.
- 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
| State | Indicator | Description |
|---|---|---|
| Stopped | Gray | Server is not running |
| Starting | Amber (pulsing) | Server is booting up, health checks in progress |
| Running | Green | Server is running and responding to health checks |
| Error | Red | Server failed to start or crashed |
Configuring the Dev Command
To change the dev command or port after setup:
- Open Settings (
Cmd+,) - Switch to your project's scope
- Navigate to General
- Edit the Dev Command and Port fields
You can also edit these in the Project Setup Dialog when adding a project.
- Open Settings (
Cmd+,) - Switch to your project's scope
- Navigate to General
- Edit the Dev Command and Port fields
Framework Detection
When you add a project, PandaOS scans for common web frameworks and auto-detects:
| Framework | Detection | Default Dev Command |
|---|---|---|
| Next.js | next in dependencies | npm run dev |
| Nuxt | nuxt in dependencies | npm run dev |
| SvelteKit | @sveltejs/kit in dependencies | npm run dev |
| Remix | @remix-run/react in dependencies | npm run dev |
| Angular | @angular/core in dependencies | npm run start |
| Astro | astro in dependencies | npm run dev |
| Vite | vite in dependencies | npm run dev |
| React (CRA) | react-scripts in dependencies | npm run start |
| Express | express in dependencies | npm 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.