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…
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.”
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-windowsInstalls 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@6785511e7d3913d9ec598435a77ae637cd45fc89Installs 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.
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 6785511Files
- SKILL.md6.1 KB · 788454160e64
- scripts/
- remote-desktop.mjs21 KB · ce2a5299e48a
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 6785511More 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
Related in Testing and QA
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
- Research Engineer / Scientist, Post-Training
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Self-Improvement
San Francisco, California, United States (On-site)
- Software Engineer, Agent Harness
San Francisco, California, United States (On-site)
- Research Engineer / Scientist, Memory
San Francisco, California, United States (On-site)