Skip to content
FunCoding

Search

Search docs, Skills and MCP

daytona-dev

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.

浏览器自动化6.8k.opencode/skills/daytona-dev/SKILL.md

Install

Send this to Claude Code, Codex or Cursor. The agent checks the Skill for safety first and installs it only after you confirm.

读取 https://funcoding.ai/skills/devin-axis/ipollowork/daytona-dev/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

Skill: Daytona Dev Environment

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.

Prerequisites

  • Daytona CLI installed: brew install daytonaio/cli/daytona or download from GitHub releases
  • Logged in: daytona login
  • Using the right Daytona organization for your workspace: daytona organization use "<org-name>"

Quick Start

1. Create and start the sandbox

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.
  • fraimz 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.
  • fraimz 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

2. Get the noVNC URL

daytona preview-url ipollowork-dev -p 6080

Open that URL in your browser. You'll see the real Electron iPolloWork app.

4. Get other URLs

# 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

What's Running

ServicePortDescription
noVNC6080See and interact with the Electron app in your browser
Vite HMR5173Hot module replacement for the React UI
CDP9825Chrome DevTools Protocol — for automation
Den Web3005Admin dashboard (only if MySQL is available)
Den API8788Control plane (only if MySQL is available)

Running with Den (full stack)

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:

Option A: Daytona sandbox + production Den

Just point the app to the production Den:

  1. Open the app via noVNC
  2. Sign in normally (uses production app.ipolloworklabs.com)
  3. All cloud features work

Option B: Daytona sandbox + local Den

If you need a local Den (for testing customization, restrictions, etc.):

  1. Use the docker-compose.yml approach (requires Docker-in-Docker)
  2. Or run Den on your local machine and tunnel to the sandbox

Common Commands

# 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

Updating the Code

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

Troubleshooting

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.

Similar Skills

webapp-testing
anthropics/skills180k

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

Browser automation

browser-testing-with-devtools
addyosmani/agent-skills103k

browser-testing-with-devtools

Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.

Browser automation

webapp-testing
ComposioHQ/awesome-claude-skills77k

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

Browser automation

browser
code-yeongyu/oh-my-openagent70k

browser

Drives a real browser through the omowright library from the js eval kernel: sites the user is already signed into, forms and clicks, JS-rendered pages, screenshots, web QA, extension popups, a human handoff for login, CAPTCHA or OTP, and a browser you own for scraping, bot-scored targets, network capture and QA traces. Use for any interactive browser task; not for a plain search or an unblocked static fetch.

Browser automation

agent-browser
shanraisshan/claude-code-best-practice67k

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

Browser automation

cherry-tool-guide
CherryHQ/cherry-studio52k

cherry-tool-guide

Cherry Studio first-party tool and bundled-shell routing for general agents. For straightforward local work in shell-capable sessions, run JS/TS with `bun <file>` and one-off JS tools with `bun x`; run Python with `uv run [--with <pkg>] python` and one-off Python CLIs with `uvx`; search with `rg`. Load this guide before changing project dependencies, deciding whether a tool should be ephemeral or reusable, reading or converting local Office/PDF files, coordinating or delegating across Agent Sessions, or using Cherry-owned web/browser, knowledge, persistent memory, schedules/notifications, IM channels, image generation, artifact reporting, managed CLI, skill, or MCP-server-registration capabilities—even if the user names no tool. Consult it before shell/file workarounds; live tool schemas are authoritative.

Browser automation