Daytona Electron Against Den

SkillDev tools

This skill lets your AI test an Electron desktop app against a Den running in the cloud, with each side in its own Daytona sandbox. Once added, your AI can run end-to-end tests that cover both the desktop app and the cloud Den, and confirm the two work together with unified proof.

Available today. Use it from your connected AI after setup.

After adding it, point your AI at your Electron app and your cloud Den and ask it to run an end-to-end test.

Then ask your AI: use the Daytona Electron Against Den skill

What your AI can do with it

  • Run end-to-end tests of an Electron desktop app against a cloud Den
  • Set up two separate Daytona sandboxes, one for the desktop app and one for the cloud Den
  • Confirm that the desktop app and the cloud Den work together
  • Produce unified proof covering both the desktop and cloud sides
  • Hand off between desktop and cloud steps during a test run

What this skill tells your AI

The instructions your AI receives, as published by devin-axis/ipollowork in .opencode/skills/daytona-electron-den/SKILL.md and read by ahel’s review.

Use this skill for full-stack cloud behavior: one Daytona sandbox runs Den, and a separate Daytona sandbox runs the real Electron app pointed at that Den server.

Start The Server Sandbox

Use the server skill first:

bash .devcontainer/test-server-on-daytona.sh <branch-or-commit>

Record the printed values:

  • SERVER_SANDBOX
  • DEN_WEB_URL
  • DEN_API_URL
  • DEN_WORKER_PROXY_URL

Validate server health:

curl -sf "$DEN_WEB_URL/api/den/health"
curl -sf "$DEN_API_URL/health"

Start Electron Against Den

bash .devcontainer/test-on-daytona.sh <branch-or-commit> \
  --den-base-url "$DEN_WEB_URL" \
  --den-api-base-url "$DEN_API_URL" \
  --artifacts-volume

Add --require-signin when the expected behavior must be signed-out until cloud auth completes. Add --record-video --recording-name <name> when PR evidence is needed.

Validate Bootstrap

Before testing cloud behavior, prove Electron is using the Daytona Den server:

JSON.stringify({ hash: location.hash, text: document.body.innerText.slice(0, 1000) })

Then inspect the desktop bootstrap file:

daytona exec "$SANDBOX" -- 'cat /workspace/.ipollowork-daytona/desktop-bootstrap.json'

Expected: baseUrl is DEN_WEB_URL and apiBaseUrl is DEN_API_URL, not production.

Desktop Handoff Pattern

For seeded/demo auth, create the handoff URL from the Den API, then paste it into Electron's Cloud Account sign-in code field. Do not rely on browser navigation alone as proof that desktop auth completed.

Validate all of these:

  • Electron Cloud Account shows signed-in user/org state.
  • Den API logs show handoff exchange or /v1/me/orgs.
  • Electron UI can refresh cloud providers/workers/marketplace without production URLs.

Marketplace, Policy, Provider Sync

For each cloud feature, use the fraimz loop:

  1. Assert server seed or API state.
  2. Act in Electron UI.
  3. Assert Electron visible state.
  4. Assert Den logs/API state if relevant.
  5. Capture screenshot or recording evidence.

Minimum assertions:

  • Marketplace: package appears, install/remove changes local extension state.
  • Org policy: restriction appears in Electron and persists after reload.
  • Provider sync: Den-managed provider appears as imported/credential-ready, model can be selected, and task metadata uses the Den provider id.
  • Worker proxy: worker/proxy failures affect only worker UI and recover after proxy restart.

Evidence

Report both server and Electron proof:

  • Den Web/API health checks.
  • Relevant /tmp/den-*.log snippets.
  • Electron CDP assertions and screenshots.
  • Recording URL if requested.

Signals

GitHub stars
6k
Forks
1k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
daytona-electron-den
Source
github.com/devin-axis/ipollowork