{"ok":true,"site":{"host":"styles.krnl.studio","url":"https://styles.krnl.studio/","type":"live","desc":"Drop a screenshot, pick one of 95 templates, export a video. Device mockups, kinetic type and camera moves, free and open source. Your AI can use it too, through MCP.","tools":[{"name":"styles_make_component","kind":"act","impl":"imperative","description":"Moves selected layers and their motion into a linked component, replacing them with an instance. Like Group, uses selected siblings in the first selected layer's parent and leaves other parents alone. Adjacent layers keep their appearance; non-adjacent layers change stacking as Group does, at the first selected sibling's stack position. Returns componentId and instanceId.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"layerIds":{"minItems":1,"type":"array","items":{"type":"string"}},"name":{"type":"string"}},"required":["layerIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_instance","kind":"act","impl":"imperative","description":"Places a linked component at its own size, centred by default. Returns instanceId.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"componentId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","exclusiveMinimum":0},"height":{"type":"number","exclusiveMinimum":0}},"required":["componentId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_update_instance","kind":"act","impl":"imperative","description":"Merges layer overrides and changes offset (ms), loop or the linked component. resetOverrides clears all overrides first; an empty layer override clears that layer.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"layerId":{"type":"string"},"overrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_instance\"}, property overrides."},"offset":{"type":"number"},"loop":{"type":"boolean"},"componentId":{"type":"string"},"resetOverrides":{"default":false,"type":"boolean"}},"required":["layerId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_components","kind":"answer","impl":"imperative","description":"Lists each component id, name, width, height and number of instances across the design.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_set_document","kind":"act","impl":"imperative","description":"Sets name, export credit (default on), 3D mode, watermark or film transitions. Fetch nested fields with describe_schema domain:command name:set_document.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string"},"credit":{"type":"boolean"},"mode3d":{"type":"boolean"},"mark":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"set_document\"}, property mark."},{"type":"null"}]},"film":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"set_document\"}, property film."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_artboard","kind":"act","impl":"imperative","description":"Adds an artboard (one image or video when you export). Give a format id (x-16x9, x-1x1, x-4x5, x-9x16, x-header, ig-post, ig-square, ig-story, ...) or a width and height. Optionally copy another artboard.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"format":{"type":"string"},"width":{"type":"integer","minimum":16,"maximum":7680},"height":{"type":"integer","minimum":16,"maximum":7680},"name":{"type":"string"},"duration":{"description":"ms","type":"number","minimum":100,"maximum":300000},"copyFrom":{"description":"Artboard id to duplicate.","type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_update_artboard","kind":"act","impl":"imperative","description":"Changes an artboard: name, width, height (or format id), duration (ms), fps, background, bgFx {noise, blur, vignette}, camera {zoom, x, y, rotation, rx, ry}, vfx {type, intensity}. Resizing lays the design out again for the new shape (keepLayout false leaves layers where they are).","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"format":{"type":"string"},"name":{"type":"string"},"width":{"type":"integer","minimum":16,"maximum":7680},"height":{"type":"integer","minimum":16,"maximum":7680},"duration":{"type":"number","minimum":100,"maximum":300000},"fps":{"type":"integer","minimum":1,"maximum":120},"background":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property background."},"bgFx":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property bgFx."},"backgroundPreset":{"type":["string","null"]},"camera":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property camera."},"vfx":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_artboard\"}, property vfx."},"keepLayout":{"description":"When resizing, scale layer positions to the new size (default true).","type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_layer","kind":"act","impl":"imperative","description":"Adds a layer on top, at index, or inside parentId. Requires layer.type; fetch its fields/defaults with describe_schema domain:layer. Returns layerId.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"layer":{"type":"object","properties":{"type":{"type":"string","enum":["rect","ellipse","star","path","text","image","video","device","code","chart","instance","group"]}},"required":["type"],"additionalProperties":{},"description":"Fields/defaults/example: describe_schema {domain:\"layer\",name:<type>}."},"parentId":{"type":"string"},"index":{"description":"0 is the bottom. Default: top.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["layer"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_update_layer","kind":"act","impl":"imperative","description":"Changes any properties of a layer (position x/y is the centre, width, height, rotation, scale, opacity 0..1, rx/ry tilt in degrees, shadow, blur, fill, text, style, media, model, finish, frame...). Nested objects like style, media, browser and shadow are merged, so you can send only what changes.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"layerId":{"type":"string"},"patch":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:\"update_layer\"}, property patch."}},"required":["layerId","patch"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_delete_layers","kind":"transact","impl":"imperative","description":"Deletes layers (and their animations).","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"layerIds":{"minItems":1,"type":"array","items":{"type":"string"}}},"required":["layerIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_animation","kind":"act","impl":"imperative","description":"Animates a layer or @artboard camera. Requires anim.kind, target, start, end; end > start. Fetch kind fields with describe_schema domain:animation. Returns animId.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"},"anim":{"type":"object","properties":{"kind":{"type":"string","enum":["prop","preset","text","counter","path"]},"target":{"type":"string"},"start":{"type":"number"},"end":{"type":"number"}},"required":["kind","target","start","end"],"additionalProperties":{},"description":"Kind fields/example: describe_schema {domain:\"animation\",name:<kind>}."},"replaceId":{"description":"Replace this animation in the same command.","type":"string"}},"required":["anim"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_layers","kind":"answer","impl":"imperative","description":"Lists the layers of an artboard (id, type, name, box) from bottom to top, flattened, with their parent group.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"description":"Artboard id. Defaults to the first artboard.","type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_describe_schema","kind":"answer","impl":"imperative","description":"Returns detailed JSON input schema, example and shared vocabulary on demand. Domains: layer (type or patch), animation (kind or patch), document (doc/artboard/background/bgFx/camera/mark/film/asset/audio/fill/textStyle/easing), command (any edit_design verb). Omit name to list topics. Fetch before constructing complex payloads; schemas include all supported fields and constraints.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string","enum":["layer","animation","document","command"]},"name":{"description":"Omit to list names. layer: type or patch; animation: kind or patch; document: part; command: editing verb.","type":"string"}},"required":["domain"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_templates","kind":"act","impl":"imperative","description":"Lists templates (id, name, category, format, tags). Start with create_design {template:id}.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_formats","kind":"answer","impl":"imperative","description":"Lists sizes for artboards. Use a format id with create_design or add_artboard.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_devices","kind":"answer","impl":"imperative","description":"Lists device model ids, finishes and screen sizes for add_layer.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_layouts","kind":"answer","impl":"imperative","description":"Lists device layouts for edit_design → apply_layout.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_backgrounds","kind":"answer","impl":"imperative","description":"Lists up to 150 background presets. Pass bg and fx to update_artboard.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"collection":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_list_fonts","kind":"answer","impl":"imperative","description":"Lists installed font families and weights for text style. Choose an exact family name.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_replace_design","kind":"act","impl":"imperative","description":"Restores a full validated document. get_design.docId becomes doc.id in the snapshot. Undo brings back the previous design.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"doc":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Full snapshot; describe_schema {domain:\"document\",name:\"doc\"}. Restore get_design with doc.id = docId."}},"required":["doc"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_make_release_kit","kind":"act","impl":"imperative","description":"Makes four editable artboards from supplied release notes and an optional screenshotAssetId already in this design. No content is fetched. An existing kit updates its common content while preserving layout. Otherwise it replaces the current design; Undo restores it. Submit all common fields on updates; omitted optional fields reset to defaults. Returns named artboard ids; render Release motion as video.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"product":{"type":"string","minLength":1,"maxLength":40},"version":{"default":"","type":"string","maxLength":24},"headline":{"type":"string","minLength":1,"maxLength":64},"summary":{"default":"","type":"string","maxLength":100},"notes":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"url":{"default":"","type":"string","maxLength":160},"accent":{"default":"#4263eb","type":"string","minLength":1,"maxLength":64},"screenshotAssetId":{"default":null,"type":["string","null"]}},"required":["product","headline","notes"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_make_post_film","kind":"act","impl":"imperative","description":"Makes an animated social post card from supplied text, name and handle. Nothing is fetched.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":1200},"name":{"type":"string"},"handle":{"type":"string"},"verified":{"type":"boolean"},"date":{"type":"string"},"likes":{"type":"number"},"reposts":{"type":"number"},"replies":{"type":"number"},"views":{"type":"number"},"theme":{"type":"string","enum":["dark","light"]},"accent":{"type":"string"},"format":{"type":"string","enum":["x-16x9","x-1x1","x-4x5","x-9x16"]}},"required":["text","name","handle"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_make_milestone","kind":"act","impl":"imperative","description":"Makes an animated celebration of a number, with optional growth history.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"value":{"type":"number"},"label":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"},"decimals":{"type":"integer","minimum":0,"maximum":4},"kicker":{"type":"string"},"accent":{"type":"string"},"history":{"maxItems":60,"type":"array","items":{"type":"number"}},"format":{"type":"string","enum":["x-16x9","x-1x1","x-4x5","x-9x16"]}},"required":["value","label"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_make_code_video","kind":"act","impl":"imperative","description":"Makes an animated code window from supplied code.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":6000},"lang":{"type":"string"},"title":{"type":"string"},"caption":{"type":"string"},"theme":{"type":"string"},"format":{"type":"string","enum":["x-16x9","x-1x1","x-4x5","x-9x16"]}},"required":["code"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_render_video","kind":"act","impl":"imperative","description":"Renders MP4, WebM or GIF in this browser and returns a browser-local blob URL. Default short side 720, fps 30. film:true plays all artboards.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"type":"string"},"film":{"default":false,"type":"boolean"},"format":{"default":"mp4","type":"string","enum":["mp4","webm","gif"]},"shortSide":{"default":720,"type":"number","minimum":240,"maximum":1080},"fps":{"default":30,"type":"number","minimum":10,"maximum":30}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_export_lottie","kind":"act","impl":"imperative","description":"Exports Lottie JSON in this browser. Default Light scale 0.5; Sharp scale 1. Returns a browser-local blob URL and notes.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"type":"string"},"scale":{"default":0.5,"type":"number","minimum":0.25,"maximum":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_get_design","kind":"act","impl":"imperative","description":"Reads the open design. Browser designId is its local document id; remote designIds are different.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_create_design","kind":"act","impl":"imperative","description":"Starts an empty design or a template in this editor. Undo brings back the previous design. Default format x-4x5.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"template":{"type":"string"},"format":{"type":"string"},"name":{"type":"string"},"background":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_apply_template","kind":"act","impl":"imperative","description":"Replaces the open design with a template. Media is kept; undo restores the previous design.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_edit_design","kind":"act","impl":"imperative","description":"Applies up to 80 edits atomically, all or none, as a single undo step. steps.command lists every verb; fetch input fields/examples with describe_schema domain:command name:<verb>.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"steps":{"minItems":1,"maxItems":80,"type":"array","items":{"type":"object","properties":{"command":{"type":"string","enum":["make_component","add_instance","update_instance","detach_instance","delete_component","rename_component","set_document","add_artboard","update_artboard","delete_artboard","move_artboard","add_layer","update_layer","update_layers","delete_layers","duplicate_layers","reorder_layer","group_layers","ungroup","align_layers","apply_layout","magic_look","auto_animate","add_animation","update_animation","delete_animations","shift_animations","apply_brand","add_annotation","add_cursor","import_svg","make_sizes","morph_to","clear_animations","add_asset","add_audio","update_audio","delete_audio"]},"input":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Fields/example: describe_schema {domain:\"command\",name:<command>}."}},"required":["command","input"]},"description":"Atomic; use existing or explicitly assigned ids. Read returned ids in a prior call."}},"required":["steps"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_icon","kind":"act","impl":"imperative","description":"Adds an editable Lucide path; x/y default to the artboard centre. Find names with search_icons.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string"},"artboardId":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"},"size":{"type":"number","minimum":8,"maximum":4000},"color":{"type":"string","minLength":1,"maxLength":64},"strokeWidth":{"default":2,"description":"Line width in the icon’s 24 px grid.","type":"number","minimum":0.25,"maximum":6}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_search_icons","kind":"answer","impl":"imperative","description":"Finds up to 20 Lucide icon names by words. Use a returned name with add_icon.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"default":"","type":"string"},"limit":{"default":20,"type":"integer","minimum":1,"maximum":20}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_paste_layers","kind":"act","impl":"imperative","description":"Pastes layers and linked components from this local document. fromDesignId must equal get_design.designId. To import another document, use replace_design first.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fromDesignId":{"type":"string","description":"Design to copy from (remote), or current document id (browser)."},"fromArtboardId":{"type":"string"},"artboardId":{"type":"string"},"layerIds":{"minItems":1,"type":"array","items":{"type":"string"},"description":"Read layer ids with list_layers."},"dx":{"default":24,"type":"number"},"dy":{"default":24,"type":"number"}},"required":["fromDesignId","layerIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_media","kind":"act","impl":"imperative","description":"Adds a screenshot or image from base64 (up to 3 MB) or a public URL via the server’s safe fetch. deviceId explicitly replaces a screenshot; otherwise only an empty device is used. place defaults to device.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string"},"base64":{"type":"string"},"mimeType":{"default":"image/png","type":"string"},"place":{"default":"device","type":"string","enum":["device","layer","background","none"]},"deviceId":{"type":"string"},"artboardId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_add_media_from_url","kind":"act","impl":"imperative","description":"Compatibility alias for add_media {url,place:\"layer\"}. Images download through the same-origin safe-fetch route, avoiding CORS. Videos must be uploaded in the editor.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_select_artboard","kind":"act","impl":"imperative","description":"Shows an existing artboard. Read artboard ids with get_design.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"type":"string"}},"required":["artboardId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_play","kind":"act","impl":"imperative","description":"Plays or pauses the preview, or seeks to t milliseconds (clamped to this artboard’s duration).","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"playing":{"type":"boolean"},"t":{"type":"number","minimum":0}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_undo","kind":"act","impl":"imperative","description":"Run undo in the editor’s shared history. Batch edits are one history step.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_redo","kind":"act","impl":"imperative","description":"Run redo in the editor’s shared history. Batch edits are one history step.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_see_design","kind":"act","impl":"imperative","description":"Returns a preview at t milliseconds (default after intros, matching remote MCP).","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"type":"string"},"t":{"type":"number","minimum":0}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_render_image","kind":"act","impl":"imperative","description":"Returns PNG, JPEG or WebP bytes as image content for the agent. scale 0.25–2, default 1. made with styles is included unless credit:false.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"artboardId":{"type":"string"},"t":{"type":"number","minimum":0},"format":{"default":"png","type":"string","enum":["png","jpeg","webp"]},"scale":{"default":1,"type":"number","minimum":0.25,"maximum":2},"credit":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]},{"name":"styles_export_image","kind":"act","impl":"imperative","description":"Downloads PNG, JPG or WebP to the person’s browser. Scale 1–4 (default 1); larger exports take longer. Returns image content too. Use render_image for agent inspection.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"format":{"default":"png","type":"string","enum":["png","jpg","webp"]},"scale":{"default":1,"type":"number","minimum":1,"maximum":4}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/app","pages":["/app"]}],"favicon":"/favicons/styles.krnl.studio.png","apiSurface":"spec","category":"Media & Personal","toolCount":42}}