Library curator
๐จ The open-source Claude Design alternative. ๐ฅ๏ธ Local-first desktop app. ๐ผ๏ธ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video โ real files, HTML/PDF/PPTX/MP4 export. ๐ค Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen & 20+ CLIs via BYOK.
npx -y skills add nexu-io/open-design --skill library-curatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Search the OD Library (the global asset registry) and apply matching assets into the current project mid-task. Use when the user asks to reuse an image they captured/uploaded earlier, "pull a logo/screenshot from my library", or to find and drop a stored asset into the page being built.
SKILL.md
2.2 KB, as published. Nobody here has run it
library-curator
Reuse assets that already live in the user's OD Library โ images captured with the OD Clipper, manual uploads, agent-generated media, and design-system material โ without asking the user to re-upload them.
When to use
- The user references an asset they already have ("the screenshot I clipped", "my logo", "that hero image from earlier").
- You need an image for the page you're building and the user prefers their own library over freshly generated media.
Tools (tool-token track)
Both endpoints authenticate with the run's tool token (OD_TOOL_TOKEN, injected
by the daemon) and operate on the project the run belongs to.
Search
POST /api/tools/library/search
{ "query": "blue hero background", "kind": "image", "limit": 20 }
Returns { "results": [{ "asset": { "id": "...", "kind": "image", "sourceTitle": "...", "width": 1600, "height": 900, "sources": [...] }, "score": 0 }], "semantic": false }.
semantic: false means keyword/metadata matching (no embedding model
configured). Filter and rank the results yourself from the asset metadata.
Apply
POST /api/tools/library/apply
{ "assetId": "<id from search>", "dir": "assets" }
Copies the asset into the project (default subdir library/, or the dir you
pass) and returns { "relPath": "assets/<hash>.png" }. Reference that
relPath from the HTML/CSS you write (e.g. <img src="assets/ab12cd34ef.png">).
Recipe
- Search with a tight query for the kind you need.
- Pick the best result by dimensions / title / source.
- Apply it to get a project-relative path.
- Wire that path into the artifact you're editing.
If search returns nothing, fall back to media generation rather than guessing a
path โ never invent a relPath that apply did not return.