Skip to main content
Glama

screens

Alpha: interfaces may change before 1.0.

Isolated desktops for agents. screens runs a per-user daemon that starts disposable Linux X screens, each inside its own sandbox: its own X server, network namespace, /tmp, home and session bus. An agent sees and drives a screen through a CLI or an MCP server; the screen never touches your own display, input, focus, clipboard, session bus or files.

Linux first. Each screen is a sandbox-runtime wrap holding Xvnc (Unix socket only), the apps and a small helper. Network access is closed except for the domains you allow.

Requirements

  • Linux with unprivileged user namespaces

  • Node.js 22 or later

  • bwrap (bubblewrap), rg (ripgrep), socat, Xvnc (TigerVNC), xdotool, dbus-run-session

  • A browser to run inside screens, such as google-chrome-stable

  • For container screens (--backend oci, the only backend on macOS): rootless Podman or Docker (Docker Desktop, OrbStack, Colima), or Apple container on Apple silicon

Related MCP server: glovebox-mcp

Install

pnpm add -g @aurigax-ai/screens

CLI in brief

screens create --allow example.com     # prints a screen id, an agent token and a viewer token
export SCREENS_TOKEN=<agent token>
screens launch <id> -- google-chrome-stable https://example.com
screens screenshot <id> --out shot.png
screens click <id> 640 400
screens type <id> 'hello'
screens key <id> ctrl+l
screens windows <id>
screens list                           # ids, size, owner and state; never a token
screens stop <id>

Exit codes: 0 ok, 2 usage, 3 not found, 4 refused (token, input owner, limit), 5 backend failure. --json prints one JSON object. The full contract (verbs, flags, JSON shapes, the daemon socket protocol) is in CONTRACT.md.

The daemon starts on the first command and listens on $XDG_RUNTIME_DIR/screens/daemon.sock. At most maxScreens screens run at once (default 4, 1 to 16, set in ~/.config/screens/config.json).

MCP

screens mcp --screen <id> is an MCP stdio server for one screen, with the token in SCREENS_TOKEN. It offers computer (the actions and arguments of Anthropic's computer_toolset_20260801, screenshots scaled so the longest side is at most 1280 pixels and coordinates in that space), screen_launch and screen_windows.

{
  "mcpServers": {
    "screen": {
      "command": "screens",
      "args": ["mcp", "--screen", "<id>"],
      "env": { "SCREENS_TOKEN": "<agent token>" }
    }
  }
}

Development

pnpm install
pnpm run lint
pnpm run typecheck
pnpm test
pnpm run test:integration

See AGENTS.md for the rules every change follows.

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Exposes Anthropic's computer-use action surface (screenshot, click, move, keyboard, clipboard, batch) against a persistent desktop display via MCP stdio protocol. Enables AI agents to control a virtual desktop environment through natural language instructions.
    24
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A sandboxed computer-use MCP server that lets an AI agent drive a real browser and desktop apps, confined to a nested X11 window so it cannot touch your real screen or files.
    19
    13
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables an AI agent to see and control a Linux desktop via Wayland/Hyprland, providing screenshots, structured desktop state, pointer/keyboard input, semantic window/workspace tools, and a policy engine for safe execution.
    Apache 2.0