Tool tree
gradeNot graded
get_image_stateAnswer
Read-only inspection of the current AgentCut image project state, including source dimensions, aspect ratio, transforms, adjustments, active text layers, and edit history summary.
View tool JSON
{
"name": "get_image_state",
"kind": "answer",
"impl": "imperative",
"description": "Read-only inspection of the current AgentCut image project state, including source dimensions, aspect ratio, transforms, adjustments, active text layers, and edit history summary.",
"inputSchema": {
"type": "object",
"properties": {}
}
}set_image_aspect_ratioAction
Change the visible aspect ratio of the loaded image project (e.g. 4:5 for Instagram, 1:1 square, 16:9 landscape, 9:16 vertical, or original). The visible canvas updates immediately.
View tool JSON
{
"name": "set_image_aspect_ratio",
"kind": "act",
"impl": "imperative",
"description": "Change the visible aspect ratio of the loaded image project (e.g. 4:5 for Instagram, 1:1 square, 16:9 landscape, 9:16 vertical, or original). The visible canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"ratio": {
"type": "string",
"enum": [
"original",
"1:1",
"4:5",
"16:9",
"9:16"
],
"description": "Target aspect ratio format"
}
},
"required": [
"ratio"
]
}
}rotate_imageAction
Rotate the image project by the specified degrees (e.g. 90, 180, 270). The visible canvas updates immediately.
View tool JSON
{
"name": "rotate_image",
"kind": "act",
"impl": "imperative",
"description": "Rotate the image project by the specified degrees (e.g. 90, 180, 270). The visible canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"degrees": {
"type": "number",
"description": "Degrees to rotate the image (e.g. 90)"
}
},
"required": [
"degrees"
]
}
}flip_imageAction
Flip the image horizontally or vertically. Visible canvas updates immediately.
View tool JSON
{
"name": "flip_image",
"kind": "act",
"impl": "imperative",
"description": "Flip the image horizontally or vertically. Visible canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"horizontal": {
"type": "boolean",
"description": "Flip horizontally"
},
"vertical": {
"type": "boolean",
"description": "Flip vertically"
}
}
}
}adjust_imageAction
Adjust brightness, contrast, saturation, grayscale, or blur on the currently loaded AgentCut image. Only supplied fields are changed. The visible editor updates immediately.
View tool JSON
{
"name": "adjust_image",
"kind": "act",
"impl": "imperative",
"description": "Adjust brightness, contrast, saturation, grayscale, or blur on the currently loaded AgentCut image. Only supplied fields are changed. The visible editor updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"brightness": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Brightness offset (-100 to 100)"
},
"contrast": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Contrast offset (-100 to 100)"
},
"saturation": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Saturation offset (-100 to 100)"
},
"grayscale": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Grayscale percentage (0 to 100)"
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 20,
"description": "Blur radius in px (0 to 20)"
}
}
}
}add_image_textAction
Add a new text overlay layer to the image with semantic position ("top-left", "top-center", "top-right", "center", "bottom-left", "bottom-center", "bottom-right") and font size. Returns created textId. The text layer appears immediately on canvas.
View tool JSON
{
"name": "add_image_text",
"kind": "act",
"impl": "imperative",
"description": "Add a new text overlay layer to the image with semantic position (\"top-left\", \"top-center\", \"top-right\", \"center\", \"bottom-left\", \"bottom-center\", \"bottom-right\") and font size. Returns created textId. The text layer appears immediately on canvas.",
"inputSchema": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Text string to display"
},
"position": {
"type": "string",
"enum": [
"top-left",
"top-center",
"top-right",
"center",
"bottom-left",
"bottom-center",
"bottom-right"
],
"description": "Semantic placement on image"
},
"fontSize": {
"type": "number",
"minimum": 12,
"maximum": 120,
"description": "Font size in px"
},
"color": {
"type": "string",
"description": "Hex color string"
},
"fontFamily": {
"type": "string",
"enum": [
"Inter",
"Poppins",
"Montserrat",
"Bebas Neue",
"Playfair Display",
"DM Serif Display",
"Caveat",
"Pacifico"
],
"description": "Font family for the text layer. Use bold display fonts such as Bebas Neue for poster headlines, serif fonts such as Playfair Display for editorial styling, and Caveat/Pacifico for handwritten or expressive text."
}
},
"required": [
"content"
]
}
}update_image_textAction
Update an existing image text layer by textId (e.g. modify content, semantic position, font size, or opacity). The canvas updates immediately.
View tool JSON
{
"name": "update_image_text",
"kind": "act",
"impl": "imperative",
"description": "Update an existing image text layer by textId (e.g. modify content, semantic position, font size, or opacity). The canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"textId": {
"type": "string",
"description": "ID of the text layer to update"
},
"content": {
"type": "string",
"description": "New text content"
},
"position": {
"type": "string",
"enum": [
"top-left",
"top-center",
"top-right",
"center",
"bottom-left",
"bottom-center",
"bottom-right"
],
"description": "New semantic position"
},
"fontSize": {
"type": "number",
"description": "New font size in px"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Layer opacity"
},
"fontFamily": {
"type": "string",
"enum": [
"Inter",
"Poppins",
"Montserrat",
"Bebas Neue",
"Playfair Display",
"DM Serif Display",
"Caveat",
"Pacifico"
],
"description": "Font family for the text layer. Use bold display fonts such as Bebas Neue for poster headlines, serif fonts such as Playfair Display for editorial styling, and Caveat/Pacifico for handwritten or expressive text."
}
},
"required": [
"textId"
]
}
}remove_image_textAction
Remove a text layer from the image by textId. Visible canvas updates immediately.
View tool JSON
{
"name": "remove_image_text",
"kind": "act",
"impl": "imperative",
"description": "Remove a text layer from the image by textId. Visible canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"textId": {
"type": "string",
"description": "ID of the text layer to remove"
}
},
"required": [
"textId"
]
}
}undo_image_editAction
Revert the latest image editing action while preserving earlier edits. The canvas updates immediately.
View tool JSON
{
"name": "undo_image_edit",
"kind": "act",
"impl": "imperative",
"description": "Revert the latest image editing action while preserving earlier edits. The canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {}
}
}redo_image_editAction
Re-apply the next image edit from the redo stack. The canvas updates immediately.
View tool JSON
{
"name": "redo_image_edit",
"kind": "act",
"impl": "imperative",
"description": "Re-apply the next image edit from the redo stack. The canvas updates immediately.",
"inputSchema": {
"type": "object",
"properties": {}
}
}export_imageAction
Render and export the final image project containing all transforms, aspect ratio crop, adjustments, and text layers to PNG or JPG.
View tool JSON
{
"name": "export_image",
"kind": "act",
"impl": "imperative",
"description": "Render and export the final image project containing all transforms, aspect ratio crop, adjustments, and text layers to PNG or JPG.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"png",
"jpg"
],
"description": "Export format (\"png\" or \"jpg\")"
}
}
}
}get_video_stateAnswer
Read-only inspection of the current AgentCut video project state, including source duration, aspect ratio, trim bounds, playback speed, volume, timed text overlays, and edit history.
View tool JSON
{
"name": "get_video_state",
"kind": "answer",
"impl": "imperative",
"description": "Read-only inspection of the current AgentCut video project state, including source duration, aspect ratio, trim bounds, playback speed, volume, timed text overlays, and edit history.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_timelineAnswer
Read-only compact chronological overview of the video timeline, active clips, timed text overlays, and playhead position.
View tool JSON
{
"name": "get_timeline",
"kind": "answer",
"impl": "imperative",
"description": "Read-only compact chronological overview of the video timeline, active clips, timed text overlays, and playhead position.",
"inputSchema": {
"type": "object",
"properties": {}
}
}trim_videoAction
Trim the video by setting in-point and out-point timestamps (in seconds). For example, to remove the first 2 seconds of a 10s video, set startTime=2, endTime=10. The visible timeline updates immediately.
View tool JSON
{
"name": "trim_video",
"kind": "act",
"impl": "imperative",
"description": "Trim the video by setting in-point and out-point timestamps (in seconds). For example, to remove the first 2 seconds of a 10s video, set startTime=2, endTime=10. The visible timeline updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"startTime": {
"type": "number",
"minimum": 0,
"description": "New start timestamp in seconds"
},
"endTime": {
"type": "number",
"minimum": 0.1,
"description": "New end timestamp in seconds"
}
},
"required": [
"startTime",
"endTime"
]
}
}set_video_aspect_ratioAction
Set the aspect ratio for the video project (e.g. 9:16 for Reels/Shorts/TikTok, 16:9 for landscape, 1:1 square, 4:5 vertical, or original). Preview frame adapts immediately.
View tool JSON
{
"name": "set_video_aspect_ratio",
"kind": "act",
"impl": "imperative",
"description": "Set the aspect ratio for the video project (e.g. 9:16 for Reels/Shorts/TikTok, 16:9 for landscape, 1:1 square, 4:5 vertical, or original). Preview frame adapts immediately.",
"inputSchema": {
"type": "object",
"properties": {
"ratio": {
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1",
"4:5",
"original"
],
"description": "Target video aspect ratio"
}
},
"required": [
"ratio"
]
}
}set_video_speedAction
Set video playback speed rate (supported: 0.5, 0.75, 1, 1.25, 1.5, 2). Timeline and video preview playback rate update immediately.
View tool JSON
{
"name": "set_video_speed",
"kind": "act",
"impl": "imperative",
"description": "Set video playback speed rate (supported: 0.5, 0.75, 1, 1.25, 1.5, 2). Timeline and video preview playback rate update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"speed": {
"type": "number",
"enum": [
0.5,
0.75,
1,
1.25,
1.5,
2
],
"description": "Playback speed factor"
}
},
"required": [
"speed"
]
}
}set_video_volumeAction
Set audio volume level (0 to 100) and/or mute status. Visible audio control updates immediately.
View tool JSON
{
"name": "set_video_volume",
"kind": "act",
"impl": "imperative",
"description": "Set audio volume level (0 to 100) and/or mute status. Visible audio control updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"volume": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Volume level from 0 to 100"
},
"muted": {
"type": "boolean",
"description": "Whether audio is muted"
}
}
}
}add_video_textAction
Add a timed text overlay to the video active between startTime and endTime seconds with semantic position ("bottom-center", "top-left", etc.). The text appears in preview and on timeline immediately.
View tool JSON
{
"name": "add_video_text",
"kind": "act",
"impl": "imperative",
"description": "Add a timed text overlay to the video active between startTime and endTime seconds with semantic position (\"bottom-center\", \"top-left\", etc.). The text appears in preview and on timeline immediately.",
"inputSchema": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Text content to overlay"
},
"startTime": {
"type": "number",
"minimum": 0,
"description": "Start time in seconds"
},
"endTime": {
"type": "number",
"minimum": 0.1,
"description": "End time in seconds"
},
"position": {
"type": "string",
"enum": [
"top-left",
"top-center",
"top-right",
"center",
"bottom-left",
"bottom-center",
"bottom-right"
],
"description": "Semantic placement on frame"
},
"fontSize": {
"type": "number",
"description": "Font size in px"
},
"fontFamily": {
"type": "string",
"enum": [
"Inter",
"Poppins",
"Montserrat",
"Bebas Neue",
"Playfair Display",
"DM Serif Display",
"Caveat",
"Pacifico"
],
"description": "Font family for the text layer. Use bold display fonts such as Bebas Neue for poster headlines, serif fonts such as Playfair Display for editorial styling, and Caveat/Pacifico for handwritten or expressive text."
}
},
"required": [
"content",
"startTime",
"endTime"
]
}
}update_video_textAction
Update an existing video text overlay by textId (content, position, font size, start time, or end time). Visible preview and timeline update immediately.
View tool JSON
{
"name": "update_video_text",
"kind": "act",
"impl": "imperative",
"description": "Update an existing video text overlay by textId (content, position, font size, start time, or end time). Visible preview and timeline update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"textId": {
"type": "string",
"description": "ID of the video text overlay to update"
},
"content": {
"type": "string",
"description": "New text content"
},
"position": {
"type": "string",
"enum": [
"top-left",
"top-center",
"top-right",
"center",
"bottom-left",
"bottom-center",
"bottom-right"
]
},
"fontSize": {
"type": "number"
},
"startTime": {
"type": "number"
},
"endTime": {
"type": "number"
},
"fontFamily": {
"type": "string",
"enum": [
"Inter",
"Poppins",
"Montserrat",
"Bebas Neue",
"Playfair Display",
"DM Serif Display",
"Caveat",
"Pacifico"
],
"description": "Font family for the text layer. Use bold display fonts such as Bebas Neue for poster headlines, serif fonts such as Playfair Display for editorial styling, and Caveat/Pacifico for handwritten or expressive text."
}
},
"required": [
"textId"
]
}
}remove_video_textAction
Remove a timed text overlay from the video project by textId. Visible preview and timeline update immediately.
View tool JSON
{
"name": "remove_video_text",
"kind": "act",
"impl": "imperative",
"description": "Remove a timed text overlay from the video project by textId. Visible preview and timeline update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"textId": {
"type": "string",
"description": "ID of the video text layer to remove"
}
},
"required": [
"textId"
]
}
}add_video_keyframeAction
Add an animation keyframe to the current AgentCut video project. Keyframes can animate text-layer position, scale and opacity or animate the video frame's position and scale. Use multiple keyframes at different timestamps to create motion, fades, zooms and pans. The visible preview and timeline update immediately.
View tool JSON
{
"name": "add_video_keyframe",
"kind": "act",
"impl": "imperative",
"description": "Add an animation keyframe to the current AgentCut video project. Keyframes can animate text-layer position, scale and opacity or animate the video frame's position and scale. Use multiple keyframes at different timestamps to create motion, fades, zooms and pans. The visible preview and timeline update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"targetType": {
"type": "string",
"enum": [
"text",
"video"
],
"description": "Target to animate (\"text\" for a text layer, \"video\" for the video frame)"
},
"targetId": {
"type": "string",
"description": "Text layer ID to animate (required if targetType is \"text\")"
},
"time": {
"type": "number",
"minimum": 0,
"description": "Timestamp in seconds for the keyframe on timeline"
},
"properties": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "X position percentage (0 to 100)"
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Y position percentage (0 to 100)"
},
"scale": {
"type": "number",
"minimum": 0.25,
"maximum": 3,
"description": "Scale multiplier (0.25 to 3)"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Opacity (0 to 1)"
}
},
"description": "Visual properties to animate at this timestamp"
}
},
"required": [
"targetType",
"time",
"properties"
]
}
}update_video_keyframeAction
Update an existing video keyframe by keyframeId (modify timestamp or visual properties). Uses safe partial updates: omitted properties preserve existing values. Visible preview and timeline update immediately.
View tool JSON
{
"name": "update_video_keyframe",
"kind": "act",
"impl": "imperative",
"description": "Update an existing video keyframe by keyframeId (modify timestamp or visual properties). Uses safe partial updates: omitted properties preserve existing values. Visible preview and timeline update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"keyframeId": {
"type": "string",
"description": "ID of the keyframe to update"
},
"time": {
"type": "number",
"minimum": 0,
"description": "New timestamp in seconds"
},
"properties": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"scale": {
"type": "number",
"minimum": 0.25,
"maximum": 3
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"description": "Properties to update (omitted properties remain unchanged)"
}
},
"required": [
"keyframeId"
]
}
}remove_video_keyframeAction
Remove an animation keyframe from the video project by keyframeId. The visible preview and timeline update immediately.
View tool JSON
{
"name": "remove_video_keyframe",
"kind": "act",
"impl": "imperative",
"description": "Remove an animation keyframe from the video project by keyframeId. The visible preview and timeline update immediately.",
"inputSchema": {
"type": "object",
"properties": {
"keyframeId": {
"type": "string",
"description": "ID of the keyframe to remove"
}
},
"required": [
"keyframeId"
]
}
}get_video_keyframesAnswer
Read-only inspection of animation keyframes in the video project, ordered chronologically. Supports optional filtering by targetType ("text" | "video") or targetId.
View tool JSON
{
"name": "get_video_keyframes",
"kind": "answer",
"impl": "imperative",
"description": "Read-only inspection of animation keyframes in the video project, ordered chronologically. Supports optional filtering by targetType (\"text\" | \"video\") or targetId.",
"inputSchema": {
"type": "object",
"properties": {
"targetType": {
"type": "string",
"enum": [
"text",
"video"
],
"description": "Optional filter by targetType (\"text\" or \"video\")"
},
"targetId": {
"type": "string",
"description": "Optional filter by text targetId"
}
}
}
}split_videoAction
Split the current video clip at the given timestamp into two distinct segments. The timeline updates immediately.
View tool JSON
{
"name": "split_video",
"kind": "act",
"impl": "imperative",
"description": "Split the current video clip at the given timestamp into two distinct segments. The timeline updates immediately.",
"inputSchema": {
"type": "object",
"properties": {
"time": {
"type": "number",
"minimum": 0.1,
"description": "Timestamp in seconds where clip should be split"
}
},
"required": [
"time"
]
}
}delete_video_segmentSensitive Action
Delete a split clip segment by segmentId from the timeline.
View tool JSON
{
"name": "delete_video_segment",
"kind": "transact",
"impl": "imperative",
"description": "Delete a split clip segment by segmentId from the timeline.",
"inputSchema": {
"type": "object",
"properties": {
"segmentId": {
"type": "string",
"description": "ID of the segment to delete"
}
},
"required": [
"segmentId"
]
}
}undo_video_editAction
Revert the latest video editing action (such as speed, trim, or text) while preserving earlier edits. The visible video project updates immediately.
View tool JSON
{
"name": "undo_video_edit",
"kind": "act",
"impl": "imperative",
"description": "Revert the latest video editing action (such as speed, trim, or text) while preserving earlier edits. The visible video project updates immediately.",
"inputSchema": {
"type": "object",
"properties": {}
}
}redo_video_editAction
Re-apply the next video edit from the redo stack. The timeline and preview update immediately.
View tool JSON
{
"name": "redo_video_edit",
"kind": "act",
"impl": "imperative",
"description": "Re-apply the next video edit from the redo stack. The timeline and preview update immediately.",
"inputSchema": {
"type": "object",
"properties": {}
}
}export_videoAction
Render and export the current AgentCut video project (prefers QuickTime-compatible MP4 when supported by the browser MediaRecorder, falling back to WebM). The rendered export bakes in all active trims, aspect ratio crop, video keyframe motion/zoom, and timed animated text layers. The resulting video file is downloaded and structured metadata is returned.
View tool JSON
{
"name": "export_video",
"kind": "act",
"impl": "imperative",
"description": "Render and export the current AgentCut video project (prefers QuickTime-compatible MP4 when supported by the browser MediaRecorder, falling back to WebM). The rendered export bakes in all active trims, aspect ratio crop, video keyframe motion/zoom, and timed animated text layers. The resulting video file is downloaded and structured metadata is returned.",
"inputSchema": {
"type": "object",
"properties": {}
}
}