Not in the top 1,000 by GitHub stars
docsor1212/aesthete-agent
Mechanically validated frontend aesthetics for AI agents: 89-palette evidence library, OKLCH generation, WCAG/APCA contrast, color-blind-safe data colors, AI-slop detection, theme packs, W3C design tokens. Skill + MCP server.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
1ebb86937ba5 → 1ebb86937ba5
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 1ebb86937ba5
No earlier version was observed for comparison.
Heat
1.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
aesthete-agent
When your agent uses it
Color palette generation, frontend aesthetics, UI color schemes — mechanically validated color output for UI/HTML, SVG slides, video covers, charts and posters. An 119-palette evidence library matched by register, OKLCH harmony generation, luminance ramps and image extraction; 60-30-10 role mapping with semantic colors; a 5-dimension scorecard plus WCAG contrast, color-blind simulation and AI-slop detection as four mechanical gates; card and six-scene visualizer previews; a preference-learning profile that evolves with every verdict. Named theme packs, full contrast matrices, CB-safe data-viz palettes, five-lens critique reports, and APCA (WCAG 3 draft) perceptual contrast included. Pure stdlib, offline. Skip when pure text layout, translation or polishing, copywriting, or any task unrelated to color and frontend aesthetics. Trigger words — color palette, color scheme, palette generation, frontend aesthetics, UI color, design aesthetics, hex, contrast, WCAG, color blind, visual taste, aesthete-agent.
What it loads into context
Frontmatter
231 tokensAlways available to the agent
SKILL.md
4,563 tokensWhen the skill is activated
Reference documents
34,888 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Capability × Boundary Quick Reference
- Six-Step Method
- Verdict write-back & customization
- Reference docs (30-second routing)
- Selection methodology
Scripts executed separately
mcp/server.pyscripts/_showcase_scenes.pyscripts/build_library.pyscripts/chart_kit.pyscripts/color_director.pyscripts/exemplar_kit.pyscripts/font_kit.pyscripts/layout_recipes.pyscripts/lint_page.pyscripts/loop_kit.pyscripts/make_cjk_subset.pyscripts/make_exemplars.pyscripts/make_variants.pyscripts/narrate_kit.pyscripts/page_audit.pyscripts/palette_forge.pyscripts/qc_kit.pyscripts/render_probe.jsscripts/scaffold_kit.pyscripts/scene_kit.pyscripts/token_sheet.pyscripts/type_kit.pytests/__init__.pytests/test_v00202.pytests/test_v00300.pytests/test_v00400.pytests/test_v00500.pytests/test_v00501.pytests/test_v00600.pytests/test_v00601.pytests/test_v00700.pytests/test_v00800.pytests/test_v00900.pytests/test_v01000.pytests/test_v01100.pytests/test_v01200.pytests/test_v01300.pytests/test_v01400.pytests/test_v01500.pytests/test_v01600.pytests/test_v01700.pytests/test_v01800.pytests/test_v01900.py
Files
.gitignoreasset25 bytesLICENSEasset1,063 bytesREADME.mddoc9,625 bytesREADME.zh-CN.mddoc9,196 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesSKILL.mdcore19,504 bytesassets/fonts/README-OFL.txtdoc263 bytesassets/fonts/serif-black-common500.woff2asset126,764 bytesassets/fonts/serif-black-headline.woff2asset8,540 bytesassets/icon-512.pngasset2,025 bytesdocs/demo/card.htmlasset4,656 bytesdocs/demo/showcase.htmlasset90,107 bytesdocs/demo/user_palettes.jsonasset5,804 bytesdocs/demo/visualizer-dark.htmlasset17,687 bytesdocs/demo/visualizer-light.htmlasset17,687 bytesdocs/fonts/cjk-title-black.woff2asset22,992 bytesdocs/fonts/cjk-title-bold.woff2asset24,108 bytesdocs/img/card.pngasset49,037 bytesdocs/img/hero-scenes.pngasset239,072 bytesdocs/img/showcase-dashboard.pngasset197,406 bytesdocs/img/showcase-ecom.pngasset228,610 bytesdocs/img/showcase-editorial.pngasset246,853 bytesdocs/img/showcase-hero.pngasset249,577 bytesdocs/img/showcase-landing.pngasset248,070 bytesdocs/img/showcase-mobile.pngasset201,473 bytesdocs/index.htmlasset21,486 bytesexamples/example-kd-teaching-page.htmlasset9,898 bytesglama.ymlasset1,029 bytesmcp/README.mddoc1,874 bytesmcp/pyproject.tomlasset1,515 bytesmcp/server.pyruns21,200 bytespalettes/palettes.jsonasset56,927 bytespalettes/themes.jsonasset9,546 bytesprofile.jsonasset1,849 bytesreferences/anti-slop.mddoc3,440 bytesreferences/cjk-typography.mddoc5,295 bytesreferences/color-theory.mddoc5,868 bytesreferences/craft-rules.mddoc2,937 bytesreferences/critique.mddoc7,140 bytesreferences/curation.mddoc3,175 bytesreferences/data-viz.mddoc2,387 bytesreferences/design-techniques.mddoc10,121 bytesreferences/exemplars/blueprint-dark.htmlasset10,615 bytesreferences/exemplars/dark-four-act-dark.htmlasset18,335 bytesreferences/exemplars/edit-split-light.htmlasset14,146 bytesreferences/exemplars/editorial-mag-light.htmlasset12,013 bytesreferences/exemplars/swiss-poster-light.htmlasset7,618 bytesreferences/expressive-design.mddoc4,383 bytesreferences/harvest-playbook.mddoc4,643 bytesreferences/layout-composition.mddoc15,930 bytesreferences/render-loop.mddoc2,043 bytesreferences/responsive.mddoc4,782 bytesreferences/typography-aesthetics.mddoc6,303 bytesreferences/typography-system.mddoc6,454 bytesrgb.narration.mddoc1,494 bytesscripts/_showcase_scenes.pyruns47,369 bytesscripts/build_library.pyruns6,259 bytesscripts/chart_kit.pyruns7,662 bytesscripts/color_director.pyruns17,981 bytesscripts/exemplar_kit.pyruns4,453 bytesscripts/font_kit.pyruns4,655 bytesscripts/layout_recipes.pyruns34,362 bytesscripts/lint_page.pyruns6,682 bytesscripts/loop_kit.pyruns3,686 bytesscripts/make_cjk_subset.pyruns4,489 bytesscripts/make_exemplars.pyruns3,080 bytesscripts/make_variants.pyruns6,208 bytesscripts/narrate_kit.pyruns4,147 bytesscripts/page_audit.pyruns25,013 bytesscripts/palette_forge.pyruns128,033 bytesscripts/qc_kit.pyruns7,705 bytesscripts/render_probe.jsruns3,150 bytesscripts/scaffold_kit.pyruns21,507 bytesscripts/scene_css.cssasset18,285 bytesscripts/scene_kit.pyruns3,784 bytesscripts/token_sheet.pyruns9,906 bytesscripts/type_kit.pyruns6,764 bytesscripts/user_palettes.jsonasset5,804 bytessmithery.yamlasset318 bytestests/__init__.pyruns1 bytestests/fixtures_colorlab.jsonasset10,302 bytestests/test_v00202.pyruns4,803 bytestests/test_v00300.pyruns7,007 bytestests/test_v00400.pyruns100 bytestests/test_v00500.pyruns5,018 bytestests/test_v00501.pyruns100 bytestests/test_v00600.pyruns100 bytestests/test_v00601.pyruns100 bytestests/test_v00700.pyruns8,122 bytestests/test_v00800.pyruns6,068 bytestests/test_v00900.pyruns6,719 bytestests/test_v01000.pyruns4,016 bytestests/test_v01100.pyruns5,544 bytestests/test_v01200.pyruns4,227 bytestests/test_v01300.pyruns4,293 bytestests/test_v01400.pyruns5,744 bytestests/test_v01500.pyruns2,487 bytestests/test_v01600.pyruns7,231 bytestests/test_v01700.pyruns6,748 bytestests/test_v01800.pyruns2,906 bytestests/test_v01900.pyruns3,007 bytes
Read SKILL.md
# aesthete-agent — Frontend Aesthetics Engine
Why LLM color output is bad, with evidence: models treat hex codes as text, regress to the median of training data (the frontend-tutorial median is purple/indigo), and cannot actually see color. The fix is not a better model — it is **outsourcing taste to process**: manifesto first, role mapping, mechanical validation, in-context self-review.
⛔ Iron rules:
1. **No bare palette writing.** Every color task goes through the six-step method; step 6 (five-lens review) is not skippable.
2. **No runtime access to the source site** — no public API, direct connections hit Cloudflare 403; all data ships offline.
3. **The brief is law**: colors and aesthetics pinned by the user are binding constraints. Already-shipped brand systems are out of scope for re-paletteing.
4. **Bounded verification**: build fully → one batched review → one batched fix round → at most one more confirmation → **stop polishing**.
5. **Candidate discipline**: user verdicts require ≥2 full-page candidates (`make_variants.py` builds the comparison sheet); a single proposal is not sent for review.
6. **Verdict write-back**: every accept/reject lands in `profile.json` (machine-read) and `critique.md` necropsies (failure modes) — no write-back, no growth.
### Task → command (30 seconds)
View the complete source on GitHubSkills included
- aesthete-agent
Repository facts
- License
- MIT
- Created
- Oct 14, 2026
- Last pushed
- Oct 25, 2026
- Forks
- 0
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 37 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 128 network referencesin 20 files: docs/index.html:6 README.md:1 README.zh-CN.md:1 and 17 more
- No hidden or obfuscated text
- No instruction overrides
- 43 executable scriptsin 43 files: mcp/server.py:1 scripts/_showcase_scenes.py:1 scripts/build_library.py:1 and 40 more
- No access to secrets
- No requests to vote in Hot
Show all 171 signals by file
README.md
- Network accessline 1
<p align="center"> <b>English</b> | <a href="README.zh-CN.md">简体中文</a> | <a href="https://docsor1212.github.io/aesthete-agent/">Online demo</a> - Network accessline 2
<b>English</b> | <a href="README.zh-CN.md">简体中文</a> | <a href="https://docsor1212.github.io/aesthete-agent/">Online demo</a> - Network accessline 15
[](https://github.com/docsor1212/aesthete-agent) - Network accessline 16
[](LICENSE) - Network accessline 17
[](#the-evidence-library) - Network accessline 18
[](tests/) - Network accessline 31
Every image below is a real deliverable produced by the engine — roles derived in OKLCH, contrast gated, color-blind simulated, slop checked, then rendered into a full scene. No hand-picked colors. Live versions: [visual showcase](https://d - Network accessline 62
or open [skillhub.cn/skills/aesthete-agent](https://skillhub.cn/skills/aesthete-agent) and click 安装到本地 Agent. - Network accessline 139
| Platform | Handle | Link | |---|---|---| | GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above | - Network accessline 140
|---|---|---| | GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above | | SkillHub (中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthe - Network accessline 141
| GitHub (source of truth) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | install above | - Network accessline 142
| SkillHub (中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` | - Network accessline 143
| ClawHub | [aesthete-agent](https://clawhub.ai/skills/aesthete-agent) | `npx clawhub install aesthete-agent` | - Network accessline 144
| PyPI (MCP) | [aesthete-agent-mcp](https://pypi.org/project/aesthete-agent-mcp/) | `uvx aesthete-agent-mcp` | - Network accessline 145
| Smithery (MCP) | [docsor1212/aesthete-agent-mcp](https://smithery.ai/server/docsor1212/aesthete-agent-mcp) | `npx -y @smithery/cli install ...` | - Network accessline 146
| Online demo | [GitHub Pages](https://docsor1212.github.io/aesthete-agent/) | showcase + live visualizers |
README.zh-CN.md
- Network accessline 1
<p align="center"> <a href="README.md">English</a> | <b>简体中文</b> | <a href="https://docsor1212.github.io/aesthete-agent/">在线演示</a> - Network accessline 2
<a href="README.md">English</a> | <b>简体中文</b> | <a href="https://docsor1212.github.io/aesthete-agent/">在线演示</a> - Network accessline 15
[](https://github.com/docsor1212/aesthete-agent) - Network accessline 16
[](LICENSE) - Network accessline 17
[](#实证色板库) - Network accessline 18
[](tests/) - Network accessline 31
下面每张图都是引擎的真实产出——OKLCH 角色派生、对比度过闸、色盲模拟、AI 味检查,然后渲染成完整场景。没有一张是手工挑色的。在线版:[视觉 showcase](https://docsor1212.github.io/aesthete-agent/demo/showcase.html)(30 个场景 × 精选色板)。 - Network accessline 62
或打开 [skillhub.cn/skills/aesthete-agent](https://skillhub.cn/skills/aesthete-agent),点「安装到本地 Agent」。 - Network accessline 139
| 平台 | 句柄 | 链接 | |---|---|---| | GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 | - Network accessline 140
|---|---|---| | GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 | | SkillHub(中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` | - Network accessline 141
| GitHub(源) | [docsor1212/aesthete-agent](https://github.com/docsor1212/aesthete-agent) | 安装命令见上 | - Network accessline 142
| SkillHub(中文站) | [aesthete-agent](https://skillhub.cn/skills/aesthete-agent) | `skillhub install aesthete-agent` | - Network accessline 143
| ClawHub | [aesthete-agent](https://clawhub.ai/skills/aesthete-agent) | `npx clawhub install aesthete-agent` | - Network accessline 144
| PyPI(MCP) | [aesthete-agent-mcp](https://pypi.org/project/aesthete-agent-mcp/) | `uvx aesthete-agent-mcp` | - Network accessline 145
| Smithery(MCP) | [docsor1212/aesthete-agent-mcp](https://smithery.ai/server/docsor1212/aesthete-agent-mcp) | `npx -y @smithery/cli install ...` | - Network accessline 146
| 在线演示 | [GitHub Pages](https://docsor1212.github.io/aesthete-agent/) | showcase + 在线 visualizer |
assets/fonts/README-OFL.txt
- Network accessline 1
Fonts in this directory are subsets of Noto Serif SC (SIL Open Font License 1.1). Copyright 2014-2021 Adobe (originally), published by Google. OFL 1.1 full text: https://openfontlicense.org - Network accessline 2
Copyright 2014-2021 Adobe (originally), published by Google. OFL 1.1 full text: https://openfontlicense.org Subsets generated by aesthete-agent font pipeline (--fonts preset/auto). - Network accessline 3
OFL 1.1 full text: https://openfontlicense.org
docs/demo/showcase.html
- Network accessline 255
.divbar{height:3px;background:#1F2328;width:64px;border-radius:2px;margin:18px 0 10px} footer{padding:48px 0 72px;font:400 13px system-ui;color:#6B7280;text-align:center} </style></head><body><div class='topnav'><div class='bar'><a class='b - Network accessline 256
footer{padding:48px 0 72px;font:400 13px system-ui;color:#6B7280;text-align:center} </style></head><body><div class='topnav'><div class='bar'><a class='brand' href='../'><span class='mark'><i style='background:#FFA69E'></i><i style='backgro - Network accessline 257
</style></head><body><div class='topnav'><div class='bar'><a class='brand' href='../'><span class='mark'><i style='background:#FFA69E'></i><i style='background:#B8F2E6'></i></span>aesthete-agent <span class='chip'>v0.7.0</span></a><nav><a h - Network accessline 267
<section class='scene' id='sD2'><div class='shead'><span class='sno'>D2</span><h2>Dashboard — KPI + revenue — bright dark</h2><div class='badges'><span class='b ok'>text/bg 8.0:1 AA</span><span class='b ok'>color-blind safe</span><span clas
docs/index.html
- Network accessline 6
<title>aesthete-agent — color systems that pass the review</title> <meta name="description" content="A mechanical color engine for front-end work: register-matched palette library, OKLCH role derivation, and four gates that catch contrast f - Network accessline 7
<meta name="description" content="A mechanical color engine for front-end work: register-matched palette library, OKLCH role derivation, and four gates that catch contrast failures, color-blindness collisions and AI-slop signatures before a - Network accessline 8
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%233D405B'/%3E%3Crect x='6' y='6' width='9' height='20' rx='2' fill='%23FFA69E'/%3E%3Crect - Network accessline 162
<a href="#how">How it works</a> <a href="#install">Install</a> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 163
<a href="#install">Install</a> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> </span> - Network accessline 164
<a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 168
<a href="#how">工作原理</a> <a href="#install">安装</a> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 169
<a href="#install">安装</a> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> </span> - Network accessline 170
<a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 309
<span class="lbl l-en">SkillHub (CN)</span><span class="lbl l-zh">SkillHub(国内)</span> <code>skillhub install aesthete-agent --dir ~/.claude/skills</code> <span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-a - Network accessline 310
<code>skillhub install aesthete-agent --dir ~/.claude/skills</code> <span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span> <span class="note l-zh"><a href="https://skillhub.cn/skil - Network accessline 311
<span class="note l-en"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span> - Network accessline 312
<span class="note l-zh"><a href="https://skillhub.cn/skills/aesthete-agent">skillhub.cn</a></span> - Network accessline 315
<span class="lbl l-en">ClawHub</span><span class="lbl l-zh">ClawHub</span> <code>npx clawhub install aesthete-agent</code> <span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span> - Network accessline 316
<code>npx clawhub install aesthete-agent</code> <span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span> <span class="note l-zh"><a href="https://clawhub.ai/skills/aesthete-agent">claw - Network accessline 317
<span class="note l-en"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span> - Network accessline 318
<span class="note l-zh"><a href="https://clawhub.ai/skills/aesthete-agent">clawhub.ai</a></span> - Network accessline 321
<span class="lbl l-en">DeepSeek Harness plugin</span><span class="lbl l-zh">DeepSeek Harness 原生插件</span> <code>dsh plugin --profile web add github:docsor1212/dsh-aesthete-agent</code> <span class="note l-en"><a href="https:/ - Network accessline 322
<code>dsh plugin --profile web add github:docsor1212/dsh-aesthete-agent</code> <span class="note l-en"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 native tools, local engine</a></span> <span class="note l-zh - Network accessline 323
<span class="note l-en"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 native tools, local engine</a></span> - Network accessline 324
<span class="note l-zh"><a href="https://github.com/docsor1212/dsh-aesthete-agent">8 个原生工具,本地引擎</a></span> - Network accessline 327
<span class="lbl l-en">MCP server</span><span class="lbl l-zh">MCP 服务器</span> <code>uvx aesthete-agent-mcp</code> <span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor - Network accessline 328
<code>uvx aesthete-agent-mcp</code> <span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span> <span class="note l-zh">来自 PyPI 的 - Network accessline 329
<span class="note l-en">13 tools from PyPI, any MCP client · or via <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span> - Network accessline 330
<span class="note l-zh">来自 PyPI 的 13 个工具,任何 MCP 客户端 · 或经 <a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a></span> - Network accessline 337
<div class="wrap"> <nav> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 338
<nav> <a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> <a href="https://pypi.org/project/aesthete-agent-mcp/">PyPI</a> - Network accessline 339
<a href="https://github.com/docsor1212/aesthete-agent">GitHub</a> - Network accessline 340
<a href="https://pypi.org/project/aesthete-agent-mcp/">PyPI</a> - Network accessline 341
<a href="https://smithery.ai/server/docsor1212/aesthete-agent-mcp">Smithery</a> - Network accessline 342
<a href="https://skillhub.cn/skills/aesthete-agent">SkillHub</a> - Network accessline 343
<a href="docs.html">技术文档</a> <a href="https://docsor.cn/">docsor.cn</a> </nav> - Network accessline 344
<a href="https://docsor.cn/">docsor.cn</a>
glama.yml
- Network accessline 1
# Glama.ai platform configuration # https://glama.ai/mcp/servers/docsor1212/aesthete-agent - Network accessline 2
# https://glama.ai/mcp/servers/docsor1212/aesthete-agent - Network accessline 6
author: "SorSor" license: "MIT" homepage: "https://github.com/docsor1212/aesthete-agent" - Network accessline 7
license: "MIT" homepage: "https://github.com/docsor1212/aesthete-agent" repository: "https://github.com/docsor1212/aesthete-agent" - Network accessline 8
homepage: "https://github.com/docsor1212/aesthete-agent" - Network accessline 9
repository: "https://github.com/docsor1212/aesthete-agent" - Network accessline 10
documentation: "https://github.com/docsor1212/aesthete-agent#readme" - Network accessline 11
support: "https://github.com/docsor1212/aesthete-agent/issues"
mcp/README.md
- Network accessline 8
uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp - Network accessline 33
"aesthete-agent": { "command": "uvx", "args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"] - Network accessline 34
"command": "uvx", "args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"] } - Network accessline 35
"args": ["--from", "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp", "aesthete-agent-mcp"]
mcp/server.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 5
Run (FastMCP environment): uvx aesthete-agent-mcp # PyPI (self-contained wheel) # or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp - Network accessline 6
uvx aesthete-agent-mcp # PyPI (self-contained wheel) # or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp # or: python mcp/server.py # stdio mode - Network accessline 7
# or: uvx --from "git+https://github.com/docsor1212/aesthete-agent#subdirectory=mcp" aesthete-agent-mcp
references/design-techniques.md
- Network accessline 27
<!-- 颗粒噪点(data-URI,零外链) --> :root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3 - Network accessline 28
:root{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height=
references/exemplars/blueprint-dark.html
- Network accessline 64
body{background:var(--night);color:var(--pale)} .frame{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M24 0H0V24' fill='none' stroke='%23DBEAFE' stroke-opacity='.10'/%3 - Network accessline 65
.frame{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M24 0H0V24' fill='none' stroke='%23DBEAFE' stroke-opacity='.10'/%3E%3C/svg%3E");background-size:24px 24px}
references/exemplars/dark-four-act-dark.html
- Network accessline 25
--serif:'Noto Serif SC','Source Han Serif SC','Songti SC',Georgia,serif; --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif; --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' h - Network accessline 26
--sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif; --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFr - Network accessline 27
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240'
references/exemplars/editorial-mag-light.html
- Network accessline 64
.bleed{height:60vh;background:var(--night);position:relative;overflow:hidden; display:flex;align-items:flex-end} .bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3 - Network accessline 65
display:flex;align-items:flex-end} .bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fra - Network accessline 66
.bleed::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numO
references/expressive-design.md
- Network accessline 36
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240'
references/harvest-playbook.md
- Network accessline 11
- **无公开 API**:`the source site/api/*`、`/api/palettes/*` 等 curl 直连全部 HTTP 403(Cloudflare "Just a moment"),无论带什么 UA。WebFetch 同样 403。 - Network accessline 19
1. **开页**:`agent.browsers.getForUrl("https://the source site/palettes/trending")` → 新 tab → goto → `waitForLoadState("domcontentloaded")`。Cloudflare 挑战页标题是"请稍候…",**等 5-8 秒**自动放行(无需点击),以 `tab.title()` 变为 "Trending Color Palettes - the source
scripts/_showcase_scenes.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 701
"<a href='#vivid'>Vivid & Bold</a><a href='#elegant'>Elegant & Deep</a>" "<a href='#dark'>Bright dark</a><a class='x' href='../'>← Overview</a>" "<a class='x' href='https://github.com/docsor1212/aesthete - Network accessline 702
"<a href='#dark'>Bright dark</a><a class='x' href='../'>← Overview</a>" "<a class='x' href='https://github.com/docsor1212/aesthete-agent'>GitHub</a></nav>" "</div></div>" - Network accessline 703
"<a class='x' href='https://github.com/docsor1212/aesthete-agent'>GitHub</a></nav>" - Network accessline 719
+ dark_scenes + "<footer>aesthete-agent v0.5.0 — every canvas above passed contrast / color-blind / AI-slop / scorecard gates before rendering." "<br><a href='../'>← Overview</a> · <a href='https://github.com/do - Network accessline 720
"<footer>aesthete-agent v0.5.0 — every canvas above passed contrast / color-blind / AI-slop / scorecard gates before rendering." "<br><a href='../'>← Overview</a> · <a href='https://github.com/docsor1212/aesthete-agent'>Git - Network accessline 721
"<br><a href='../'>← Overview</a> · <a href='https://github.com/docsor1212/aesthete-agent'>GitHub</a> · " - Network accessline 722
"<a href='https://pypi.org/project/aesthete-agent-mcp/'>PyPI</a> · <a href='#top'>Back to top</a></footer>"
scripts/build_library.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/chart_kit.py
- Executable scriptline 1
Executable file
scripts/color_director.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/exemplar_kit.py
- Executable scriptline 1
Executable file
scripts/font_kit.py
- Executable scriptline 1
Executable file
scripts/layout_recipes.py
- Executable scriptline 1
Executable file - Network accessline 19
def _grain(): return ("url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' " - Network accessline 20
return ("url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' " - Network accessline 26
def _grid_bg(line_color): svg = ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E" - Network accessline 27
svg = ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E"
scripts/lint_page.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/loop_kit.py
- Executable scriptline 1
Executable file
scripts/make_cjk_subset.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 24
# Source Han Serif release assets (Adobe, OFL-1.1). Weight name -> file name # in https://github.com/adobe-fonts/source-han-serif/releases (SubsetOTF/CN/) - Network accessline 25
# in https://github.com/adobe-fonts/source-han-serif/releases (SubsetOTF/CN/) - Network accessline 31
"Regular": "SourceHanSerifCN-Regular.otf", } DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/" - Network accessline 32
} DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/" "2.003R/09_SourceHanSerifCN.zip") - Network accessline 33
DOWNLOAD_URL = ("https://github.com/adobe-fonts/source-han-serif/releases/download/"
scripts/make_exemplars.py
- Executable scriptline 1
Executable file
scripts/make_variants.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/narrate_kit.py
- Executable scriptline 1
Executable file
scripts/page_audit.py
- Executable scriptline 1
Executable file
scripts/palette_forge.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 2253
elif args.format == "svg": w = 120 * len(hexes) parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">'] - Network accessline 2254
w = 120 * len(hexes) parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">'] for i, h in enumerate(hexes): - Network accessline 2255
parts = [f'<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="120">']
scripts/qc_kit.py
- Executable scriptline 1
Executable file
scripts/render_probe.js
- Executable scriptline 1
Executable file
scripts/scaffold_kit.py
- Executable scriptline 1
Executable file - Network accessline 129
--serif:'Noto Serif SC','Source Han Serif SC','Songti SC',Georgia,serif; --sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif; --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' h - Network accessline 130
--sans:-apple-system,'PingFang SC','Microsoft YaHei','Segoe UI',sans-serif; --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFr - Network accessline 131
--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240'
scripts/scene_kit.py
- Executable scriptline 1
Executable file
scripts/token_sheet.py
- Executable scriptline 1
Executable file
scripts/type_kit.py
- Executable scriptline 1
Executable file
tests/__init__.py
- Executable scriptline 1
Executable file
tests/test_v00202.py
- Executable scriptline 1
Executable file
tests/test_v00300.py
- Executable scriptline 1
Executable file - Network accessline 100
svg = os.path.join(TMP, "sh.svg") open(svg, "w", encoding="utf-8").write( '<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>' - Network accessline 101
open(svg, "w", encoding="utf-8").write( '<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>' '<circle fill="#7C6BD4"/><rect fill="#3A3160"/><path fill="#FFFFFF"/>' - Network accessline 102
'<svg xmlns="http://www.w3.org/2000/svg"><rect fill="#E8E4F8"/>' - Network accessline 123
svg = os.path.join(TMP, "in.svg") open(svg, "w", encoding="utf-8").write( '<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" ' - Network accessline 124
open(svg, "w", encoding="utf-8").write( '<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" ' 'fill="#E8E4F8"/><circle fill="#7C6BD4"/><path fill="#FFFFFF"/>' - Network accessline 125
'<svg xmlns="http://www.w3.org/2000/svg"><rect width="10" height="10" '
tests/test_v00400.py
- Executable scriptline 1
Executable file
tests/test_v00500.py
- Executable scriptline 1
Executable file
tests/test_v00501.py
- Executable scriptline 1
Executable file
tests/test_v00600.py
- Executable scriptline 1
Executable file
tests/test_v00601.py
- Executable scriptline 1
Executable file
tests/test_v00700.py
- Executable scriptline 1
Executable file
tests/test_v00800.py
- Executable scriptline 1
Executable file
tests/test_v00900.py
- Executable scriptline 1
Executable file
tests/test_v01000.py
- Executable scriptline 1
Executable file
tests/test_v01100.py
- Executable scriptline 1
Executable file
tests/test_v01200.py
- Executable scriptline 1
Executable file
tests/test_v01300.py
- Executable scriptline 1
Executable file
tests/test_v01400.py
- Executable scriptline 1
Executable file
tests/test_v01500.py
- Executable scriptline 1
Executable file
tests/test_v01600.py
- Executable scriptline 1
Executable file
tests/test_v01700.py
- Executable scriptline 1
Executable file
tests/test_v01800.py
- Executable scriptline 1
Executable file
tests/test_v01900.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 3 facts
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/layout_recipes.py:20High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/palette_forge.py:2255High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/scaffold_kit.py:131High confidence
Signal confidence: 118 facts
- Network access in prose of documentationREADME.md:1Low confidence
- Network access in prose of documentationREADME.md:2Low confidence
- Network access in prose of documentationREADME.md:15Low confidence
- Network access in prose of documentationREADME.md:16Low confidence
- Network access in prose of documentationREADME.md:17Low confidence
- Network access in prose of documentationREADME.md:18Low confidence
- Network access in prose of documentationREADME.md:31Low confidence
- Network access in prose of documentationREADME.md:62Low confidence
- Network access in prose of documentationREADME.md:139Low confidence
- Network access in prose of documentationREADME.md:140Low confidence
- Network access in prose of documentationREADME.md:141Low confidence
- Network access in prose of documentationREADME.md:142Low confidence
- Network access in prose of documentationREADME.md:143Low confidence
- Network access in prose of documentationREADME.md:144Low confidence
- Network access in prose of documentationREADME.md:145Low confidence
- Network access in prose of documentationREADME.md:146Low confidence
- Network access in prose of documentationREADME.zh-CN.md:1Low confidence
- Network access in prose of documentationREADME.zh-CN.md:2Low confidence
- Network access in prose of documentationREADME.zh-CN.md:15Low confidence
- Network access in prose of documentationREADME.zh-CN.md:16Low confidence
- Network access in prose of documentationREADME.zh-CN.md:17Low confidence
- Network access in prose of documentationREADME.zh-CN.md:18Low confidence
- Network access in prose of documentationREADME.zh-CN.md:31Low confidence
- Network access in prose of documentationREADME.zh-CN.md:62Low confidence
- Network access in prose of documentationREADME.zh-CN.md:139Low confidence
- Network access in prose of documentationREADME.zh-CN.md:140Low confidence
- Network access in prose of documentationREADME.zh-CN.md:141Low confidence
- Network access in prose of documentationREADME.zh-CN.md:142Low confidence
- Network access in prose of documentationREADME.zh-CN.md:143Low confidence
- Network access in prose of documentationREADME.zh-CN.md:144Low confidence
- Network access in prose of documentationREADME.zh-CN.md:145Low confidence
- Network access in prose of documentationREADME.zh-CN.md:146Low confidence
- Network access in prose of documentationassets/fonts/README-OFL.txt:1Low confidence
- Network access in prose of documentationassets/fonts/README-OFL.txt:2Low confidence
- Network access in prose of documentationassets/fonts/README-OFL.txt:3Low confidence
- Network access in code of documentationmcp/README.md:8Low confidence
- Network access in code of documentationmcp/README.md:33Low confidence
- Network access in code of documentationmcp/README.md:34Low confidence
- Network access in code of documentationmcp/README.md:35Low confidence
- Executable script in code of a file that runsmcp/server.py:1High confidence
- Network access in prose of a file that runsmcp/server.py:5Low confidence
- Network access in prose of a file that runsmcp/server.py:6Low confidence
- Network access in prose of a file that runsmcp/server.py:7Low confidence
- Network access in code of documentationreferences/design-techniques.md:27Low confidence
- Network access in code of documentationreferences/design-techniques.md:28Low confidence
- Network access in code of documentationreferences/expressive-design.md:36Low confidence
- Network access in prose of documentationreferences/harvest-playbook.md:11Low confidence
- Network access in prose of documentationreferences/harvest-playbook.md:19Low confidence
- Executable script in code of a file that runsscripts/_showcase_scenes.py:1High confidence
- Network access in code of a file that runsscripts/_showcase_scenes.py:701High confidence
and 68 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.