remote-desktop-testing-linux
Test GUI applications on a Linux desktop sandbox by syncing code, launching programs, capturing screenshots and videos, and generating shareable desktop links.
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,300 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 Linux (Ubuntu xfce4 + noVNC) 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 Windows, use remote-desktop-testing-windows.”
Generated summary from the skill's own text
Test GUI applications on a Linux desktop sandbox by syncing code, launching programs, capturing screenshots and videos, and generating shareable desktop links. The skill manages a Daytona sandbox running xfce4 with noVNC streaming, providing primitives for visual verification of cross-platform apps without a local Linux environment.
When to use it
- Visually verify GUI apps (Electron, browser, X11) on Linux before release
- Debug Linux-specific desktop behavior of cross-platform applications
- Create screenshots, videos, and live-desktop links for team collaboration
- Run temporary desktop sessions for throwaway testing and cleanup
When not to
- Testing headless backend services or CLI tools without GUI
- Environments where Daytona credentials or API access are unavailable
- Long-running persistent desktop sessions requiring snapshot management
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-linuxInstalls 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-linux@6785511e7d3913d9ec598435a77ae637cd45fc89Installs the commit we checked (6785511).
Copy by hand
Download the folder at 6785511 and put it in .claude/skills/remote-desktop-testing-linux for Claude Code and in .agents/skills/remote-desktop-testing-linux 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-linux" by Letta. Source, pinned to commit 6785511e7d3913d9ec598435a77ae637cd45fc89: https://github.com/letta-ai/skills/tree/6785511e7d3913d9ec598435a77ae637cd45fc89/tools/remote-desktop-testing-linux 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-linux/ for Claude Code and .agents/skills/remote-desktop-testing-linux/ 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-linux
SKILL.md at the pin
--- name: remote-desktop-testing-linux description: Test any GUI app or change on a Daytona Linux (Ubuntu xfce4 + noVNC) 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 Windows, use remote-desktop-testing-windows. --- # Remote Desktop Testing on Linux ## Overview Generic Daytona Linux desktop sandbox driver. It creates (or reuses) a sandbox running an xfce4 desktop streamed over noVNC, and provides the primitives for visual testing of any GUI app: sync code, run shell commands, launch GUI programs on the live desktop, 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 X11) on Linux without a local Linux desktop - Produce a screenshot + video + clickable live-desktop link for a teammate - Debug Linux-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-linux/` 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 desktop sandbox. Default: image daytonaio/sandbox:0.8.0, cpu 2 / mem 4 / disk 5. node scripts/remote-desktop.mjs start # 2. (Optional) push a local project to /home/daytona/remote-desktop/workspace node scripts/remote-desktop.mjs sync --project-path ~/repos/my-app --sync-mode working_tree # 3. Set up / build with shell commands (runs bash in the sandbox) node scripts/remote-desktop.mjs shell \ --command "cd /home/daytona/remote-desktop/workspace && npm install" # 4. Launch the GUI app on the live desktop and verify its window appeared node scripts/remote-desktop.mjs launch \ --command "./my-app --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. `--fresh` forces a new one. | | `sync` | Sync `--project-path` to `/home/daytona/remote-desktop/workspace` (`git_archive` = committed HEAD, `working_tree` = uncommitted too; preserves remote `node_modules`). | | `shell --command SH` | Run a bash command. `--timeout <s>` for long ones. | | `launch --command CMD` | Launch a GUI command on the xfce4 desktop (detached, `DISPLAY` set, logged to `/home/daytona/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 (installs ffmpeg in-sandbox on first use). | | `snapshot --snapshot <name>` | Bake the sandbox into a snapshot (stops, snapshots, restarts). | | `cleanup` | Stop the active sandbox. | ## Sizing and snapshots - Daytona's **default Linux sandbox is tiny (cpu 1 / mem 1 / disk 3GB)**. This skill creates from the desktop-capable image `daytonaio/sandbox:0.8.0` with `--cpu 2 --memory 4 --disk 5` by default; raise them for big projects (`--cpu 4 --memory 8 --disk 10`). Disk is capped at **10GB per sandbox**. - `resources` cannot be combined with a snapshot — `--snapshot <name>` creates with whatever size was baked in. Use `snapshot` to bake a prepared box (deps installed, caches warm) so future `start --snapshot <name>` runs skip setup. Revert throwaway edits before baking. ## Gotchas - Electron/Chromium apps need `--no-sandbox` inside the container, and often `--disable-gpu --disable-dev-shm-usage` too; put those flags in your `launch --command`. - `launch` runs the command detached with `DISPLAY` pointed at the live desktop (detected from `/tmp/.X11-unix`, falls back to `:0`). Check the launch log via `shell` if nothing appears. - For the shareable link, send `desktopUrl` (the interactive desktop), not a raw app-port URL — the app URL only serves HTTP and shows nothing of the desktop. - `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. - The base image has `xfce4-terminal`, `chromium`, and `xeyes` available for quick desktop sanity checks (e.g. `launch --command "xfce4-terminal" --wait-window Terminal`).
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.md5.8 KB · 79bfdddec166
- scripts/
- remote-desktop.mjs21 KB · ad991ecdd390
2 files, 26 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)