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.
Iris
Website screenshots for your agents. Install this and every agent you talk to can see rendered web pages — any site's, and your own Officer's — instead of inferring them from source code.
Built around iris, a Rust CLI that renders pages in a real Chrome-family browser (Brave, Chromium and Chrome all work) and captures them as images: full pages, single elements, phone and tablet viewports, light and dark.
What installing gets you
- The
irisCLI, compiled from source on first start and put on the standard path. iris-browser, a launcher that lets captures reuse the web sessions you are signed into.- An affordance and a skill, so agents know the tool exists and how to drive it — you never have to explain it to them.
There is no screen and no dock tile: the consumer is the agent's shell, not you.
Authenticated captures
Sessions are yours to grant, by signing in — never by handing credentials to an agent. The desktop
plugin's browser keeps a persistent profile at ~/.config/officer/browser-profile; sign in to a site
there once, and captures ride a read-only copy of those cookies from then on. Each account's sessions
live in that account's own home, so nobody captures with anyone else's logins.
Requirements
- Rust 1.88 or newer. The install brings in your distribution's
cargo; if that is older than 1.88 (Ubuntu's currently is), the sidecar refuses with the exact rustup one-liner to run — checkpm2 logs officer-iris. - A Chrome-family browser. Not installed by this plugin: the desktop plugin is the intended source, since its browser is also where you sign in. Any Brave/Chromium/Chrome already on the machine works for unauthenticated captures.
State of this plugin, plainly
- The build-and-supervise sidecar, the wrapper, the affordance and the skill are written but not yet verified on a live install — this plugin has not been through the install table on a real machine.
- The wrapper's session-seeding (copying cookies into the capture profile) is a design that needs live verification against how iris launches its browser; if iris supplies its own profile directory the wrapper seeds that instead of overriding it, but neither branch has run yet.
- The desktop plugin this integrates with is not published yet; until it is, the persistent profile is
whatever you put at
~/.config/officer/browser-profileyourself. - No screen, no API, no database — deliberate for now, not missing.