How to let your team watch an AI agent's computer without giving them control
Can chat, share links, Private screens and backend screenshots: what each lets a teammate see and do on Orgo, and why Can chat means watching, not chatting with the agent.
TL;DR
A workspace has three levels of access: Owner, Full access and Can chat (Workspaces, members and clients).
- Can chat is the closest to "watch only", despite its name. The person sees the screens, but Orgo's servers drop their keyboard, mouse and clipboard input, and they never get the computer's password. They can't chat with the workspace's agents either: Orgo refuses that with
403andworkspace_read_only. That takes Full access. - Share links add someone as a Can chat guest. A link works for 30 minutes and you can revoke it sooner.
- Private screens hide every screen behind a list. Opening a screen is a deliberate click, and Orgo records who opened it.
- For people who should see the screen and nothing else, show them screenshots fetched by your backend. Their browser gets images, not a password.
What does "watch without control" mean on Orgo?
It means a person can see what the agent is doing on its cloud computer, but cannot click, type, start, stop or change that computer themselves.
On Orgo you share a workspace, a group of computers with its own members, Secrets and settings. Everyone you add gets one access level for every computer in it (Workspaces, members and clients). Orgo provides the computer, not the agent: you bring Claude computer use, OpenAI's CUA, Hermes Agent, OpenClaw or your own loop. New to this? Start with What is computer use?
The catch is the name. A Can chat member cannot operate a computer directly, and they cannot use its agent either: Orgo refuses their chat messages with 403 and workspace_read_only, in the app and through the API. Only the owner and Full access members can chat with an agent, and the agent then acts on the computer with its own shell, file and screen tools. So anyone who needs to give the agent work needs Full access, which also lets them operate the computer. Plan around that.
What can each access level do?
| Owner | Full access | Can chat | |
|---|---|---|---|
role value in the API | owner | admin | member |
| Watch the screens | Yes | Yes | Yes, input dropped on the server |
| Chat with the workspace's agents (which act on the computer) | Yes | Yes | No (workspace_read_only) |
| Hear the computer's audio | Yes | Yes | Yes |
| Click and type on the screen, open the terminal | Yes | Yes | No |
| Create, change, start, stop or delete computers | Yes | Yes | No (workspace_read_only) |
| Get the computer's password | Yes | Yes | No |
| Invite people, make share links, turn on Private screens | Yes | No | No |
| Approve hourly spending | Yes | No | No |
Every workspace and computer response carries a permissions object with canView, canWrite and canManageAccess. canWrite is false for Can chat, so your code can check before it acts (Get workspace).
How the "watch" part is enforced:
- The screen stream is filtered on Orgo's proxy. For a Can chat session, only display messages reach the computer. Key, pointer and clipboard messages are dropped, and the connection is always shared, so a viewer never kicks anyone else off.
- Only the screen, stats and audio streams open. Asking for the terminal is refused and the WebSocket closes with
4001. - No password.
GET /computers/{id}returnsvnc_passwordasnull, andGET /computers/{id}/vnc-passwordanswers403withworkspace_read_only(Get VNC password). - Access changes apply mid-session. If you remove someone or change their level while they watch, their stream closes with
4003"Workspace access changed".
How do I invite someone to watch?
Every plan includes people, Free too. Each workspace holds this many people besides the owner, counted against the owner's plan (Workspaces, members and clients, Pricing):
| Plan | People per workspace |
|---|---|
| Free | 5 |
| Starter ($29/mo) | 5 |
| Growth ($99/mo) | 5 |
| Scale ($399/mo) | 25 |
| Enterprise | No limit, unless your contract sets one |
Members, share-link guests and invites that haven't expired all count.
- Put the agent's computers in one workspace. Create a workspace for the work you want to share, then create computers in it or move them there. A move keeps the computer's state and IDs, and you must own both workspaces (Create workspace, Move computer):
curl -X POST https://www.orgo.ai/api/workspaces \
-H "Authorization: Bearer $ORGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "support-agents"}'
curl -X PATCH https://www.orgo.ai/api/computers/$COMPUTER_ID/move \
-H "Authorization: Bearer $ORGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workspace_id": "'"$WORKSPACE_ID"'"}'- Open Settings → Members → Invite people, or press Invite on a computer's page (⌘⇧I). Type one or more email addresses.
- Set each row to Can chat. New rows start at Full access, so change it for anyone who should only watch.
- They get an email, sign in or create an Orgo account, and the workspace appears.
To change someone's access or remove them, use the menu next to their name under People. Removing someone with Full access does not change the computers' passwords. As the product warns, a password they copied keeps working until it's changed.
How do share links work?
In the invite sheet, press Copy link. Whoever opens the link joins the workspace as a Can chat guest. On a computer's page, Invite has the same Copy link with a choice of access, so check it says Can chat before you send it.
- The link works for 30 minutes. To end it sooner, open Settings → Members → Invite by link and press Revoke.
- The 30 minutes limit the link, not the guest. A guest who joined stays in the workspace until you remove them.
- A guest can't create workspaces, computers or invites. They get
403with codeGUEST_RESTRICTED("Sign up to create your own workspace."). - Guests count against your seats, like members.
A share link is a bearer URL: anyone holding it can join while it's live. Send it directly, not in a public channel.
What are Private screens?
Private screens is a workspace setting in Settings that only the owner can change. With it on:
- The workspace shows its computers as a list, with no live screens.
- Opening a computer's screen is a deliberate click, and Orgo records it as
computer.screen_viewed. Taking control is recorded ascomputer.control_taken. - Both show up in Settings → Activity ("viewed the screen of", "took control of").
Use it for a workspace whose computers hold other people's work, like an agency's client computers. It doesn't change what each access level can do. It makes watching deliberate and leaves an audit trail.
Can I show the screen in my own app without giving control?
Yes, with screenshots from your backend. The live VNC stream is different. An embed connects with the computer's password, and that password is root on the computer: the same value opens the terminal and the bash proxy. Setting rfb.viewOnly = true only hides the controls in that one client, and a visitor can turn it off (Embed computers).
Your options:
- Screenshots from your backend. Your server calls
GET /computers/{id}/screenshotwith your API key and passes only the image to the page. The viewer never holds a credential (Take screenshot). - A live embed on a disposable computer, behind your own sign-in, if viewers may also take over. See Embed an AI agent's computer in your app.
- Can chat access for people with Orgo accounts.
A backend poll looks like this:
import os
import requests
API = "https://www.orgo.ai/api"
headers = {"Authorization": f"Bearer {os.environ['ORGO_API_KEY']}"}
def latest_frame(computer_id: str) -> bytes:
r = requests.get(
f"{API}/computers/{computer_id}/screenshot",
params={"response_format": "binary"},
headers=headers,
timeout=30,
)
r.raise_for_status()
return r.content # serve these bytes to your page; never the API keyFor more ways to follow an agent live, see How to watch an AI agent's computer in real time.
How do I keep a script or dashboard to one workspace?
Give it a workspace-scoped API key: POST /api/keys with a workspace_id. It reaches that workspace's computers and files and nothing wider. Roles still apply on top, so a Can chat member's own key is refused every write (Authentication). Scoped API keys for AI agents covers the details.
What errors will people see?
Workspace and scope refusals are always 403. A 401 means the credential is missing or invalid. Branch on code, not on the message.
| Error | What it means | What to do |
|---|---|---|
403 This workspace is view-only. Ask the owner for write access (workspace_read_only). | A Can chat member tried to chat with an agent or change something, or asked for the computer's password | Ask the owner for Full access, or have someone with it make the change. To only watch, watch in Orgo |
403 You do not have access to this workspace. | Not a member, removed, or an unknown workspace ID | Check the ID, or ask the owner to invite you |
403 This API key cannot access this workspace (workspace_scope_mismatch). | A workspace-scoped key addressed another workspace | Use a key for the right workspace |
403 GUEST_RESTRICTED | A share-link guest tried to create a workspace, computer or invite | Sign up for an Orgo account |
403 Only the workspace owner can approve hourly spending. | Someone other than the owner created an hourly computer | Ask the owner |
SEAT_LIMIT or UPGRADE_REQUIRED on invite | The workspace is full | Upgrade the owner's plan or remove someone |
WebSocket close 4001 on the terminal | A Can chat session asked for more than the screen | Expected. Only screen, stats and audio open |
WebSocket close 4003 mid-session | The person's access changed or was removed | Reload. Ask the owner if access should still be there |
FAQ
Is there a view-only access level on Orgo?
The closest is Can chat. The levels are Owner, Full access and Can chat (Workspaces, members and clients). Can chat watches screens with input blocked on the server. Despite the name, it doesn't let a member chat with the workspace's agents: Orgo refuses that with workspace_read_only.
Can someone watch my agent without being able to click or type? Yes. Give them Can chat. Their keyboard, mouse and clipboard input never reaches the computer, and they never get its password. Despite the name, they can't chat with the agent either, so they can't ask it to do things.
How do I let someone see the screen but not talk to the agent?
Give them Can chat. Despite the name, it refuses chat with workspace_read_only. To keep them out of the workspace altogether, show them screenshots your backend fetches with GET /computers/{id}/screenshot.
How long does a share link last? 30 minutes, or until you revoke it. Someone who joined through it stays a guest until you remove them.
Does a teammate need a paid plan? No. A free Orgo account is enough, and the owner can add people on any plan, Free included.
Who pays when a Full access member chats with the agent? The workspace owner.
Is rfb.viewOnly = true enough for a view-only embed?
No. The page still holds the computer's password, which grants full control (Embed computers).
Related
- How to watch an AI agent's computer in real time
- Embed an AI agent's computer in your app
- Scoped API keys for AI agents
- Give every customer its own AI agent computer
- The Orgo computer use API