APM

>Agent Skill

@majiayu000/dev-server-sandbox

skillgit-workflow

Run multiple isolated mux dev-server instances (temp MUX_ROOT + free ports)

gitapi-designsecurity
apm::install
$apm install @majiayu000/dev-server-sandbox
apm::skill.md
---
name: dev-server-sandbox
description: Run multiple isolated mux dev-server instances (temp MUX_ROOT + free ports)
---

# `dev-server` sandbox instances

`make dev-server` starts the mux backend server, which uses a lockfile at:

- `<MUX_ROOT>/server.lock` (defaults to `~/.mux-dev/server.lock` in development)

This means you can only run **one** dev server per mux root directory.

This skill documents the repo workflow for starting **multiple** dev-server instances in parallel (including from different git worktrees) by giving each instance its own temporary `MUX_ROOT`.

## Quick start

```bash
make dev-server-sandbox
```

## What it does

- Creates a fresh temporary `MUX_ROOT` directory
- Copies these files into the sandbox if present:
  - `providers.jsonc` (provider config)
  - `config.json` (project list)
- Picks free ports (`BACKEND_PORT`, `VITE_PORT`)
- Allows all hosts (`VITE_ALLOWED_HOSTS=all`) so it works behind port-forwarding domains
- Runs `make dev-server` with those env overrides

## Options

```bash
# Use a specific root to seed from (defaults to ~/.mux-dev then ~/.mux)
SEED_MUX_ROOT=~/.mux-dev make dev-server-sandbox

# Keep the sandbox root directory after exit (useful for debugging)
KEEP_SANDBOX=1 make dev-server-sandbox

# Pin ports (must be different)
BACKEND_PORT=3001 VITE_PORT=5174 make dev-server-sandbox

# Override which make binary to use
MAKE=gmake make dev-server-sandbox
```

## Security notes

- `providers.jsonc` may contain API keys.
- The sandbox root directory is created on disk (usually under your system temp dir).
- This flow intentionally **does not** copy `secrets.json`.