Skip to main content
Record and replay solves one specific problem: you know how to do it, but explaining it is harder than doing it. Some workflows are fiddly, depend on exact UI positions, and take longer to describe than to perform. So perform it once, with the expert watching, and turn that into a skill.

Activation

profy-record-and-replay is user_selectable: true with requires: { desktop_connected: true }. Enable it in the plugin panel and run Profy Desktop.
Native event-stream recording is macOS-only. Calling it elsewhere returns:
The capture depends on the macOS event tap (the profy-event-tap native binary), which has no cross-platform equivalent.

Three tools

What gets captured

Three streams run in parallel, all written to ~/.profy/recordings/{sessionId}/:
Recording captures the whole desktop, not just the current app. All apps, all windows, every click and keystroke. Switching apps or minimizing the chat does not interrupt it — only event_stream_stop or the 30-minute timeout ends a session.Which means: avoid unrelated private activity while recording, and be especially careful with password entry.

Voice narration is the most valuable stream

With events alone, the expert sees “clicked at (840, 312)” and has no idea why. The transcript is timestamped, so aligning it with events supplies the missing layer:
“Now I’m filtering this column out, because last quarter’s data doesn’t count toward the total.”
A narrated recording distills into a skill with decision criteria. An unnarrated one distills into steps replayed in order. That is a large difference. So: talk while you work. If mic permission is denied, recording proceeds without that stream.

The standard flow

1

Tell the expert you want to record

“I’m going to record something — turn it into a skill.” The expert calls event_stream_start and then ends its turn.
2

Go do the thing, narrating as you go

Switch to the target app and complete the workflow normally. An overlay indicates recording is active. Say your reasoning out loud throughout.
3

Come back and say you're done

The expert calls event_stream_stop and reads the events, snapshots, and transcript.
4

Confirm which part to keep

The recording contains everything that happened, including your detours, misclicks, and the window you glanced at. The expert summarizes the workflow it understood and turns it into a skill only after you confirm.
5

Use it next time

The skill lands in your global skill library (user/*) and is available in any expert’s conversation.
The expert ends its turn during recording rather than waiting. This is a hard design constraint: you cannot demonstrate anything while the model holds the turn, and polling both burns tokens and blocks the very thing being recorded. So the expert appearing to “stop” is correct — it is waiting for you to come back.

Skills bundled with the plugin

Beyond recording itself, the plugin ships app-specific skills used to interpret particular interfaces during replay: record-replay (recording-to-skill methodology), cua-driver (driver-layer reference), cua-recording (the cross-platform driver recording path), app-clock, app-numbers, app-spotify, app-notion, app-music, app-iphone-mirroring.

Failures and what to do

Start calls waitUntilCapturing() and only reports success once the tap is genuinely attached. That check exists because a denied permission used to produce a confident “started” with an empty session, which is far harder to diagnose than an error.

How it differs from Chrome workflow reuse

Both attack repetitive work, but at different scopes:

Keep reading

Computer Use

The layer that executes during replay

Chrome

Workflow reuse inside the browser

Skill catalog

The three ownership tracks for skills

Plugin catalog

All 28 built-in plugins and their activation conditions