Agent Native

remote-desktop-testing-windows

This skill lets agents test and demo Windows GUI applications on a Daytona sandbox by syncing code, running PowerShell commands, launching programs in an…

by LettaOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (letta-ai)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
MIT (permissive)
Pin
6785511pinned Oct 9, 2026
Context cost
about 1,400 tokenswhen the skill loads
GitHub stars
148on letta-ai/skills
Scripts
1 script

What it does

“Test any GUI app or change on a Daytona Windows remote desktop sandbox. Use to launch a GUI program, sync a local project, take a screenshot, record a video, or share a clickable live-desktop link with a teammate. Generic — the only dependency is Daytona. For Linux, use remote-desktop-testing-linux.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill lets agents test and demo Windows GUI applications on a Daytona sandbox by syncing code, running PowerShell commands, launching programs in an interactive desktop session, and generating screenshots, videos, and shareable noVNC links. It provides visual verification primitives for any desktop app without requiring a local Windows machine.

When to use it

  • Verify GUI app behavior on Windows without local setup
  • Demo or screenshot cross-platform apps running on Windows
  • Debug Windows-specific desktop issues remotely
  • Create disposable test environments for visual validation

When not to

  • Testing server-only or headless applications
  • When a local Windows machine is already available
  • For Linux GUI testing, use the Linux remote-desktop skill instead

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add letta-ai/skills --skill remote-desktop-testing-windows

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install letta-ai/skills remote-desktop-testing-windows@6785511e7d3913d9ec598435a77ae637cd45fc89

Installs the commit we checked (6785511).

Copy by hand

Download the folder at 6785511 and put it in .claude/skills/remote-desktop-testing-windows for Claude Code and in .agents/skills/remote-desktop-testing-windows for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 6785511

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "remote-desktop-testing-windows" by Letta.

Source, pinned to commit 6785511e7d3913d9ec598435a77ae637cd45fc89:
https://github.com/letta-ai/skills/tree/6785511e7d3913d9ec598435a77ae637cd45fc89/tools/remote-desktop-testing-windows

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/remote-desktop-testing-windows/ for Claude Code and .agents/skills/remote-desktop-testing-windows/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/letta/remote-desktop-testing-windows

SKILL.md at the pin

---
name: remote-desktop-testing-windows
description: Test any GUI app or change on a Daytona Windows remote desktop sandbox. Use to launch a GUI program, sync a local project, take a screenshot, record a video, or share a clickable live-desktop link with a teammate. Generic — the only dependency is Daytona. For Linux, use remote-desktop-testing-linux.
---

# Remote Desktop Testing on Windows

## Overview

Generic Daytona Windows sandbox driver. It creates (or reuses) a Windows sandbox whose desktop
is streamed over noVNC, and provides the primitives for visual testing of any GUI app: sync
code, run PowerShell, launch GUI programs in the interactive desktop session, screenshot,
record video, and mint a clickable desktop link a teammate can open to drive the app.

## When to Use

- Demo or visually verify a GUI app (Electron, browser, native Win32) on Windows without a local Windows machine
- Produce a screenshot + video + clickable live-desktop link for a teammate
- Debug Windows-specific desktop behavior of a cross-platform app
- Run throwaway desktop sessions that are fully disposable (stop with `cleanup`)

## Usage

Run the bundled script with Node from the skill directory:

```bash
node scripts/remote-desktop.mjs <command> [options]
```

Credentials: `DAYTONA_API_KEY` (and optionally `DAYTONA_API_URL`/`DAYTONA_TARGET`) from the
environment or a dotenv file — `./.env` by default, override with `--env-path <file>`.
The script auto-installs `@daytona/sdk` under `~/.letta/skill-state/remote-desktop-testing-windows/`
on first use and remembers the active sandbox id there, so later commands don't need `--sandbox`.

## Typical flow

```bash
# 1. Start (or reuse) a Windows sandbox (default snapshot: "windows", the stock Daytona one)
node scripts/remote-desktop.mjs start

# 2. (Optional) push a local project to C:\Users\Public\remote-desktop\workspace
node scripts/remote-desktop.mjs sync --project-path ~/repos/my-app --sync-mode working_tree

# 3. Set up / build with PowerShell commands
node scripts/remote-desktop.mjs shell \
  --command "Set-Location C:\Users\Public\remote-desktop\workspace; npm install"

# 4. Launch the GUI app in the interactive desktop session and verify its window appeared
node scripts/remote-desktop.mjs launch \
  --command "my-app.exe --some-flag" --label my-app --wait-window "My App"

# 5. Deliverables: screenshot, video, and a clickable live-desktop link
node scripts/remote-desktop.mjs screenshot --output /tmp/demo.png
node scripts/remote-desktop.mjs record --output /tmp/demo.mp4 --mp4 --duration 12
node scripts/remote-desktop.mjs preview
```

Always confirm the result visually (open the screenshot, or check `windows` / `--wait-window`)
before reporting success — never report success from process existence alone. When sharing with
a teammate, send the `desktopUrl` from `preview` (signed noVNC link, expires ~6h; re-run
`preview` to refresh). Pass `--port <n>` to `preview` to also mint a signed URL for an app's
HTTP port.

## Commands

