Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nusomi.com/llms.txt

Use this file to discover all available pages before exploring further.

The Nusomi desktop apps record everything in front of the user — every app, every window, including non-browser surfaces (Excel, SAP, Citrix, Tableau, custom internal tools). They speak the same session/frame/event model as the browser and SDK paths.

Install

curl -sL https://nusomi.com/install/macos | sh
  • Apple-notarized, hardened runtime, sandboxed where possible.
  • Auto-updates on a 7-day cadence (configurable).
  • First launch prompts for Screen Recording + Accessibility permissions in System Settings → Privacy & Security.

What gets captured

SurfaceFrame sourceAX tree
Native macOS appsScreenCaptureKitAXUIElement
Native Windows appsWindows.Graphics.CaptureUIA
Linux GTK / Qtpipewire (Wayland) / XComposite (X11)AT-SPI
Citrix / RDP / VNCCapture surface onlyNone — vision pass extracts events
Browsers (when in foreground)Native window capture + extension hand-off if installedDOM via the browser extension

Frame rate

Default capture is adaptive: 30 fps when the screen is changing, dropping to 1–5 fps when the screen is idle. This keeps storage and bandwidth bounded without losing fidelity during actual work. To pin a fixed rate:
nusomi config set capture.fps 30

Trigger modes

The desktop app supports four ways to start a session:
ModeHow
ManualClick the menu bar icon → “Start recording.”
HotkeyDefault ⌥⇧R (mac) / Alt+Shift+R (win/linux).
Workflow triggerApp focuses a window matching a configured rule (e.g. bundle_id == com.salesforce.app).
SDKA script calls nusomi.sessions.create(...) and the desktop app picks it up.
Workflow triggers are configured per workspace in the dashboard or via the CLI:
nusomi workflows trigger add process_invoice \
  --window-title "Invoice — *" \
  --bundle-id com.intuit.QuickBooks

Multi-display

By default, only the display containing the foreground window is captured. To capture all displays:
nusomi config set capture.displays all

Permissions

Permissions are intentionally surfaced at first launch — Nusomi will not silently capture without them.
PermissionWhy
Screen RecordingFrames
AccessibilityAX tree (deterministic event extraction)
Input MonitoringClick/key event timestamps
If a permission is denied, capture continues with whatever’s available. The accuracy table on the frames & events page tells you how that affects event quality.

CLI

The desktop apps ship a nusomi CLI:
nusomi sessions list           # recent sessions
nusomi sessions show ses_...   # detail
nusomi config get / set / list # local config
nusomi doctor                  # permissions + connectivity check
nusomi self-host               # configure pointer to a self-hosted control plane

Self-hosted

Point a desktop app at a self-hosted control plane:
nusomi self-host \
  --control-plane https://nusomi.internal.acme.com \
  --api-key nsk_local_...
See self-hosted overview.

Privacy controls

The desktop tray exposes:
  • A pause button (frame capture suspends; events still stream if the SDK is driving).
  • A redact next 30 seconds button — useful when an operator needs to type a credential.
  • A delete this session button (only for sessions still in recording state).