manage_markers
Manage note markers on a timeline. Current contract: marker-note-v2. A marker is a point-or-range comment anchored to timeline frames — for example "fix audio dip here" or "this cut is too tight". Each marker has a frame position, optional duration, and one user-visible field: note.
Two marker scopes:
Ruler markers (default, scope:"project"): anchored at an absolute timeline frame. Stay where they are when clips move or get edited. Use for section labels, act breaks, timeline-level reminders.
Clip markers (scope:"item"): anchored to a specific clip via itemId. Travel with the clip across move, trim (either side), playback-rate change, split, and duplicate, staying glued to the same source moment. Use for clip-specific notes like "color grade this shot" or "tighten the cut here".
Use this tool to:
list: show note markers on the active timeline (both scopes), or on timelineId when provided.
get: fetch one marker by prefix id.
create: drop a note marker. Pass itemId to make it a clip marker; omit to make it a ruler marker. Defaults: durationFrames=0 (point). fromFrame is always in timeline-frame coordinates — the tool converts internally when itemId is set.
batch_create / bulk_create: drop multiple note markers in one call (each entry can target a different itemId or none).
update: change an existing marker's fromFrame, durationFrames, and/or note.
batch_update / bulk_update: update multiple existing markers in one call.
delete: remove an existing marker by prefix id, or several at once via markerIds (batch_delete / bulk_delete are aliases) — one call for the whole cleanup, never one call per marker.
transcript-backed notes: for exact transcript quotes, pass transcriptSegments plus optional notePrefix instead of free-text note. The tool copies transcript text and fills fromFrame from the first selected segment unless you pass fromFrame explicitly.
Choosing scope:
"mark this clip" / "note on this shot" / "remember to fix this take" → clip marker (set itemId from preview_timeline items).
"section header at 0:30" / "act break" / "TODO at frame X" → ruler marker (omit itemId).
When the user names or selects a specific clip, prefer clip marker.
Evidence-bound placements: when the user asks for a marker at a transcript/caption phrase, visual moment, current selection, or other evidence-derived location, create only after you have exact frame/timestamp evidence from the user or a current tool result. If lookup fails, report that no marker was placed; do not use frame 0 or any placeholder fallback unless the user explicitly asked for start-of-timeline.
Temporary/probe markers are still real project markers. If you create one for verification, delete it before optional work or the final answer; the delete result confirms removal.
By default markers are scoped to the active timeline. If the user names or identifies a non-active timeline, pass timelineId from manage_timelines list instead of switching active timelines. Results echo the target timeline and the resulting scope so you can verify placement without an extra list/read call. Only pass the schema fields for this tool: action, timelineId, fromFrame, itemId, optional durationFrames, markerId, markerIds, note, markers, updates, transcriptSegments, transcriptTrack, and notePrefix.
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": {
"action": "<action>"
},
"name": "manage_markers"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Marker note text (required for create unless transcriptSegments is used) | |
| action | Yes | list, get, create, batch_create, bulk_create, update, batch_update, bulk_update, delete, batch_delete, or bulk_delete | |
| itemId | No | Optional timeline item (clip) id or prefix. When set, creates/identifies a clip marker anchored to that clip instead of the timeline ruler. Use for notes that should travel with a clip across move/trim/split/duplicate. Omit for a ruler marker. | |
| markers | No | Markers to create in one call (required for batch_create/bulk_create) | |
| updates | No | Markers to update in one call (required for batch_update/bulk_update) | |
| markerId | No | Target marker prefix id from action=list (required for get/update; delete takes this or markerIds) | |
| fromFrame | No | Integer timeline frame to anchor the marker at (required for create unless transcriptSegments is used). When itemId is set this is still the timeline frame — the tool converts internally so the marker stays glued to the clip's source content. For evidence-bound requests, do not use 0 as an unknown fallback. | |
| markerIds | No | Several marker prefix ids to remove in one delete/batch_delete call. Use this instead of repeated single deletes. | |
| projectId | No | Project for this call (full ID or unambiguous prefix). Explicit-timeline calls never change the target of later calls; legacy project selection applies otherwise. | |
| notePrefix | No | Optional label prefix when transcriptSegments derives the note body | |
| timelineId | No | Timeline ID or prefix to target without switching active timelines. Use for non-active timeline marker work. | |
| durationFrames | No | Duration in frames (0 = point marker, default 0) | |
| transcriptTrack | No | Track filter for transcriptSegments, e.g. V1 or A1 | |
| transcriptSegments | No | Active Script segment ids/ranges from timeline.md, e.g. "3-4"; note text is copied from read_script output |