events
Manage named instants in video recordings: import recorder JSON, add markers manually, resolve their addresses, and locate where each one plays after cuts.
Instructions
Named instants in a recording — the anchors a screen recording has instead of words.
An event is (name, seconds into the clip's own recording): sent,
typing_started, a keystroke. No clip_id counts every clip's; clip_id
alone lists one clip's, each with the address other tools take (name,
or name#k when the name repeats, k from 0); event resolves one address
and echoes three neighbours either side.
source imports a recorder's JSON and REPLACES the clip's events of the
names it brings (other names are kept), so a repeat import is a no-op and a
marks file and a keystroke file combine. A recorder usually logs wall-clock stamps: pass
origin naming the key that holds the recording's start. A set with any
event outside the clip is refused whole, because a wrong clock moves every
event by the same amount. name + at adds one event by hand.
Events index the source, so no cut invalidates one; locate with event=
says where one plays now, and present: false means it was cut.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Seconds into the recording for the one event being added. | |
| name | No | With `at`, the event to add. With a bare-list `source`, what those times are. One token, no '#'. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| plan | No | Resolve the whole call and report what it would do, writing nothing. Prefer it over doing the thing and undoing it. | |
| clear | No | Remove every event on this clip. | |
| event | No | Resolve one address — `name`, or `name#k` when the name repeats — and echo it with its neighbours, writing nothing. | |
| offset | No | Seconds subtracted from every imported time, after `origin`. | |
| origin | No | A key in the imported object holding the recording's zero, subtracted from every time — a recorder's clock is usually the wall clock. | |
| source | No | A recorder's event file to import: a JSON object of name → seconds (or → a list of seconds), or a bare list of seconds with `name`. Replaces this clip's events of the names the file brings; other names are kept. | |
| clip_id | No | The clip whose events to read or write. Omit it to count every clip's. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||