Repository navigation
w3bs fleet desktop: headless Kubuntu desktop in Docker for AI agents (CLI 0.1.7) - #61
Merged
Merged
Conversation
…s, watched on /fleet (CLI 0.1.7) On a server with no desktop, `w3bs fleet desktop start [--control]` gives it one and shares it on w3bs.org/fleet: press View screen. Asked for while dev3 (Ubuntu 26.04 VM, no GPU) had nothing to show. - desktop/packaging/kubuntu: ubuntu:26.04 image with Kubuntu's KDE (KWin, Plasma, Konsole, KDE portal), TigerVNC 1.16's w0vncserver built from source (Ubuntu ships 1.15, which has no Wayland server), and the Agentic Desktop Layer started Enabled (MCP 127.0.0.1:7802). - No GPU: KWin drives the kernel's vkms virtual display and Mesa composites with OpenGL on the CPU. (KWin nested in Xvnc and on a vgem render node both fall back to QPainter, which has no screencast.) `start` loads vkms via sudo once and persists it in modules-load.d. - VNC only on a 0600 Unix socket in ~/.local/share/w3bs/desktop/vnc: no TCP port, no password. The agent's --vnc now takes unix:/path. - KWIN_WAYLAND_NO_PERMISSION_CHECKS inside the container: Ubuntu's KWin 6.6 does not trust the KDE portal there, so w0vncserver and the desktop layer got no screen; everything in that compositor is the one agent desktop. - `w3bs fleet desktop start|stop|status|logs|agent <name>`; `agent` registers an MCP agent on the desktop and prints the claude mcp add line. Image tag = hash of the embedded build files. - docs/fleet-screen.md: "A headless desktop for AI agents"; /fleet page hints. Proof: on dev3, `w3bs fleet desktop start --control` -> production shows it shared, reachable, listening; the desktop layer typed into Konsole and the VNC socket showed Plasma + the text. Rig (desktop/tests/rig/fleet-screen.sh) 11/11 over TCP and 11/11 with VNC_UNIX=1. CLI tests pass (+3), server tests 32/32. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On a server with no desktop, one command gives it one and shares it on w3bs.org/fleet:
What runs: a Kubuntu (ubuntu:26.04) container with KDE Plasma, Konsole, the Agentic Desktop Layer (Enabled, MCP 127.0.0.1:7802) and TigerVNC's
w0vncserver, which is built from source in the image because Ubuntu's TigerVNC 1.15 has no Wayland server.No GPU needed: KWin drives the kernel's
vkmsvirtual display, and Mesa composites with OpenGL on the CPU.startloads vkms once through sudo and persists it. The two alternatives I tried both fell back to QPainter, which can't screencast:VNC: only on a 0600 Unix socket. There's no TCP port and no password. The agent's
--vncnow acceptsunix:/path.Known compromise:
KWIN_WAYLAND_NO_PERMISSION_CHECKS=1inside the container. Ubuntu's KWin 6.6 doesn't trust the KDE portal there, so the screencast had no source. Everything in that compositor belongs to the one agent desktop.Proof:
w3bs fleet desktop start --controltook 12 s with the image cached. Production shows dev3 shared, reachable and listening.desktop/tests/rig/fleet-screen.shpasses 11/11 over TCP and 11/11 withVNC_UNIX=1.🤖 Generated with Claude Code