| Command | What it does |
| --- | --- |
| `start` | Create/reuse a sandbox and start the desktop stream. `--fresh` forces a new one. |
| `sync` | Sync `--project-path` to `C:\Users\Public\remote-desktop\workspace` (`git_archive` = committed HEAD, `working_tree` = uncommitted too; `robocopy /MIR` preserving remote `node_modules`). |
| `shell --command PS` | Run PowerShell. `--timeout <s>` for long ones. |
| `launch --command CMD` | Launch a GUI command in the interactive desktop session via `schtasks /IT` (logged to `C:\Users\Public\remote-desktop\launch-<label>.log`). `--wait-window <regex>` verifies a matching window title appears. |
| `windows` | List visible desktop windows. |
| `screenshot` | Save a PNG of the full desktop locally. |
| `preview` | Print signed `desktopUrl` (noVNC), plus `appUrl` if `--port` given. |
| `record` | Record the live desktop via Playwright + local Chrome (`--duration <s>`, `--mp4`). |
| `recording-start/stop/download` | Native Daytona recording — **unreliable on Windows** (recordings can silently vanish); prefer `record`. |
| `snapshot --snapshot <name>` | Bake the sandbox into a snapshot (Daytona snapshots Windows from STOPPED; stops, snapshots, restarts). |
| `cleanup` | Stop the active sandbox. |

## Snapshots

Cold Windows boxes are slow to set up. After installing your toolchain/deps once, bake a
prepared snapshot so future `start --snapshot <name>` runs skip setup:

```bash
node scripts/remote-desktop.mjs snapshot --snapshot my-app-windows-dev-v1
```

Revert throwaway edits before baking. Keep install-skip markers or caches **outside** the
workspace directory (e.g. directly under `C:\Users\Public\remote-desktop\`) — `sync` mirrors
with `robocopy /MIR`, which deletes anything in the workspace not present locally.

## Gotchas

- **Daytona shell/process commands run as SYSTEM.** GUI apps launched from `shell` can run
  invisibly. `launch` exists precisely for this: it wraps the command in a `.cmd` and runs it
  via `schtasks /IT /RU Administrator`, which puts the window in the interactive session that
  the noVNC link shows. Always use `launch` (not `shell`) to start GUI apps.
- Verify with `--wait-window` or `windows` + `screenshot` — a running process is not a visible
  window.
- For the shareable link, send `desktopUrl` (the interactive desktop), not a raw app-port URL.
- `record` runs Playwright locally: it resolves `playwright`/`playwright-core` from
  `--project-path` first, else auto-installs `playwright-core` into skill state, and drives the
  local Chrome binary (`--chrome-path`, default macOS Chrome). `--mp4` needs local ffmpeg.
- Maintainer note: the launch `.cmd` generation uses `String.raw` — keep it that way. A plain
  template literal turns Windows path backslashes (`\node_modules`, `\bin`) into JS escapes
  (`\n`, `\b`) and silently corrupts the launcher.
- Native `schtasks /Delete` on a missing task writes to stderr, which PowerShell's
  `$ErrorActionPreference='Stop'` escalates — the script routes it through `cmd.exe /c` to
  swallow that; do the same for any other best-effort native command you add.

From letta-ai/skills at 6785511, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at 6785511

Files

2 files, 27 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 6785511
All 50 skills from Letta

More from Letta

  • acquiring-skills

    Enables the agent to discover and install skills from multiple registries including Hermes Skills Hub, ClawHub, GitHub, and community repositories.

    Agents not labelled yet · about 3.1K tokens · pinned 6 days ago

  • browser-use

    Control a real browser using Chrome DevTools Protocol over WebSocket to navigate pages, interact with UI, fill forms, scrape sites, and capture screenshots or…

    Claude Code, Codex, Cursor +4 · about 3.2K tokens · pinned 6 days ago

  • Context Doctor

    Context Doctor investigates and repairs an agent's context including memory, system prompt, and skills by analyzing observed behavior as evidence.

    Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago

  • creating-mods

    This skill creates and edits mod files that extend local Letta instances with tools, slash commands, event handlers, custom model providers, permissions, and…

    Claude Code, Codex, Cursor +4 · about 2.4K tokens · pinned 6 days ago

  • creating-skills

    This skill guides developers in creating modular packages that extend Letta Code agent capabilities with specialized knowledge, workflows, tool integrations…

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 4.5K tokens · pinned 6 days ago

  • curating-memory-palace

    This skill lets the agent maintain a Memory Palace, a structured dashboard view that shows the user what the agent is working on, what it could do next, and…

    Agents not labelled yet · about 3.1K tokens · pinned 6 days ago

All Testing and QA skills
  • next-partial-prefetching-optimizer

    This skill optimizes Next.js client-side navigation under Partial Prefetching by defining what UI loads before and after a click.

    by VercelOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

  • Invalid--Name

    This skill cannot be described because its name format is invalid and no functional description or instructions are provided in the skill metadata.

    by CrewAIOfficial publisher

    Claude Code, Codex, Cursor +4 · about 0 tokens · pinned 6 days ago

  • chrome-devtools-cli

    This skill enables agents to automate browser interactions and inspect web pages using Chrome DevTools via command-line interface.

    by GoogleOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.9K tokens · pinned 6 days ago

  • triaging-visual-review-runs

    Inspects PostHog Visual Review screenshot regression runs that gate pull requests, helping engineers triage diff results, identify flaky stories, and decide…

    by PostHogOfficial publisher

    Claude Code, Codex, Cursor +4 · about 8.9K tokens · pinned 6 days ago

  • code-change-verification

    Runs formatting, linting, type checking, and test verification for SDK code changes after review.

    by OpenAIOfficial publisher

    Contains scripts

    Codex · about 1.3K tokens · pinned 6 days ago

  • runtime-behavior-probe

    This skill guides agents to plan and execute controlled runtime investigations with explicit user approval before each probe runs.

    by OpenAIOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 3.8K tokens · pinned 6 days ago

Open roles at Letta

4 open roles on the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use