# GhostDesk

> Give any AI agent a full desktop — it sees the screen, clicks, types, and runs apps like a human. Automate anything with a UI: browsers, legacy software, internal tools. No API needed. One Docker comm

- **URL**: https://www.freshcrate.ai/projects/GhostDesk
- **Author**: YV17labs
- **Category**: MCP Servers
- **Latest version**: `v7.4.1` (2026-05-19)
- **License**: NOASSERTION
- **Source**: https://github.com/YV17labs/GhostDesk
- **Language**: Python
- **GitHub**: 44 stars, 8 forks
- **Registry**: github
- **Tags**: `agentic`, `ai-agent`, `automation`, `autonomous-agent`, `browser-automation`, `claude`, `computer-use`, `docker`, `python`

## Description

Give any AI agent a full desktop — it sees the screen, clicks, types, and runs apps like a human. Automate anything with a UI: browsers, legacy software, internal tools. No API needed. One Docker command.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v7.4.1` | 2026-05-19 | High | Operator-supplied `LANG` (e.g. `fr_CA.UTF-8`, `de_DE.UTF-8`) is honored again at boot. The Ubuntu 26.04 base regression that crashed any non-default locale on `docker run` is neutralized inside the entrypoint.  ### Fixed - **Container restart loop when `-e LANG=` is set to anything other than `en_US.UTF-8` or `C.UTF-8`.** Ubuntu 26.04 (introduced in v7.3.0) ships `rust-coreutils 0.8.0`, whose `icu_collator` panics with `index out of bounds` when `locale-gen` runs while `LC_COLLATE` points at |
| `v7.3.1` | 2026-05-03 | High | ## Highlights  - **Wallpaper renders on Ubuntu 26.04 prod images.** `swaybg` 26.04 routes loaders through `libglycin` + `bubblewrap`; Docker's default AppArmor profile blocks `pivot_root` with a message glycin doesn't recognize, so it kept retrying the sandbox and only the fallback colour painted. Shadowed `bwrap` with a stub that emits the message glycin DOES recognize, forcing the no-sandbox loader path. - **Wallpaper migrated PNG → SVG and redesigned (Aurora).** `swaybg` rasterizes the SVG |
| `v7.3.0` | 2026-05-02 | High | # Highlights  - **`app_running` MCP tool.** Agents now check for already-open windows before `app_launch` — no more duplicate Firefox / foot / mousepad instances stacked across a session. - **Idle session watchdog.** Server-side cleanup walks the Sway tree and gracefully closes client windows after `GHOSTDESK_IDLE_TIMEOUT` seconds (default 30 min) of inactivity, sparing Sway / mako / wayvnc / the MCP server itself. - **Ubuntu 26.04 LTS + noVNC 1.7.0** in both runtime and devcontainer images, |
| `v7.2.0` | 2026-04-22 | High | ## Highlights  - **Reliable `screen_changed` feedback.** Input tools no longer return false negatives. Polling now compares the full screen at quarter resolution via a bounding-box ratio, so any real UI change is caught regardless of where it lands — particularly for keyboard actions, where focus is unrelated to the mouse cursor and the previous zone-based check was systematically wrong. - **New `mouse_move` tool.** Lets agents trigger hover-only UI reactions (CSS `:hover` states, dropdowns t |
| `v7.1.0` | 2026-04-19 | High | Native MCP surfaces the server wasn't exposing yet (resources, lifespan warm-up, icons, tool annotations), stricter HTTP-transport security, finer-grained tool feedback through MCP `notifications/message`, and a consolidated system-level brief delivered through the spec-canonical `instructions` field.  ### Added  - **MCP resources.** `ghostdesk://apps` (JSON catalogue of installed GUI apps) and `ghostdesk://clipboard` (current clipboard text) mirror the `app_list` / `clipboard_get` tools so |
| `v7.0.1` | 2026-04-15 | High | ### Fixed - **Missing `envsubst` in runtime images.** `entrypoint.sh` uses `envsubst` to inject `GHOSTDESK_SCREEN_WIDTH` / `GHOSTDESK_SCREEN_HEIGHT` into the Sway config, but the binary was not part of the runtime stack — containers booted into a crash loop (`envsubst: command not found`). Added `gettext-base` to both `docker/base/Dockerfile` and `.devcontainer/Dockerfile`. |
| `v7.0.0` | 2026-04-15 | High | Major platform overhaul: migration from X11 / Openbox to a native **Wayland / Sway** stack, end-to-end TLS, per-request coordinate model space for mixed frontier + local model fleets, and a simplified agent-first documentation story.  ## Highlights  - **Native Wayland / Sway stack.** The devcontainer and runtime images now boot a Wayland session managed by supervisord. `wl-copy` / `wl-paste` replace the X11 clipboard path and `grim` replaces the X11 capture tool. The input stack drops `dotoo |
| `v6.0.0` | 2026-04-10 | High | ## New Features  - **Grid ruler overlay** — `screenshot()` now accepts `grid=True` to draw a coordinate ruler in the margins of a region crop (major ticks every 50px on X / 20px on Y, alternating magenta/cyan minor gridlines), letting smaller vision models read click coordinates straight off the labels instead of estimating pixel offsets - **Small-model prompt** — New dedicated prompt with an explicit click-coordinate recipe and workflow built around the grid ruler, targeted at compact vision |
| `v5.0.0` | 2026-04-08 | High | ## New Features  - **Visual feedback system** — Mouse and keyboard actions now return `screen_changed` and `reaction_time_ms`, giving agents immediate confirmation of their interactions - **Ruler-based coordinate system** — New `screen/rulers.py` produces zoomed screenshots with coordinate rulers (major ticks every 50px, minor ticks every 25px) for precise, reliable targeting - **`process_status` tool** — New shell tool to inspect the state and logs of processes launched via `launch()` - ** |
| `v4.1.0` | 2026-04-07 | Medium | ## New Features  - **Base Docker image** — Introduced a dedicated base Docker image to separate foundational layers from the application image, improving build times and layer caching - **Split CI workflow** — CI pipeline now builds base and latest images independently, enabling more granular and efficient deployments - **Gnome Keyring support** — Added `gnome-keyring-daemon` to supervisor for secure credential storage within the container  ## Refactoring  - **Shared Docker scripts** — M |

## Dependency audit

- **Score**: 78/100
- **Total deps**: 3
- **Resolved**: 0
- **Unresolved**: 3
- **License conflicts**: 0
- **Warnings**: 1
- **Scanned**: 2026-05-04

## Citation

- HTML: https://www.freshcrate.ai/projects/GhostDesk
- Markdown: https://www.freshcrate.ai/projects/GhostDesk.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/GhostDesk/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
