Agent Skillsdifferent-ai/openwork › daytona-dev

daytona-dev

GitHub

提供Daytona云沙箱环境的开发、启动及调试指南,涵盖Electron应用、noVNC访问、CDP自动化及验证流程。

.opencode/skills/daytona-dev/SKILL.md different-ai/openwork

Trigger Scenarios

询问Daytona环境搭建 需要启动或调试Electron应用 配置noVNC或CDP连接 获取沙箱URL或服务状态

Install

npx skills add different-ai/openwork --skill daytona-dev -g -y
More Options

Non-standard path

npx skills add https://github.com/different-ai/openwork/tree/dev/.opencode/skills/daytona-dev -g -y

Use without installing

npx skills use different-ai/openwork@daytona-dev

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill daytona-dev -a claude-code -g -y

安装 repo 全部 skill

npx skills add different-ai/openwork --all -g -y

预览 repo 内 skill

npx skills add different-ai/openwork --list

SKILL.md

Frontmatter
{
    "name": "daytona-dev",
    "description": "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."
}

Skill: Daytona Dev Environment

Launch the OpenWork 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-openwork-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.
  • openwork-eval-secrets:/daytona-secrets for provider keys and eval-only secrets.
  • openwork-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

2. Get the noVNC URL

daytona preview-url openwork-dev -p 6080

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

4. Get other URLs

# Den Web dashboard (if Den stack is running)
daytona preview-url openwork-dev -p 3005

# CDP debugging endpoint
daytona preview-url openwork-dev -p 9825

What's Running

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)

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.openworklabs.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 openwork-dev

# Check logs
daytona exec openwork-dev 'tail -50 /tmp/electron.log'
daytona exec openwork-dev 'tail -50 /tmp/vite.log'
daytona exec openwork-dev 'tail -50 /tmp/start-vnc.log'

# Inspect Electron CDP targets
daytona exec openwork-dev 'curl -s http://127.0.0.1:9825/json/list'

# Capture a persistent screenshot artifact
daytona exec openwork-dev 'bash .devcontainer/capture-daytona-screenshot.sh'

# Restart just the Electron app
daytona exec openwork-dev 'bash -lc "pkill -f electron || true; pkill -f electron-dev || true"'
daytona exec openwork-dev 'bash -lc "cd /workspace && bash /opt/openwork-daytona/start-daytona-electron.sh --detach"'

# Stop the sandbox (preserves state)
daytona stop openwork-dev

# Start it again
daytona start openwork-dev

# Delete (destroys everything)
daytona delete openwork-dev

Updating the Code

Inside the sandbox, the repo is at /workspace. To pull latest:

daytona ssh openwork-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 && OPENWORK_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/openwork-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 OpenWork 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.

Version History

  • ff5d298 Current 2026-08-20 11:35

Same Skill Collection

.opencode/skills/agent-first-screenshots/SKILL.md
.opencode/skills/browser-automation/SKILL.md
.opencode/skills/build-a-witness/SKILL.md
.opencode/skills/cloud-dashboard-walkthrough/SKILL.md
.opencode/skills/create-plugin/SKILL.md
.opencode/skills/daytona-chrome-cdp/SKILL.md
.opencode/skills/daytona-cloud-instance/SKILL.md
.opencode/skills/daytona-cloud-server/SKILL.md
.opencode/skills/daytona-electron-den/SKILL.md
.opencode/skills/daytona-electron-test/SKILL.md
.opencode/skills/daytona-flow-validator/SKILL.md
.opencode/skills/daytona-recording-artifacts/SKILL.md
.opencode/skills/daytona-secrets-volume/SKILL.md
.opencode/skills/daytona-seeded-cloud-demo/SKILL.md
.opencode/skills/daytona-windows-cert/SKILL.md
.opencode/skills/diagnose-a-red-run/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/prove-a-pr/SKILL.md
.opencode/skills/publish-evidence/SKILL.md
.opencode/skills/run-evals/SKILL.md
.opencode/skills/run-tests/SKILL.md
.opencode/skills/shadcn/SKILL.md
.opencode/skills/upload-photo/SKILL.md
.opencode/skills/write-a-spec/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md

Metadata

Files
0
Version
757601b
Hash
4f0f3dad
Indexed
2026-08-20 11:35

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-17 05:45
浙ICP备14020137号-1