{"ok":true,"site":{"host":"visually.deeeplearn.com","url":"https://visually.deeeplearn.com/","type":"live","desc":"Visually","tools":[{"name":"visually_get_editor_state","kind":"answer","impl":"imperative","description":"Get the active page, page list, element summaries, current selection, zoom, and undo/redo availability.","title":"Inspect Visually editor","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_list_templates","kind":"answer","impl":"imperative","description":"List premade design templates, optionally filtered by name or category. Returns dimensions and identifiers accepted by visually_apply_template.","title":"List Visually templates","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Optional case-insensitive template name search."},"category":{"type":"string","description":"Optional exact template category."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_apply_template","kind":"act","impl":"imperative","description":"Replace the active page with a premade template. The change is undoable.","title":"Apply a Visually template","inputSchema":{"type":"object","properties":{"templateId":{"type":"string","description":"Template identifier from visually_list_templates."}},"required":["templateId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_add_text","kind":"act","impl":"imperative","description":"Add and select an editable text element on the active page. The change is undoable.","title":"Add text to Visually","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"Text content, up to 10,000 characters."},"name":{"type":"string","description":"Optional layer name."},"x":{"type":"number","description":"Left position in page pixels."},"y":{"type":"number","description":"Top position in page pixels."},"width":{"type":"number","description":"Text box width in pixels.","minimum":1,"maximum":10000},"height":{"type":"number","description":"Text box height in pixels.","minimum":1,"maximum":10000},"fontSize":{"type":"number","description":"Font size in pixels.","minimum":1,"maximum":1000},"fontFamily":{"type":"string","description":"CSS font family."},"fill":{"type":"string","description":"CSS text color."},"align":{"type":"string","description":"Horizontal alignment.","enum":["left","center","right","justify"]}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_add_shape","kind":"act","impl":"imperative","description":"Add and select a rectangle, circle, ellipse, triangle, polygon, or star on the active page. The change is undoable.","title":"Add a shape to Visually","inputSchema":{"type":"object","properties":{"shape":{"type":"string","description":"Shape kind.","enum":["rect","circle","ellipse","triangle","polygon","star"]},"name":{"type":"string","description":"Optional layer name."},"x":{"type":"number","description":"Left position in page pixels."},"y":{"type":"number","description":"Top position in page pixels."},"width":{"type":"number","description":"Shape width in pixels.","minimum":1,"maximum":10000},"height":{"type":"number","description":"Shape height in pixels.","minimum":1,"maximum":10000},"fill":{"type":"string","description":"CSS fill color."},"stroke":{"type":"string","description":"Optional CSS stroke color."},"strokeWidth":{"type":"number","description":"Optional stroke width.","minimum":0,"maximum":1000},"cornerRadius":{"type":"number","description":"Corner radius for rectangles.","minimum":0,"maximum":5000}},"required":["shape"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_select_elements","kind":"act","impl":"imperative","description":"Select active-page elements by their IDs. Pass an empty array to clear selection.","title":"Select Visually elements","inputSchema":{"type":"object","properties":{"elementIds":{"type":"array","description":"Element IDs from visually_get_editor_state.","items":{"type":"string"},"uniqueItems":true,"maxItems":1000}},"required":["elementIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_update_element","kind":"act","impl":"imperative","description":"Update safe visual properties of one active-page element. Type-specific fields are applied only to compatible elements. The change is undoable.","title":"Update a Visually element","inputSchema":{"type":"object","properties":{"elementId":{"type":"string","description":"Element ID from visually_get_editor_state."},"name":{"type":"string","description":"Layer name."},"x":{"type":"number","description":"Left position."},"y":{"type":"number","description":"Top position."},"width":{"type":"number","description":"Width.","minimum":1,"maximum":10000},"height":{"type":"number","description":"Height.","minimum":1,"maximum":10000},"rotation":{"type":"number","description":"Rotation in degrees.","minimum":-36000,"maximum":36000},"opacity":{"type":"number","description":"Opacity.","minimum":0,"maximum":1},"locked":{"type":"boolean","description":"Whether editing is locked."},"hidden":{"type":"boolean","description":"Whether the layer is hidden."},"text":{"type":"string","description":"Text content for text elements."},"fontSize":{"type":"number","description":"Font size for text elements.","minimum":1,"maximum":1000},"fontFamily":{"type":"string","description":"Font family for text elements."},"fill":{"type":"string","description":"Text or shape fill color."},"cornerRadius":{"type":"number","description":"Corner radius for shape or image elements.","minimum":0,"maximum":5000}},"required":["elementId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_arrange_selection","kind":"act","impl":"imperative","description":"Align, distribute, group, ungroup, duplicate, or move selected layers in the stack. The change is undoable.","title":"Arrange Visually selection","inputSchema":{"type":"object","properties":{"operation":{"type":"string","description":"Arrangement operation.","enum":["align","distribute","group","ungroup","duplicate","layer"]},"value":{"type":"string","description":"For align: left, center, right, top, middle, bottom. For distribute: horizontal or vertical. For layer: up, down, top, bottom."}},"required":["operation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_delete_selection","kind":"transact","impl":"imperative","description":"Delete selected, unlocked elements. This destructive tool requires confirm=true and remains undoable.","title":"Delete Visually selection","inputSchema":{"type":"object","properties":{"confirm":{"type":"boolean","description":"Must be true to delete the selected elements."}},"required":["confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_manage_page","kind":"act","impl":"imperative","description":"Add, duplicate, switch, or delete pages. Deletion requires confirm=true. Document mutations are undoable.","title":"Manage Visually pages","inputSchema":{"type":"object","properties":{"operation":{"type":"string","description":"Page operation.","enum":["add","duplicate","switch","delete"]},"pageIndex":{"type":"integer","description":"Zero-based page index for switch/delete.","minimum":0},"confirm":{"type":"boolean","description":"Must be true for page deletion."}},"required":["operation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_resize_page","kind":"act","impl":"imperative","description":"Set the active page dimensions, name, or background. Supports square, portrait, landscape, print, and custom sizes. The change is undoable.","title":"Resize the Visually page","inputSchema":{"type":"object","properties":{"width":{"type":"number","description":"Page width in pixels.","minimum":1,"maximum":10000},"height":{"type":"number","description":"Page height in pixels.","minimum":1,"maximum":10000},"name":{"type":"string","description":"Optional page/design name."},"background":{"type":"string","description":"Optional CSS background color."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_history","kind":"answer","impl":"imperative","description":"Undo or redo the latest document change.","title":"Undo or redo in Visually","inputSchema":{"type":"object","properties":{"operation":{"type":"string","description":"History operation.","enum":["undo","redo"]}},"required":["operation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_export_design","kind":"act","impl":"imperative","description":"Return either the full project JSON or the active page as SVG without starting a download.","title":"Export Visually design data","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"format":{"type":"string","description":"Export format.","enum":["json","svg"]}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_import_project","kind":"act","impl":"imperative","description":"Validate and load Visually project JSON. Replacing the open project requires confirm=true and is undoable.","title":"Import a Visually project","inputSchema":{"type":"object","properties":{"projectJson":{"type":"string","description":"Visually or legacy Canvasly project JSON, page object, or page array. Maximum 5 MB."},"confirm":{"type":"boolean","description":"Must be true to replace the currently open project."}},"required":["projectJson","confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_create_campaign","kind":"act","impl":"imperative","description":"Create coordinated, semantically tagged campaign pages from one brief. Replaces the open project only with confirm=true and records one undo step.","title":"Create a multi-format campaign","inputSchema":{"type":"object","properties":{"brandName":{"type":"string","description":"Brand name used consistently across campaign formats.","maxLength":120},"headline":{"type":"string","description":"Primary campaign headline.","maxLength":280},"subheadline":{"type":"string","description":"Supporting campaign message.","maxLength":500},"cta":{"type":"string","description":"Call-to-action label.","maxLength":100},"primaryColor":{"type":"string","description":"Primary CSS color, preferably hex.","maxLength":64},"secondaryColor":{"type":"string","description":"Secondary or page-background CSS color, preferably hex.","maxLength":64},"accentColor":{"type":"string","description":"Accent CSS color, preferably hex.","maxLength":64},"textColor":{"type":"string","description":"Campaign text CSS color, preferably hex.","maxLength":64},"fontFamily":{"type":"string","description":"Campaign font family.","maxLength":120},"formats":{"type":"array","description":"Unique output formats. Defaults to all five supported campaign formats.","items":{"type":"string","enum":["instagram_post","instagram_story","youtube_thumbnail","poster","landscape_banner"]},"minItems":1,"maxItems":5,"uniqueItems":true},"confirm":{"type":"boolean","description":"Must be true to replace the open project with the generated campaign."}},"required":["brandName","headline","confirm"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_apply_brand_update","kind":"act","impl":"imperative","description":"Update tagged brand copy, colors, and typography across every campaign page in one semantic, undoable operation.","title":"Apply a campaign-wide brand update","inputSchema":{"type":"object","properties":{"brandName":{"type":"string","description":"Brand name used consistently across campaign formats.","maxLength":120},"headline":{"type":"string","description":"Primary campaign headline.","maxLength":280},"subheadline":{"type":"string","description":"Supporting campaign message.","maxLength":500},"cta":{"type":"string","description":"Call-to-action label.","maxLength":100},"primaryColor":{"type":"string","description":"Primary CSS color, preferably hex.","maxLength":64},"secondaryColor":{"type":"string","description":"Secondary or page-background CSS color, preferably hex.","maxLength":64},"accentColor":{"type":"string","description":"Accent CSS color, preferably hex.","maxLength":64},"textColor":{"type":"string","description":"Campaign text CSS color, preferably hex.","maxLength":64},"fontFamily":{"type":"string","description":"Campaign font family.","maxLength":120}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"visually_audit_design","kind":"act","impl":"imperative","description":"Read-only audit for overflow, text contrast, safe-area crossings, missing image alt text, and cross-page brand consistency.","title":"Audit design quality","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"scope":{"type":"string","description":"Audit the active page or the full project.","enum":["active_page","all_pages"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/visually.deeeplearn.com.png","apiSurface":"spec","toolCount":17}}