Codesign

ly.img由 img.ly 发布v0.6.0更新于 Nov 5, 2026

Local design engine for AI agents: create, edit and export real, editable designs.

概览

AI 生成的概览

本地运行的 IMG.LY CoDesign 服务器,让助手通过 CE.SDK 引擎创建、编辑、预览并导出真正可编辑的分层设计、视频和印刷文件。

可以做什么
  • 在实时 CE.SDK 画布上运行 JavaScript 来创建和编辑设计,并预览渲染后的页面
  • 导入 InDesign、Photoshop、PowerPoint、PDF、图片和 Lottie 文件,并打开、重命名或列出已保存的设计
  • 导出印刷 PDF 或 PDF/X、图片、SVG、HTML、InDesign、PSD、MP4 视频或音频
  • 搜索、添加和生成素材,包括 AI 图像、视频、语音和音乐生成
  • 用验收清单、评审记分卡和可分享的浏览器编辑器链接跟踪工作
  • 查看服务器状态与活动记录,并读取随附的技能文件
适用场景
适合需要助手真正产出或修改设计文件的场景:社交媒体与印刷版式、把一个设计适配到多种尺寸、为已有的 InDesign、PSD 或 PDF 文件换品牌或做本地化,以及把海报做成短视频。
运行要求
以本地 stdio 进程运行,通过 npx 获取 npm 包 @imgly/codesign-mcp;PATH 中需有 Node.js 18 或更高版本(直接使用 npx 的配置需 22.15 或更高)。开始使用无需账号;AI 素材生成及部分功能需通过 login 工具登录免费的 IMG.LY 账号。需要访问 IMG.LY 相关主机以下载运行时、获取素材、登录和生成内容。
安装前请注意
设计保存在本地工作区,编辑会立即写入,没有单独的保存步骤。运行时会从 IMG.LY 发布服务器下载,并每六小时检查更新。使用数据和错误报告会发送给 IMG.LY,可用 DO_NOT_TRACK=1 或 IMGLY_TELEMETRY=off 关闭,但引擎自身的许可校验和用量上报无法关闭。AI 生成会把提示词发送到 gateway.img.ly,并可能消耗账号额度。Windows 的 WASM 引擎不支持视频和音频导出。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Codesign,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

CoDesign

The design layer for the agent era.

Create posters, social posts, videos and print layouts from a prompt, then change any part of them yourself. CoDesign gives you a professional design engine. Every headline, image, shape and clip stays its own layer, so you can swap a font or move a logo without starting over.

Start from scratch or from files you already have. InDesign, Photoshop, PowerPoint and PDF files open with their layers intact. Then resize one design for every social format, translate it with the layout reflowing to fit (Arabic and other right-to-left scripts included), apply your brand colors and fonts, or check it against your guidelines.

Every design opens in a built-in editor when you want to fix something by hand. Export print-ready PDFs with CMYK color and bleed, Photoshop and InDesign files your team can keep working on, or video for social.

Built by IMG.LY on the IMG.LY design engine. Runs on your computer. No account needed to start.

CoDesign ships as an MCP server (plus a plugin for Claude Code, Codex, Copilot CLI, Antigravity and Cursor) that hands your agent IMG.LY's CE.SDK CreativeEngine — the same production engine behind IMG.LY's commercial SDKs. The plugin runs the launcher it carries (what it runs); every direct recipe below spawns the published npm package @imgly/codesign-mcp over stdio; no separate install step — npx fetches it on first use.

Use cases

  • A social team turns one campaign into every format, from Instagram posts to short videos.
  • An agency opens an old InDesign file, rebrands it, and exports it back as .idml.
  • A global brand translates print ads and video ads without breaking the layout.
  • A designer generates a first draft, then moves and restyles layers by hand in the visual editor.
  • A brand manager checks assets against guidelines before they go out.

