Add keyframe
add_keyframe[write] Add one keyframe (or merge into the one within a frame of atMs) on a visual clip. atMs is clip-local, and the other keyframes stay. Use to build or adjust an animation one point at a time. Not for replacing or clearing them all (use set_keyframes). Returns the changed clips' rows (with handles) and counts. Related: set_keyframes, get_timeline.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"project_id": "<project_id>"
},
"name": "add_keyframe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Frame-width % from centre (+ right). | |
| y | No | Frame-height % from centre (+ down). | |
| id | No | get_timeline handle. | |
| atMs | No | Clip-local ms (0 = the clip's start). | |
| blur | No | px at 1080p, 0–50. | |
| ease | No | Into the next one (default ease). | |
| items | No | Many clips at once, max 60, each with this tool's fields. | |
| scale | No | Multiplier, 0.01–20 (1 = fitted). | |
| opacity | No | 0–1. | |
| contrast | No | 0..2, 1 = unchanged. | |
| rotation | No | Degrees. | |
| brightness | No | 0..2, 1 = unchanged. | |
| project_id | Yes | The AskEditor project this acts on (from list_projects). | |
| saturation | No | 0..2, 1 = unchanged, 0 = greyscale. |