← Member help · Chat

Desktop seat capture — Chat + CoTrinity (members)

What this is: Your OmniLore account can use a seat implementer on a computer you control so Chat (remote) and CoTrinity (desktop IDE) can request a screenshot of that computer under your permission.

What this is not: Free remote control of any PC, unrestricted shell, or click/type automation.


Two ways to capture

| Where you are | Client | What happens |
|---------------|--------|----------------|
| At the computer | CoTrinity (VS Code / Cursor) | Local seat agent captures the screen |
| Away from the computer | chat.omnilore.ai (OmniLore mode) | Chat asks the same agent on your machine (if online) |

Same account · same machine · same grants.


One-time setup (on the desktop machine)

Do this on the computer whose screen you want to capture (not only in the browser).

PATH note: Until install finishes, omnilore-desk / omnilore-seat-agent may not be on your shell PATH. Use the full paths below (they work from a fresh account). The installer also places convenience wrappers in ~/.local/bin — if that directory is on your PATH, bare names work afterward.

1. Enroll the device

~/omnilore/ops/bin/omnilore-desk enroll

2. Install and start the seat agent

bash ~/omnilore/ops/bin/install-seat-agent-user.sh
systemctl --user status omnilore-seat-agent

You want status active. Default listen: 127.0.0.1:8455 (local only).

The install script also places omnilore-desk and omnilore-seat-agent wrappers in ~/.local/bin. Ensure:

export PATH="${HOME}/.local/bin:${PATH}"
# or open a new login shell if your profile already adds ~/.local/bin

3. Register for Chat (so the server knows your device)

~/omnilore/ops/bin/omnilore-seat-agent register-remote
~/omnilore/ops/bin/omnilore-seat-agent heartbeat
# after install + PATH: omnilore-seat-agent register-remote && omnilore-seat-agent heartbeat

4. Allow screenshots (opt-in)

~/omnilore/ops/bin/omnilore-desk grant-capture

Without this grant, capture is denied by design.

5. Keep the agent awake

If you previously put the agent to sleep:

~/omnilore/ops/bin/omnilore-agent-wake
# or: ~/omnilore/ops/bin/omnilore-agent-grants availability

6. Optional but recommended (Wayland reliability)

sudo apt install grim

Avoids flaky GNOME screenshot portal issues on some Ubuntu seats.


Use from CoTrinity (desktop)

  1. Install CoTrinity ≥ 1.0.34 (prefer VS Code).
  2. Reload the window after install.
  3. Confirm status bar-ish seat status: online · awake · capture on/off.
  4. In CoTrinity Chat, say for example:

- “Take a screenshot”
- “Desktop probe”
- “Seat status”

  1. Or Command Palette: OmniLore: Seat screenshot / Seat implementer status.

Output path on your machine:
~/.local/share/omnilore/seat/captures/ (private files).

See also: COTRINITY_IDE.md.


Capture vs inspect (product meaning)

| You say | What happens |
|---------|----------------|
| “Take a screenshot” | capture only — private PNG + metadata (path, hash, backend) |
| “Inspect my screen” / “What’s wrong on my desktop?” | capture_inspect — same capture plus local VL diagnosis (summary, likely cause, next steps). Sensitive OCR redacted by default |
| “Fix it” | Propose only — inspect may recommend steps; OmniLore will not click/type/fix without a future owner-approved control path (L4 HOLD) |

Local:

~/omnilore/ops/bin/omnilore-desk inspect --prompt "Why is this stuck?"
# or: ~/omnilore/ops/bin/omnilore-seat-agent job capture_inspect

Chat (OmniLore mode): ask to inspect the screen, or tools seat_request(job_kind="capture_inspect") then seat_job_status.


Use from Chat (https://chat.omnilore.ai)

  1. Leave the desktop machine on with seat agent running (and logged into a desktop session).
  2. Open Chat → OmniLore mode (not Quick — Quick has no fabric tools).
  3. Prefer a new chat after tool updates.
  4. Ask in plain language, for example:

- “List my seat devices”
- “Is my seat online?”
- “Capture my desktop screenshot”

  1. Under the hood, tools are: seat_list · seat_status · seat_request · seat_job_status.

| Chat message meaning | If it fails |
|----------------------|-------------|
| No device enrolled | Run setup on the desk (above) |
| Device offline | Start seat agent / wake the PC (systemctl --user start omnilore-seat-agent) |
| Capture denied | ~/omnilore/ops/bin/omnilore-desk grant-capture |
| Agent asleep | ~/omnilore/ops/bin/omnilore-agent-wake |

Remote Chat cannot choose arbitrary save folders (fixed private path only).

See also: USER_GUIDE_CHAT_OMNILORE_AI.md.


Revoke access (lost laptop / stop implementer)

| Method | How |
|--------|-----|
| Membership portal (ops) | User → Seat implementersRevoke |
| Chat / tools | seat_revoke with your device id |
| On the machine | ~/omnilore/ops/bin/omnilore-desk revoke-remote |

After revoke, capture and remote jobs stop. To restore: re-enroll (~/omnilore/ops/bin/omnilore-desk enroll --force) and ~/omnilore/ops/bin/omnilore-seat-agent register-remote again, or ops Reactivate then heartbeat.


Security (plain language)

Operator/security detail: ops SECURITY_SEAT_CHAT_CAPTURE_2026-08-11.md.


Troubleshooting

| Symptom | Try |
|---------|-----|
| “Device offline” in Chat | PC awake; systemctl --user status omnilore-seat-agent; ~/omnilore/ops/bin/omnilore-seat-agent register-remote + heartbeat |
| Capture fails on Wayland | Install grim; ensure desktop session is logged in |
| CoTrinity has no seat tools | Extension ≥ 1.0.34; reload window; seat agent running |
| Portal/GNOME screenshot glitches | Host package updates; grim fallback — residual is desktop OS, not Chat “down” |
| omnilore-desk: command not found | Use full path ~/omnilore/ops/bin/omnilore-desk …, or re-run bash ~/omnilore/ops/bin/install-seat-agent-user.sh and ensure ~/.local/bin is on PATH |

Check: ~/omnilore/ops/bin/omnilore-desk status on the machine.


Related member pages

| Page | Why |
|------|-----|
| GETTING_STARTED.md | First steps |
| FEATURES_USER.md | Feature list |
| WHAT_OMNILORE_CAN_CANNOT_DO.md | Honesty |
| KNOWN_LIMITATIONS.md | Limits |
| COTRINITY_IDE.md | CoTrinity install honesty |

End member desktop seat capture guide.

Plane separation (agents)

Do not confuse this feature with Core monorepo Unreleased plans or celld research. See docs/NOTE_SEAT_IMPLEMENTER_VS_MONOREPO_VS_CELLD_2026-08-13.md.