VeilBrowserDocs

Window sync

Work in one profile's window and have the same clicks, scrolling and typing happen in other profiles on the same computer.

Window sync repeats what you do in one browser window, the leader, in the windows of other profiles, the followers. Click a button, scroll a feed or type into a form once, and every follower does the same.

Windows first

Window sync runs in the desktop agent on Windows computers. macOS and Linux follow later.

Start it

  1. Open the profiles you want to sync on the same computer, from the dashboard or with veil start.
  2. Go to Devices, open that computer, and find Window sync.
  3. Pick the leader, tick the followers, and choose Start sync.

The section shows Syncing with the leader and its followers while it runs. Stop sync ends it. It also ends on its own when the leader closes or the last follower does; a follower that closes just leaves the group.

What is mirrored

MirroredNot mirrored
Mouse clicks, double clicks and right clicksThe address bar, tabs and browser menus
Dragging, e.g. selecting text or moving a sliderExtension pop-ups
The scroll wheelInput inside cross-origin frames (ads, embedded checkouts)
Keys typed into pages, shortcuts such as Ctrl+ATyping with an IME (Chinese, Japanese, Korean input methods)

Input reaches each follower's visible tab at the same position as in the leader. Keep every window maximized on the same screen, as profiles open by default, so the same element is under the same point in each; a smaller window or a different zoom level puts clicks elsewhere. To move to another site, navigate each window yourself or click the same link in the leader.

Followers receive the input as real browser input events, and nothing is added to the pages a site can see.

From a script

The agent's loopback API runs the same sync, by session id or profile id:

terminal
KEY=$(jq -r .localApiKey "$LOCALAPPDATA/VeilBrowser/config.json")
curl -s -X POST http://127.0.0.1:38923/sync \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{ "leader": "<profile-id>", "followers": ["<profile-id>", "<profile-id>"] }'

curl -s http://127.0.0.1:38923/sync -H "X-API-Key: $KEY"           # status
curl -s -X DELETE http://127.0.0.1:38923/sync -H "X-API-Key: $KEY" # stop

From the cloud, with a dashboard session, POST /v1/devices/{id}/sync takes { "leaderProfileId": "…", "followerProfileIds": ["…"] } and DELETE /v1/devices/{id}/sync stops it. Both answer 202 with a command id; the device's sync field shows what is running once the agent has started. Up to 20 followers.

Was this page helpful?

On this page