Formats

  • Import: InDesign (.idml), Photoshop (.psd), PowerPoint (.pptx), PDF, images (PNG, JPEG, GIF, WebP, SVG) and CoDesign (.imgly) files.
  • Export: PDF and print-ready PDF/X, PNG, JPEG, WebP, SVG, HTML, InDesign (.idml), Photoshop (.psd), MP4 video, WAV and M4A audio, and CoDesign (.imgly). Video and audio export need the native engine; Windows runs the WASM engine, which has no video.

What you can make

Ask your agent, in plain language:

  • Resize for every channel — "Take this Instagram post and make the Story, LinkedIn and X versions."
  • Make an image editable (needs the free IMG.LY sign-in) — "Split this flat product photo into layers, put the product on our brand background and make it editable."
  • Restyle an existing PDF — "Import this datasheet.pdf as an editable design, restyle it with our brand kit, and export A4 and web versions."
  • Generate many from a CSV — "One speaker card per row in speakers.csv, same template, all editable."
  • Prepare for print — "Turn this flyer into an A4 print PDF with 3 mm bleed and CMYK."
  • Update an existing design — "Open last year's flyer.psd, swap the date and venue, export again."
  • Localize a design — "Translate this poster into German and re-fit the layout so nothing overflows."
  • Make a short video (generated music and voiceover need the free IMG.LY sign-in) — "Turn this poster into a 15-second vertical reel: animate the headline in, cut between the three product shots, and put a music bed and a voiceover under it."
  • Create a launch graphic — "Make the v2.0 launch graphic with our logo and brand colors, in X, LinkedIn and OG-image sizes."
  • Create App Store graphics — "Make the App Store screenshots and the Play Store feature graphic from these five screen captures, on-brand, all sizes."

How it works

Three layers, one product:

  • The plugin — installs the MCP server and connects it to your agent. This is the piece you install.
  • The MCP server (@imgly/codesign-mcp) — exposes the design tools (edit, preview, export, list, history, …) over MCP, driven by tool calls from any agent host, and serves the skills and design rules your agent draws on to design well (brand, localize, resize, and quality-check its own output), always matching the server's version.
  • The CE.SDK CreativeEngine — IMG.LY's real, headless design engine that does the actual layout, rendering, and export.

Licensing

This repository — the plugin, marketplace manifests and documentation — is released under the MIT License. The CoDesign engine itself, distributed as the npm package @imgly/codesign-mcp, is proprietary software from IMG.LY and free to use locally. The full terms ship inside the package as LICENSE.md. The launcher in plugins/codesign/runtime/ is not under the MIT License either: its NOTICE names its licences.

Why a real engine matters

Every other design agent draws on a web canvas — a quick fix that breaks on the hard problems. CoDesign commands a production engine matured over years across print, video, and social:

  • True print & color fidelity — CMYK, bleed, and ICC profiles, not just RGB screen output.
  • Deterministic output — renders identically everywhere, independent of browser or config.
  • Native performance — a purpose-built engine that stays fast at scale and under heavy assets.
  • Full compatibility — imports InDesign, PSD, PowerPoint (PPTX) and PDF; exports print-ready PDF, image, video, InDesign, PSD and HTML.

