← All skills
opendesigner
92 / 100 · Low risk
Fine to try.
By ckryptickunal/OpenDesigner (GitHub) · design · 137 stars · scanned at commit 852f491
Design systems and the pages built on them, one question at a time. Use for tokens, DESIGN.md, a landing page, an app or a redesign ("make it look professional"), a style direction, a taste poll.
Works with any agent that supports SKILL.md skills.
What this skill can do
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 8 places.
Show 5 more
- .agents/skills/opendesigner/scripts/library.py, line 35
SCRIPT_BANNED = r"scrollIntoView|\bfetch\(|XMLHttpRequest|WebSocket|sendBeacon|localStorage|sessionStorage|document\.cookie|document\.(body|documentElement)|\be - .agents/skills/opendesigner/scripts/research.py, line 79
{"id": "web-search", "name": "Web search", "look_for": "a search tool (WebSearch, web_search, a search MCP)", - .agents/skills/opendesigner/scripts/research.py, line 81
{"id": "browser", "name": "A browser", "look_for": "WebFetch, an in-app browser, Chrome, Playwright", - .agents/skills/opendesigner/scripts/taste.py, line 33
import argparse, json, math, os, re, shutil, subprocess, sys, urllib.request, webbrowser - .agents/skills/opendesigner/scripts/taste.py, line 545
urllib.request.urlretrieve(url, dest)
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed.
Found in 16 places.
Show 13 more
- .agents/skills/opendesigner/scripts/test_engine.py, line 1008
commit = lambda *extra: subprocess.run(["git", "commit", "-qm", "work", *extra], cwd=t, env=env, capture_output=True, text=True) - .agents/skills/opendesigner/scripts/test_engine.py, line 1046
r = subprocess.run(["git", "config", "--get", "core.hooksPath"], cwd=TEST_HOME, capture_output=True, text=True) - .agents/skills/opendesigner/scripts/test_engine.py, line 1127
subprocess.run(["git", "-C", t, *a], check=True, capture_output=True, env=env) - .agents/skills/opendesigner/scripts/test_engine.py, line 5465
git = lambda *a: subprocess.run(["git", "-c", "user.email=t@t", "-c", "user.name=t", *a], cwd=t, capture_output=True, check=True) - .agents/skills/opendesigner/scripts/test_research.py, line 37
return subprocess.run([sys.executable, str(ENGINE), "--dir", str(d), *args], capture_output=True, text=True, timeout=300) - .agents/skills/opendesigner/scripts/test_research.py, line 555
return subprocess.run([sys.executable, str(RESEARCH), "--dir", self.d, *args], capture_output=True, text=True, timeout=120) - .agents/skills/opendesigner/scripts/test_taste.py, line 77
subprocess.run([sys.executable, str(HERE / "taste.py"), "build", "--project", "Acme", "--out", str(out)], - .agents/skills/opendesigner/scripts/test_taste.py, line 92
r = subprocess.run([sys.executable, str(HERE / "taste.py"), "import", "-", "--dir", str(od)], - .agents/skills/opendesigner/scripts/test_taste.py, line 102
again = subprocess.run([sys.executable, str(HERE / "taste.py"), "import", str(od / "taste-profile.json"), - .agents/skills/opendesigner/scripts/test_taste.py, line 123
out = subprocess.run(["node", "-e", js], capture_output=True, text=True, check=True).stdout.splitlines() - .agents/skills/opendesigner/scripts/test_taste.py, line 244
r = subprocess.run([sys.executable, str(HERE / "taste.py"), "fit", "-", "--dir", tmp], input=json.dumps(payload), - .agents/skills/opendesigner/scripts/test_taste.py, line 257
r = subprocess.run([sys.executable, str(HERE / "taste.py"), "fit", "-", "--dir", tmp], input=json.dumps(payload), - hooks/hooks.json, line 10
"command": "[ -f \"${CLAUDE_PROJECT_DIR:-.}/opendesigner/state.json\" ] && python3 -B \"${CLAUDE_PLUGIN_ROOT}/skills/opendesigner/scripts/engine.py\" --dir \"${
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'opendesigner' ] || [ -L ~/.agents/skills/'opendesigner' ]; then echo 'A skill folder named opendesigner already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/ckryptickunal/OpenDesigner' "$d" && git -C "$d" checkout --quiet '852f49165f302bc4bfcca74a17276c148e558f1f' -- '.agents/skills/opendesigner' && mkdir -p ~/.agents/skills && cp -R "$d"/'.agents/skills/opendesigner' ~/.agents/skills/'opendesigner' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'opendesigner' ~/.claude/skills/'opendesigner' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for ckryptickunal/OpenDesigner shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/ckryptickunal/OpenDesigner/)
Score history
| Date | Version | Score |
|---|
| 2026-11-13 | 852f491 | 92 |
| 2026-11-09 | b9dac0f | 92 |
| 2026-11-07 | b330025 | 97 |
Also found in
Identical copies of this skill exist at:
- ckryptickunal/OpenDesigner/.claude/skills/opendesigner
- ckryptickunal/OpenDesigner/skills/opendesigner