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 分