How it works
Short screen summaries are supplied to the conversational LLM alongside camera and audio context, so the PAL can respond to what the participant is sharing on its next turn.Two different directionsScreen share here means the user shares with the PAL. That is different from Presentation, where the PAL publishes slides for participants to watch.
Requirements
With Raven on, no extra perception fields are required for basic “see my screen” behavior.
Control access to screen share
Screen sharing is available by default. To let participants use it, include a screen-share control in your frontend. TheConversation block includes one, or you can add ScreenShareButton from @tavus/cvi-ui to a custom layout.
OptionalIf you do not need visual perception at all, set
perception_model to "off". This also turns off camera perception.What the PAL receives
With Raven-2, the latest screen and camera observations accompany the user’s words in a<user_visual_analysis> block. Visual history from the shared screen is supplied separately in system context. For a custom LLM, messages can include:
<camera_timeline> and <camera_events>. Sections appear when observations are available; their text is not a fixed JSON schema. With Raven-1, rolling screen descriptions instead appear in a system message inside <user_screen>. See custom LLM perception context.
Raven-2 can use visual history to answer questions such as “What error was shown before I opened settings?” Visual history is scoped to the current conversation and may be incomplete or delayed. It does not guarantee that every frame, page, or value is remembered.
Raven also answers prompted visual questions against the screen when the user is sharing (for example, “what error is on my screen?”), routing those to the screenshare stream instead of the webcam when that is the right source.
Make the PAL act on what it sees
Objectives with visual modality
For structured goals that depend on the shared screen, use objectives with"modality": "visual":
Screen-awareness queries (Raven-2)
screen_awareness_queries focus Raven-2 on shared-screen content such as error dialogs, forms, or IDE state. Use visual_awareness_queries separately for the camera feed. Pair these queries with a system prompt that tells the PAL how to react when those cues appear.
Screen tools (Raven-2)
Create a registry tool withorigin: "screen" and put its trigger conditions in the tool’s description. Attach it to a PAL configured with raven-2. Screen tools run in parallel with the conversational LLM and emit conversation.perception_tool_call with modality: "screen". See Tool Calling for Perception for a complete example.
Frontend tips
- Prefer the CVI UI
Conversationblock if you want share controls and sensible layout out of the box. - For a custom Daily React layout, show the shared screen as the main surface and keep face video available (often as PiP) while they share.
- Ask users to share a specific window or tab when possible. Full-desktop shares work, but a focused tab is usually cleaner for the PAL to read.
Related
- Perception: Raven configuration
- Models → Raven: model overview
- Presentation: PAL shares slides to the user

