pastilhas 53b5ae1a60 AGENTS.md, so both harnesses find the same guidance
opencode discovers AGENTS.md and nothing else; claude code discovers CLAUDE.md.
this repo had neither, so an agent sent to change something here arrived with no
guidance at all under either.

it deliberately does NOT repeat README.md. that file says what the plugin is,
for someone deciding whether to install it. this one answers the other question:
i have to change something in here, what will i break.

the facts in it are read from the repository rather than recalled — the panel
keys from web/panels.ts, the tables from db/schema.ts, the permission keys, the
host binaries and the route claims from manifest.ts. presence is the declaration
everywhere in this system, so the file says what the platform will actually
conclude from these files existing.

CLAUDE.md beside it is a pointer, not a copy: two copies drift and the stale one
is the one somebody reads.
2026-08-27 07:24:07 +00:00
2026-08-21 00:41:24 +00:00
2026-08-21 00:41:24 +00:00
2026-08-21 00:41:24 +00:00
2026-08-21 00:41:24 +00:00

Desktop

Mirror this machine's display in the browser — the real session, not a second one.

Officer attaches to the physical screen the owner is logged into, so what you see remotely is what is on the monitor. There is one desktop, not a separate remote one that drifts from it.

Owner only, and not by policy. There is a single physical display and it belongs to the server owner. Every route in this plugin is refused to anyone else, because "share the desktop" would mean showing a second person the owner's own screen.

It does not set up your desktop for you. The plugin mirrors a graphical session that already exists. On a headless server there is nothing to mirror, and a script is included (setup/setup-desktop.sh) that installs GNOME, forces Xorg — x11vnc cannot capture Wayland — and enables auto-login so a session owns the display. It needs root and a reboot, so you run it yourself.

Not working yet. The desktop's WebSocket is not mounted: it was switched off in the platform before this became a plugin, and a plugin cannot currently claim a WebSocket provider. Installing this gets you the sidecar and the panel; the connection between them is the missing piece. BLOCKERS.md says exactly where it stands.

Requires x11vnc, which the installer checks for.

S
Description
Mirror this machine's display in the browser — the real session, not a second one
Readme
58 KiB
Languages
TypeScript 81.8%
Shell 18.2%