Daytona development environment overview. Use when the user asks about Daytona setup, Daytona toolbox, dev environment, noVNC, CDP, server sandbox, secrets volume, Electron sandbox, standalone Chrome, validation, or artifacts volume.
npx skills add https://github.com/Devin-AXIS/iPolloWork --skill daytona-dev
Launch the iPolloWork Electron app in a Daytona cloud sandbox. The real desktop
app runs on Daytona's XFCE/noVNC desktop stack and is accessible through your
browser.
brew install daytonaio/cli/daytona or download from GitHub releasesdaytona logindaytona organization use "<org-name>"bash .devcontainer/test-on-daytona.sh [branch-or-commit]
The helper uses the VNC snapshot, starts noVNC/Vite/Electron, and prints the
URLs. If the snapshot is missing, create it with
bash .devcontainer/create-daytona-ipollowork-snapshot.sh.
Use the Daytona setup as four reusable pieces. Prefer the focused skills when a
request names one piece directly:
test-on-daytona.sh for the real Electron/noVNC/CDP sandbox.daytona-flow-validator for the observe -> act -> assert -> evidence loop.test-server-on-daytona.sh for the cloud Den server sandbox.daytona-electron-den for Electron connected to a Daytona Den server.daytona-chrome-cdp for standalone Chrome in the sandbox, separate from Electron.ipollowork-eval-secrets:/daytona-secrets for provider keys and eval-only secrets.ipollowork-eval-artifacts:/daytona-artifacts for screenshots, validation notes, and recordings.Focused skills:
daytona-cloud-server for cloud server and Den flows.daytona-electron-den for two-sandbox Electron + Den validation.daytona-flow-validator for pass/fail validation and evidence.daytona-chrome-cdp for normal Chrome browser automation in Daytona.daytona-secrets-volume for adding or verifying secrets.daytona-electron-test for real Electron UI validation.daytona-recording-artifacts for screenshots, recordings, and PR evidence.Or SSH in after the helper prints the sandbox name:
daytona ssh <sandbox>
cd /workspace
daytona preview-url ipollowork-dev -p 6080
Open that URL in your browser. You'll see the real Electron iPolloWork app.
# Den Web dashboard (if Den stack is running)
daytona preview-url ipollowork-dev -p 3005
# CDP debugging endpoint
daytona preview-url ipollowork-dev -p 9825
| Service | Port | Description |
|---------|------|-------------|
| noVNC | 6080 | See and interact with the Electron app in your browser |
| Vite HMR | 5173 | Hot module replacement for the React UI |
| CDP | 9825 | Chrome DevTools Protocol — for automation |
| Den Web | 3005 | Admin dashboard (only if MySQL is available) |
| Den API | 8788 | Control plane (only if MySQL is available) |
The devcontainer's docker-compose.yml includes MySQL. If you're using Daytona's raw sandbox mode (no Docker Compose), the Den stack won't start because there's no MySQL. Two options:
Just point the app to the production Den:
app.ipolloworklabs.com)If you need a local Den (for testing customization, restrictions, etc.):
docker-compose.yml approach (requires Docker-in-Docker)# List running sandboxes
daytona list
# SSH into sandbox
daytona ssh ipollowork-dev
# Check logs
daytona exec ipollowork-dev 'tail -50 /tmp/electron.log'
daytona exec ipollowork-dev 'tail -50 /tmp/vite.log'
daytona exec ipollowork-dev 'tail -50 /tmp/start-vnc.log'
# Inspect Electron CDP targets
daytona exec ipollowork-dev 'curl -s http://127.0.0.1:9825/json/list'
# Capture a persistent screenshot artifact
daytona exec ipollowork-dev 'bash .devcontainer/capture-daytona-screenshot.sh'
# Restart just the Electron app
daytona exec ipollowork-dev 'bash -lc "pkill -f electron || true; pkill -f electron-dev || true"'
daytona exec ipollowork-dev 'bash -lc "cd /workspace && bash /opt/ipollowork-daytona/start-daytona-electron.sh --detach"'
# Stop the sandbox (preserves state)
daytona stop ipollowork-dev
# Start it again
daytona start ipollowork-dev
# Delete (destroys everything)
daytona delete ipollowork-dev
Inside the sandbox, the repo is at /workspace. To pull latest:
daytona ssh ipollowork-dev
cd /workspace
git pull origin dev
pnpm install
# Then restart Vite/Electron
Electron shows blank window:
Vite might not be running. Check tail /tmp/vite.log. Restart with:
cd /workspace/apps/app && IPOLLOWORK_DEV_MODE=1 nohup npx vite --host 0.0.0.0 --port 5173 > /tmp/vite.log 2>&1 &
noVNC shows black screen:
Xvfb/XFCE may have crashed. Restart the desktop stack:
bash /opt/ipollowork-daytona/start-daytona-vnc.sh
"no space left on device" when creating sandbox:
Use --disk 10. The default Daytona disk can be 3 GB, which is not enough for
iPolloWork dependencies and sidecar prep. Also don't use --context . — it
uploads the entire repo (with worktrees, node_modules). Use individual
--context flags for just the files needed.
Electron can't connect to localhost:5173:
Vite must listen on 0.0.0.0, not just localhost. The start script handles this, but if running manually use npx vite --host 0.0.0.0.
Take devin-axis/daytona-dev from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm, npx, brew.
Without those the skill loads but fails at the first command.