Fruitctlxoxd.ai

Fruitctl

Fruitctl gives an agent a remote desktop over MCP. A native macOS controller connects to the target's VNC service. The agent can observe the screen, read OCR, move the pointer, and send keyboard or mouse input through one shared protocol.

Start with the installation guide and its copy-and-paste prompt. Check compatibility before selecting a controller or adapter. The agent adapter guide lists configuration paths and the separate IntelliJ/Junie installation surfaces. The architecture describes ownership, credential custody, session control, and the separate target indicator.

Declarative consumers use the Home Manager module. Review licensing and dependency notices before distributing native artifacts.

The canonical source is xoxd-ai/fruitctl. The public documentation is live at fruitctl.clients.xoxd.ai. Anonymous canonical delivery, public DNS and hostname TLS have been checked. The first canonical delivery preserved machine-readable files exactly; its HTML contained an edge detection script. The build now requests no-transform response headers, and full HTML hash acceptance requires a deployment with those headers.

Adoption contract

The site exports agents.md, llms.txt, adoption.json, adoption.toon, versions.json, and the installation prompt from reviewed public sources. Moving discovery URLs point to immutable GitHub source and release artifacts; they are not the bytes a consumer pins.

Read product scope and service objectives for the current milestones and the distinction between Lab targets and public best-effort support.

Current status

The immutable v0.1.0-alpha.1 runtime preview is available with bundled Node.js 24.21.0. Archive integrity, rootless adapter installation on Linux x64 and synthetic MCP images on Linux x64/Darwin arm64 have scoped evidence. The runtime needs an existing Darwin native controller. Real agent rendering, signed native distribution, physical overlay exclusion, the SSH journey and measured service objectives remain pending. A generated MCP entry alone proves no desktop action worked.