跳到正文
GitHub·· 7 天前AI 评分58

Neatly 发布面向 Claude Code、Codex、Cursor 的 HTML 页面生成 Skill

kehaoran-ai/neatly

AI 导读

Neatly 是一个面向 Claude Code、Codex、Cursor 等可读取 Skill 的智能体的 HTML 页面生成 Skill,提供报告、幻灯片、仪表盘、落地页和文档五种布局,通过 npx skills add kehaoran-ai/neatly 安装。

正文

HTML pages from your AI that look like a person designed them.

A skill for Claude Code, Codex, Cursor and any agent that reads skills.
Reports, slide decks, dashboards, landing pages and docs, in one calm visual system.

Live demo · Examples · Install · 简体中文

MIT license Claude Code plugin Agent Skills No build step

The same dashboard: the usual AI version on the left, the Neatly version on the right

npx skills add kehaoran-ai/neatly

Then ask your agent for a page the way you normally would. That is the whole setup.

You can spot an AI-made page in a second

Ask any model for an HTML report and you get the same page everyone gets: a purple-to-blue gradient, a glowing headline with a rocket emoji, three cards in a row, an all-caps badge, and copy about "unlocking seamless growth". It is not ugly by accident. With no design system to work inside, the model falls back on the average of every landing page it has seen.

Neatly gives it a system instead:

  • One look. Neutral greys, one sans typeface, line-art diagrams on graph paper, and a single accent colour that you can change in one line.
  • Five layouts to start from, so the agent writes content instead of inventing structure.
  • Writing rules. Headlines state the finding with a number. No slogans, no stock phrases, nothing the user did not say.
  • A checker that fails the page for the usual tells before you ever see it.

Five layouts, one look

Every example below is a single HTML file. Click through to the live page.

Report
Report: reviews, analyses, memos and research write-ups
Deck
Deck: 16:9 slides, arrow keys to move, prints to PDF
Dashboard
Dashboard: KPIs with sparklines, charts, tables, activity
Landing page
Landing page: hero, features, pricing, FAQ, closing call
Docs
Docs: guides and API pages with steps and copyable code
Try a different colour. The demo site recolours every example live, and shows the starting file behind each one.

All five work at desktop, tablet and phone widths, and print cleanly.

How a page gets made

  1. You ask in plain words. "Make an HTML report on our September sales: revenue 18,400 dollars, up 12%." The skill picks the layout.
  2. The agent writes only the body. make.py copies the design system in untouched, so the agent writes about 80 lines of content, not 800 lines of CSS.
  3. The checker reads the page. Errors are fixed before the page is handed over.
  4. The page opens. One file. It works offline, fits phones and prints cleanly.
$ python3 scripts/make.py report body.html september.html --title "September sales"
wrote september.html
ok  september.html  (0 errors, 0 warnings)

We tested this with fresh agents that had never seen Neatly. Given only the skill, they produced a passing report and a passing slide deck on the first try, in 6 to 8 tool calls each.

Install

Claude Code

/plugin marketplace add kehaoran-ai/neatly
/plugin install neatly@neatly

Any agent that reads skills (Claude Code, Codex, Cursor and others)

npx skills add kehaoran-ai/neatly

By hand

git clone https://github.com/kehaoran-ai/neatly
cp -r neatly/skills/neatly ~/.claude/skills/

Things to ask for

Turn these meeting notes into a 6-slide deck for Monday.
Make a dashboard of our signups, activation and revenue from this CSV.
Write the docs page for installing our CLI, with copyable commands.
Make this page look better.        (attach any existing HTML file)

Make it yours

Everything follows one token. Put this at the top of the page's <body>:

<style>:root { --nt-accent: #e4572e; }</style>

Or just ask: "use our brand colour #e4572e". To preview a colour on any Neatly page, add ?accent=e4572e to its URL.

Chinese and Japanese pages work out of the box. The CJK system font sets the whole line, so Latin words inside a Chinese heading match the characters around them.

The checker

python3 skills/neatly/scripts/check.py page.html
Fails the page Warns about
Serif or italic headlines, Inter and Geist Raw colours that bypass the accent token
Gradients, glow, blur and glass Heavy shadows
Coloured bars down the left of a block Too many cards or too many accents
A row of exactly three cards More than two em dashes
All-caps text, emoji, dark-mode styles Stock phrases such as "seamless" and "unlock"
Leftover placeholders, a missing viewport

Run it on pages that were not made with Neatly too. It is a quick way to see why a page looks generated.

No agent, no problem

skills/neatly/neatly.css works on its own. Copy a file from skills/neatly/layouts/, replace the TODOs and open it in a browser. neatly.js is optional: it draws the charts, runs the slides, and handles copy buttons and the contents highlight. Every class is listed in reference/components.md.

Questions

Which agents does it work with? Anything that loads skills: Claude Code as a plugin or a skill, and Codex, Cursor and others through npx skills. If your agent has no skills support, clone the repo and tell it to follow skills/neatly/SKILL.md.

Does the page need the internet? Only for the Montserrat font, and it falls back to system fonts offline. There are no other requests.

Why not Tailwind or a component library? The output has to be one file you can email, open by double-clicking, or drop into a chat. No build step, no CDN script, nothing to install.

Can I change the font? Set --nt-sans the same way as the accent. Keep it a sans; the checker fails serif headlines on purpose.

Is there a dark mode? No. One mode, done well, is the point.

What is inside

skills/neatly/
  SKILL.md              how the agent uses Neatly
  neatly.css            the visual system, inlined into every page
  neatly.js             charts, slides, copy buttons, contents (optional)
  layouts/              five starting files
  reference/            component reference
  scripts/make.py       builds a page from a layout and a body
  scripts/check.py      the checker
examples/               the five finished pages
site/                   the demo site

Editing the CSS or JS? Run python3 scripts/build.py to inline them into every layout and example again.

Contributing

Issues and pull requests are welcome, especially new AI tells for the checker and pages where a layout falls short. Please attach a screenshot.

License

MIT, by Ke Haoran. If Neatly saved you from one purple gradient, a star helps other people find it.

来源:GitHub · github.com