When FRIDAY_DESKTOP_ENABLED=true, Friday registers the desktop agent tool and starts a desktop session manager at hub bootstrap.
Tool actions include:
session_infocheck_permissionsexecute(click/type/keypress/scroll/drag/screenshot/read_element/launch_app/close_app/clipboard/file_operation)inspect_elementsearch_elementsstart_recording/stop_recording
Add these to .env (or your runtime environment):
FRIDAY_DESKTOP_ENABLED=true
FRIDAY_DESKTOP_PRINCIPAL_ID=friday-desktop
FRIDAY_DESKTOP_SANDBOX_ALLOWED_ROOTS=/absolute/path/one,/absolute/path/twoNotes:
FRIDAY_DESKTOP_ENABLEDdefaults to disabled (falseunless explicitly set totrue).FRIDAY_DESKTOP_SANDBOX_ALLOWED_ROOTSdefaults to workspace root when unset.- For browser automation that should be visible on your desktop, set
FRIDAY_BROWSER_PRESENTATION_MODE=auto(recommended) orFRIDAY_BROWSER_PRESENTATION_MODE=host_chrome_visible.
Run:
npm run check:desktop-runtimeThis checks:
- env status (
FRIDAY_DESKTOP_ENABLED, sandbox roots) - platform commands used by adapters
- platform permission hints
Required binaries:
osascriptscreencapturebase64
Required system permissions (TCC):
- Accessibility
- Screen Recording
- Input Monitoring
- Automation
Recommended tools:
xdotool(input automation)- one screenshot backend:
import(ImageMagick) orgnome-screenshotorscrot base64
Required:
powershell
Some actions may require elevated privileges depending on target app/session.
- Enable env vars and restart Friday.
- Execute an agent run that invokes
desktoptool (e.g.session_infoorcheck_permissions). - Confirm:
- run has
toolCallCount > 0 agent.run.tool_endcontainstoolName=desktop- user-visible response is returned through the entry channel (API/Discord/Webchat)
- run has