What the plugin runs

  • A local MCP server. Claude Code starts runtime/codesign mcp; Codex, Copilot CLI, Antigravity and Cursor (untested) start node runtime/codesign-shim.mjs mcp in the plugin folder. Both run over stdio. IMG.LY's CE.SDK engine imports, renders and exports on your machine, from your files, and designs are saved in a local workspace.
  • A launcher, and the runtime it installs. The plugin carries only the launcher: runtime/codesign (codesign.cmd on Windows), readable JavaScript modules in runtime/codesign-shim/ that run on your Node.js, and runtime/snapshot.json, the tool list it answers with until the runtime is installed. The runtime (CoDesign with its own Node.js, a CE.SDK engine and its assets) is downloaded into ~/.codesign from IMG.LY's release server, https://get.codesign.co/runtime/<channel>/, and checks there for an update every 6 hours. Every download is listed in a release manifest signed with IMG.LY's Ed25519 key, which the launcher carries, and must match the SHA-256 and size the manifest gives; a manifest older than the last one accepted is refused.
  • No hooks. The plugin runs nothing at session start. When the runtime is missing, the server answers from runtime/snapshot.json and installs it in the background on its first start.
  • What your agent reads from it. The MCP instructions, tool descriptions, skills and prompts ship inside the signed runtime release (until it is installed, in the plugin's runtime/snapshot.json); nothing fetches them from anywhere else.
  • Where it connects:
    • get.codesign.co: runtime downloads and update checks.
    • cdn.img.ly: templates, fonts, other default assets and the browser editor.
    • img.ly and clerk.img.ly: the IMG.LY sign-in, only when you sign in with the login tool.
    • gateway.img.ly: only for AI generation.
    • api.img.ly: usage data, and Sentry (sentry.io): error reports. In Claude Code, turn them off in the plugin's settings (Send usage data to IMG.LY, Send error reports to IMG.LY); on any host, set DO_NOT_TRACK=1 or IMGLY_TELEMETRY=off.
    • Addresses a design, you or your agent name, such as an image or font URL: fetched and copied into your workspace.
    • IMG.LY's CE.SDK engine, which renders and exports, itself checks its licence with IMG.LY (api.img.ly) and reports its own usage there when it starts; neither the plugin's two settings nor DO_NOT_TRACK turn that off.

Requirements & known limitations

Read this first — the failure modes below are silent.

  • Node.js is required and is not provided. The plugin needs Node.js ≥ 18 on PATH: Claude Code until the runtime is installed, Codex, Copilot CLI, Antigravity and Cursor (untested) on every start. On an older Node the server says what to install. With no Node at all the host cannot start it and reports the server as failed with no useful reason — typically spawn node ENOENT, local: 0 or MCP error -32000. The direct recipes need Node.js ≥ 22.15. Install Node first: https://nodejs.org, or see https://codesign.co/install.
  • The plugin updates itself. It installs the runtime of its channel and checks for an update every 6 hours; no plugin update is needed to move forward.
  • Pin @0.6.0 — every direct recipe names that exact version. Each release republishes this repo with a new pin — update your recipe to move forward.
  • Windows: the direct recipes need WSL. Hosts that spawn npx directly hit spawn npx ENOENT (anthropics/claude-code#58510). The plugin runs no npx and needs no Git. Claude Code, Codex and Copilot CLI start it natively on Windows; Antigravity and Cursor on Windows are untested. Without Node, Claude Code can use the plugin if you first run irm https://get.codesign.co/runtime/stable/install.ps1 | iex.

Install

Claude Code

Install the plugin from the marketplace:

bash
claude plugin marketplace add imgly/codesignclaude plugin install codesign@imgly-codesign

Or add the MCP server directly, without the plugin:

bash
claude mcp add --scope user codesign -- npx -y @imgly/[email protected] stdio

Codex

Install the plugin from the marketplace:

bash
codex plugin marketplace add imgly/codesigncodex plugin add codesign@imgly-codesign

Or add the MCP server directly, without the plugin:

bash
codex mcp add codesign -- npx -y @imgly/[email protected] stdio

Antigravity CLI

Clone the repo and install the plugin folder:

bash
git clone https://github.com/imgly/codesignagy plugin install ./codesign/plugins/codesign

Or add the MCP server directly, without the plugin:

bash
agy mcp add codesign -- npx -y @imgly/[email protected] stdio

GitHub Copilot CLI

Install the plugin from the marketplace:

bash
copilot plugin marketplace add imgly/codesigncopilot plugin install codesign@imgly-codesign

Or add the MCP server directly, without the plugin:

bash
copilot mcp add codesign -- npx -y @imgly/[email protected] stdio

Cursor

In Cursor, open Customize, choose From GitHub Repository, enter https://github.com/imgly/codesign, then Install the CoDesign plugin (untested). On a Teams or Enterprise plan, an admin can instead add the same URL as a team marketplace with Import from Repo, and teammates install CoDesign from Customize.

Or copy the plugin folder into Cursor’s local plugins, then run Developer: Reload Window (untested; on Enterprise, an admin must allow local plugin imports):

bash
d=$(mktemp -d) &&git clone --depth 1 https://github.com/imgly/codesign "$d/codesign" &&mkdir -p ~/.cursor/plugins/local &&rm -rf ~/.cursor/plugins/local/codesign &&cp -R "$d/codesign/plugins/codesign" ~/.cursor/plugins/local/ &&rm -rf "$d"

Or add the MCP server directly, without the plugin, in .cursor/mcp.json:

json
{  "mcpServers": {    "codesign": {      "command": "npx",      "args": [        "-y",        "@imgly/[email protected]",        "stdio"      ]    }  }}

Other MCP hosts

Every other host spawns the same stdio server — only the config file and the top-level key differ. Add this block to the host’s MCP config:

json
{  "mcpServers": {    "codesign": {      "command": "npx",      "args": [        "-y",        "@imgly/[email protected]",        "stdio"      ]    }  }}
HostConfig fileNote
Windsurf~/.codeium/windsurf/mcp_config.jsonas-is
VS Code.vscode/mcp.jsonuse the key servers instead of mcpServers
Zedsettings.jsonuse the context_servers shape below

VS Code (servers key):

json
{  "servers": {    "codesign": {      "command": "npx",      "args": [        "-y",        "@imgly/[email protected]",        "stdio"      ]    }  }}

Zed (context_servers):

json
{  "context_servers": {    "codesign": {      "command": {        "path": "npx",        "args": [          "-y",          "@imgly/[email protected]",          "stdio"        ]      }    }  }}

Beyond your machine

CoDesign runs free on your machine today. When you need more — always-on hosting, your own infrastructure (VPC / on-prem), or a fully bundled design agent that lives in the canvas — the same building block graduates by changing config, not vendors. No lock-in. Talk to us: [email protected].

Support

Questions or issues: [email protected]. This distribution is generated from IMG.LY's source repository.

来源:README.md,提交 d19fb44

工具

17

edit

Edit the CE.SDK canvas by running JavaScript against the live CreativeEngine. The result becomes the session’s current state. ⚠ BEFORE your first `edit`, read `skill://codesign/api/SKILL.md`, `skill://codesign/judge/SKILL.md` and `skill://codesign/judge/design-rules.md` in one message: the edit-code API and the rules a design is built to. Worked examples, and the lookup for a cryptic error ("Known engine defects"), are `skill://codesign/api/recipes.md`. There is no `parent` and no revision id: `edit` always continues the design in front of you. Every successful edit is kept — the product stores the design after each one, so there is nothing to save. Returns: the first content part is JSON `{ names? }` — every named block in the scene, which are exactly the strings `engine.design.findByName(name)` resolves in your NEXT edit. Name what you build and re-find it instead of matching copy. When the edit changed the scene, the result also ends with a downscaled render of the first page it changed — verify your work from it instead of spending a `preview` call. `preview` remains required for full-size judging (the judge loop) and multi-page review; set `render: false` to skip the image on read-only/diagnostic edits. `code` return contract (STRICT): return `undefined` (no message back), `{ type: "text", text }`, `{ type: "image", data: "<base64>", mimeType }`, or an array of those. Anything else (raw strings, Blobs, plain objects) is rejected. DIALECT (enforced): edit code uses `engine.design` only — scene, pages, props, text, variables, spot colours, transitions. Code that reaches engine.block/scene/variable/editor/asset/event is rejected before execution with the equivalent calls. `code` scope: `engine.design`, plus `await findText(copy)` / `await findAllText(copy)` (async like every `engine.design` member) for reaching a block by its text. Use them instead of comparing text strings with `===` — the copy on the page routinely carries a trailing space or an NBSP (bef

输入参数code必填noterenderskills

preview

Render blocks (almost always pages) to inline images so you can see the result. `blockIds` is a LIST, rendered in the order you give it: `[pageId]` for one page, `[a, b]` for a subset, or OMIT it entirely to preview every page of the design in document order. There is nothing to address: this always renders the design you are working on. Its last state is loaded before rendering, so the ids always resolve against the right scene — never against a different design another agent may have loaded on a shared server. Preview several blocks at once when REVIEWING or capturing a finished design — a whole deck in one call, or just the pages a fix touched. While BUILDING a multi-page design, keep previewing each page right after you build it: batching there does not avoid the bugs, it only delays finding them. Animated or video designs (any scene mode): pass `time` (seconds along the timeline of what is rendered — the page, since a block is previewed in place on it; 0 = first frame) to render any frame as a still — use `export format=mp4` for motion. `time` applies to every block in the call, and each timed preview (and every preview of a Video-mode scene) returns `{blockId, time, duration}` JSON alongside its image; `duration` is the scrubbable range. Output is always PNG (lossless — thin lines render exactly). EACH block gets the full 0.25 megapixel budget, adjusted to its own aspect ratio — a square page renders 512×512, a 1:4 page 256×1024. There are no size or format knobs, and at most 10 blocks render per call. To SEE SMALL TYPE as it is actually set — legal copy, a caption, a label — the simplest zoom is to pass THAT BLOCK'S id: `blockIds: [<textId>]` renders it on its page, framed, with context around it. No coordinates needed. For a tighter or arbitrary crop, pass `region`: a rectangle `{x, y, width, height}` with ONE id in `blockIds`. It is measured from the top-left corner of that block's PAGE, in the design's units (the page's own width and height bound it

输入参数uritimeregionblockIds

import

Import a design FILE as a NEW design — a CE.SDK `.imgly` design file; a Photoshop (`.psd`/`.psb`), InDesign (`.idml`), PowerPoint (`.pptx`) or PDF file; a Lottie animation (`.json`/`.lottie`), which becomes a one-page video design with editable, keyframed layers; or a plain image or SVG, which becomes a one-page design sized to the image. To make a media file (image/font/video/audio) available for use INSIDE a design instead of becoming one: Use `asset_add` to bring it into the workspace, then apply it inside `edit`. Source: `{ url }` (http/https), `{ uri }` (a saved design — you get a copy of it — or a file you were given, or a template `asset_search` lists from an installed pack: the new design starts as that template), `{ demo }` (a design bundled with this server — ids: `"cybernews"`) or `{ path }` (absolute local file path). Every import starts a NEW design, and you work on it from then on: the design you were on is left as it is. To keep working on a saved design itself rather than a copy, use `open` with its `uri`. With only a `title` and no `source` (`import({ title: 'Poster' })`), it starts an empty design: do that for every new design, before you name it or build it. Returns JSON `{ uri, title, format }` — the new design, saved after every change; to continue it later, `open` this `uri`. Foreign-format imports may add `warnings` (what did not survive — substituted fonts, unsupported features): treat them as your touch-up list — `preview` the pages, then repair with `edit`.

输入参数titlesource

open

Work on a saved design itself: every later edit is saved into it. Pass the `uri` an `import` or `designs` gave you, verbatim. To start from a copy instead, `import` its `uri`. Returns `{ uri, title }`.

输入参数uri必填

export

Export the design you are working on — `format` picks the deliverable: `pdf` (print PDF), `png`/`jpeg`/`webp` (image), `svg` (vector SVG), `pdfx` (print-ready PDF/X), `html` (responsive HTML5), `idml` (Adobe InDesign), `psd` (layered PSD), `mp4` (video), `wav`/`m4a` (audio), `imgly` (editable design file). Renders `blockId` — or the whole document when `blockId` is omitted. Your edits are saved to the design as you make them (the viewer shows it), so there is nothing to save: every format is a copy for the person — a pdf to print, a png to post, `imgly` the editable design file with its images. Returns JSON `{ uri, httpUrl, bytes, format }` (plus `path` when you pass `outPath`). `uri` is the durable handle — treat it as opaque and pass it back verbatim where a URI is wanted. `httpUrl` is a fetch link tied to this process — fetch it to download the bytes to disk, or hand it to the user. `outPath` (optional, absolute path including the filename): ALSO write the artifact to that local path — the workspace copy is still written, and the response then carries `path`. Use it when the file is wanted on disk, and always when your environment cannot fetch localhost URLs (sandboxed harnesses, e.g. Claude Cowork — target your session's outputs folder there). `format=svg` is the engine's vector export: text is outlined into paths (renders identically everywhere, but is not editable text in the SVG), and raster images are embedded in the file at source resolution — an SVG of a photo-heavy design can be much larger than its source images. `format=imgly` writes a portable, self-contained `.imgly` design file (scene + all asset bytes bundled) — the inverse of `import`, and the only format that stays editable: a copy to move, back up or send. Whole-design only: `blockId` is not accepted. Because the archive inlines every referenced asset it is the heaviest call this server makes, and it REFUSES rather than ship a design whose fonts or images could not be loaded — retry it, do n

输入参数fpshtmlpagepdfxbleedwidthformat必填heightblockIdoutPath

designs

The saved designs you can `open` or `import` a copy of, newest first. The one you are working on is marked `current`. A row marked `unsaved` is work an earlier session left before it was saved: `open` it to continue.

无需输入参数。

scorecard

Record the verdict of a judge loop you have COMPLETED for the design you are working on — the final step of the `judge` skill. Recording is a claim about work already done: never call this without having scored the axes against actual `preview` renders of the design in its current state. `verdict: 'pass'` — every applicable axis scored ≥ 8; the design may be delivered. `verdict: 'fail'` — you are stopping with an axis below 8 (e.g. the user cut remediation short); the failure stays on record. There is no `revision`: the verdict covers the session as it stands when you record it, and ANY later `edit` or `import` clears it — so judge last, and re-judge after every further change. `export` checks it: delivering or saving a design the latest verdict does not cover adds a reminder to its result.

输入参数verdict必填

rename

Give a design its title — the name `designs` lists it by. Without `uri`, renames the design you are working on: if it is saved already, it is renamed now, and otherwise its first change saves it under the title. With `uri` (from `designs` or `import`), renames that saved design. Returns JSON `{ uri, title, previousTitle }`, or `{ title }` while the design has no change saved yet. Nothing in the design changes.

输入参数urititle必填

checklist

Register the brief's ACCEPTANCE CHECKLIST — the machine-checkable claims that must hold before the work counts as done. Do this right after intake, before the first edit: extract from the brief every required output file, every string of approved copy that must land verbatim, and note the constraints only you can check. Skip it only when the brief fixes no outputs or copy. Item kinds: - { kind: 'output', path } — a file that must exist when the work is delivered (absolute path, e.g. every variant the brief orders exported with `outPath`). - { kind: 'copy', text } — approved copy that must appear VERBATIM in the design's text (whitespace variants are folded; wording, case and punctuation are exact). - { kind: 'note', text } — a self-check the server cannot verify. Kept on record; never machine-checked. Every `export` checks the list against the design and the disk and names the unmet items — treat one exactly like a failing test. Calling `checklist` again REPLACES the whole list; it lasts for this conversation. Returns `{ itemCount }`, or `{ items }` (the current list) when called without `items`.

输入参数items

view

Get a URL the human can open to view and edit the design you are working on in CE.SDK. Returns the design's stable URL — it follows every change, so print it ONCE and don't re-emit a fresh URL every turn. The page is a full editor; when the human clicks 'Save', their edits land in the same design file. A new design is viewable after its first change. The editor opens in the mode the human last chose for this design, else 'motion' (timeline) when the design has animation, video, audio or timed blocks and 'design' otherwise; pass `mode` to force one. The human can change the design there and save it: your next call says so, and you `preview` their version before you continue.

输入参数mode

asset_add

Add a local media file (image, font, video, or audio) to the workspace so it can be used in a design. Copies the file bytes into the content-addressed asset store at `assets/<sha>.<ext>`. The bring-your-own arm of the asset family: `asset_search` finds an existing asset, `asset_generate` makes one, `asset_add` takes one off your disk — all three return a `workspace://` uri to embed in `edit`. (To turn a design FILE into a new design, use `import`.) Returns JSON: `{ uri, httpUrl, mimeType, kind, width?, height?, bytes, note? }`; an image has `width` and `height` in pixels — frame it at that aspect unless you mean to crop it (a logo never). `uri` (a `workspace://` URI) is the durable handle — embed it in a subsequent `edit` (image/video fill or audio `fileURI`; for a font, as both `text.font: { typeface, uri }`'s uri and `typeface.fonts[].uri`), NEVER `httpUrl` and NEVER the original `file://` path, so the design stays loadable after a restart or rewind. `httpUrl` is a fetch link for opening the asset now. Files are classified by content (magic bytes) first, extension second: a misnamed file is stored under its actual type, and `note` explains any correction, rescue, or unverifiable content. Make-available only: it never edits a scene and never creates a revision — do the placement in `edit`. Source: `{ path }` — an absolute path to a file the server can read.

输入参数source必填

asset_generate

Unavailable until you sign in with `login` (free IMG.LY account); once signed in, it works. Generate images, video, speech, music and sound effects — and transcribe speech — via the AI gateway. Call with NO arguments first: returns the curated model catalog, every entry tagged with its `capability` (text2image, image2image, text2video, image2video, text2speech, speech2text, …). Filter with `capability`; `source: "all"` (together with a `capability`) adds the provider models — e.g. music and sound effects under `text2audio`. Then call with `model` + `prompt` (+ optional `format` aspect like "16:9"). Model-specific inputs (duration, voice, lyrics, an input file…) go in `params`, sent to the model verbatim under the model's own field names — `model` + `schema: true` returns the fields a model takes. A `uri` inside `params` that an earlier tool result gave you is uploaded for the model first (e.g. `{ audio_url: '<id>' }` to transcribe). For image-to-image, pass `image_uris` with uris an earlier tool result gave you. Never assemble one by hand. Returns ONE JSON part: the asset, in the engine's own asset shape — `{ id, meta: { uri, mimeType, kind, duration?, width?, height?, thumbUri? } }`, the same objects `asset_search` returns, plus `cost` (credits) when the gateway reports it. `id` is the durable handle: embed it in `edit` code (image or video fill, audio block) and pass it back here as an `image_uris` entry. It equals `meta.uri`. `meta.kind` is `image`, `video`, `audio` or `file`; `meta.duration` (seconds, as a string) is present for audio/video when the file header states it. Any other result that is data rather than a file comes back as `{ output }`, verbatim. Transcription (speech2text, e.g. `elevenlabs/scribe-v2`): put the recording's uri in the model's audio field (`audio_url`) — audio OR video of any length; the audio is extracted and long recordings are split for you. The result is `{ transcriptUri, duration, language?, wordCount, lines }`: `lines` holds

输入参数modelformatparamspromptschemasourcecapabilityimage_uris

diagnostics

Inspect this codesign MCP server: `status` (default) reports what is running (build id, CE.SDK engine version, non-secret config); `summary` returns a bounded digest of recent activity (counts, recent errors, slowest calls); `open` returns a clickable local viewer URL with a Download-ZIP button to send diagnostics to IMG.LY.

输入参数action

login

Sign in with your IMG.LY account (opens the system browser). The session saves automatically once the user finishes in the browser; call login again anytime to confirm — safe to repeat, it does not restart the flow or invalidate the open link. Pass switch_account=true to sign in as a different user.

输入参数switch_account

logout

Sign out of your IMG.LY account (revokes the session and clears local credentials).

无需输入参数。

read_skill_resource

Read a CoDesign skill file by its `skill://codesign/<name>/<path>` URI; returns the same text as the MCP resource. Use it only when your host can't read MCP resources — otherwise read the resource directly.

输入参数uri必填

版本历史

9
  1. v0.6.0最新Nov 4, 2026
  2. v0.5.1Oct 21, 2026
  3. v0.5.0Oct 20, 2026
  4. v0.4.2Oct 5, 2026
  5. v0.4.1Oct 2, 2026
  6. v0.4.0Sep 29, 2026
  7. v0.3.6Sep 18, 2026
  8. v0.3.4Sep 17, 2026
  9. v0.3.3Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分