UI-Sense-AI 是一个本地优先的 UI 灵感与 Prompt 记忆工具,帮助开发者把个人审美沉淀为可复用的 AI Agent 开发提示词。
v2.1.0 · Scope Guard & Page/Module Split
UI Sense AI 是一个本地优先的 UI 灵感与 AI Agent Prompt 记忆工具。它帮你收集优质界面截图、分析设计语言、沉淀个人审美偏好,并把这些偏好转成可直接交给 Codex / Claude Code 使用的 UI 开发提示词。核心目标:让 AI Agent 生成的界面更有产品质感、更统一、更贴近你的审美,而不是回到默认后台模板。
AI Agent 生成界面时有几个顽固问题:
- 看起来都像默认后台模板,缺乏产品质感
- 每次生成的风格不一致
- 配色、圆角、间距、组件语言没有长期记忆
- 你不知道什么样的 Prompt 产出最好
UI Sense AI 用一套本地工具把这些隐性偏好变成可复用、可迭代的结构化资产。
- Local-first — 灵感、评分、审美记忆、Prompt 历史默认保存在本地 SQLite,不依赖云同步。
- UI inspiration library — 用截图、URL、标签、评分和收藏集整理长期可复用的 UI 参考。
- Aesthetic memory — 从高评分灵感、AI 分析和 Prompt 反馈中持续提炼个人审美偏好。
- Prompt Generator — 把项目需求、参考灵感、审美记忆和反馈洞察组合成结构化开发提示词。
- Codex / Claude Code workflow — 生成结果强调页面范围、组件语言、禁止项和验收清单,适合直接交给 AI coding agent。
- Anti-generic AI UI — 通过 Scope Guard、页面/模块拆分和风格禁忌减少“AI 味”和廉价后台风。
- Portfolio-friendly full stack — Next.js App Router、TypeScript、Tailwind CSS 4、shadcn/ui、Prisma、SQLite 与 AI Workflow 组合完整。
| 功能 | 说明 |
|---|---|
| UI 灵感收藏 | 上传截图、填写标签和评分,记录优秀参考 |
| AI 设计分析 | 基于元信息或真实图片分析配色、布局、组件和设计语言 |
| 审美记忆生成 | 从高评分灵感和 AI 分析中自动总结长期审美偏好 |
| Prompt 生成器 | 模板 + 灵感 + 审美记忆 + 反馈策略,生成可执行开发提示词 |
| Prompt 反馈 | 对历史 Prompt 评分、收藏、标记好用/需要改进 |
| 反馈反哺策略 | 从反馈中总结 Prompt 结构和风格偏好,自动优化后续生成 |
| 收藏集管理 | 按项目方向整理灵感,支持 Prompt 按收藏集筛选 |
| URL 元信息读取 | 粘贴网页链接自动填入标题、描述和 favicon |
| 视觉分析 (可选) | 配置 OpenAI-compatible 视觉模型后,支持真实图片分析 |
| Scope Guard | 根据开发阶段控制页面范围,区分独立页面与页面内模块 |
| 本地优先 | SQLite 本地存储,不上传数据,不依赖云服务 |
收藏 UI 灵感 → AI 分析设计特征 → 生成审美记忆
↓
填写项目需求 → 选择参考灵感 → 生成 Prompt
↓
使用 Prompt → 反馈评分 → 反哺后续策略
当前仓库已放入一组本地演示截图,详见 screenshots/README.md。
| Screen | Suggested file | Status |
|---|---|---|
| Dashboard | screenshots/dashboard.png |
已补充 |
| Inspirations 列表 | screenshots/inspirations.png |
已补充 |
| 新增灵感页面 | screenshots/inspiration-new.png |
已补充 |
| Prompt Generator | screenshots/prompt-generator.png |
已补充 |
| Settings | screenshots/settings.png |
已补充 |
UI Sense AI 适合这些开发场景:
- 个人 UI 审美沉淀 — 把喜欢/不喜欢的界面变成长期可复用的审美资料库。
- AI Agent 开发提示词生成 — 为 Codex / Claude Code 生成更具体、更可执行的 UI 开发 Prompt。
- 项目风格统一 — 在多个页面或迭代中复用同一套配色、布局、组件和禁止项。
- 课程设计 / 作品集项目包装 — 展示完整的本地工具、AI Workflow、Prompt Engineering 与产品思考。
更多说明见 docs/USAGE_SCENARIOS.md。
| Layer | Stack |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS 4 + shadcn/ui |
| Database | SQLite + Prisma |
| AI (text) | DeepSeek API (OpenAI SDK compatible) |
| AI (vision) | OpenAI-compatible multimodal endpoint (e.g. Bailian) |
| Validation | Zod |
| Toast | Sonner |
| Icons | Lucide React |
# 1. Clone
git clone https://github.com/Fairy-fly/UI-Sense-AI.git
cd UI-Sense-AI
# 2. Install
npm install
# 3. Configure environment
cp .env.example .env.local
# Edit .env.local — see Environment Variables below
# 4. Initialize database
npx prisma generate
npx prisma migrate dev
# 5. Seed demo data (optional)
npx prisma db seed
# 6. Start dev server
npm run dev访问 http://localhost:3000(实际端口以终端输出为准)。
Copy .env.example to .env.local and configure:
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | SQLite path, default: file:./dev.db |
DEEPSEEK_API_KEY |
No | DeepSeek API key for Prompt optimization |
DEEPSEEK_BASE_URL |
No | Default: https://api.deepseek.com |
DEEPSEEK_MODEL |
No | Default: deepseek-v4-flash |
DEEPSEEK_TEMPERATURE |
No | Default: 0.4 |
DEEPSEEK_MAX_TOKENS |
No | Default: 6000 |
DEEPSEEK_TIMEOUT_MS |
No | Default: 45000 |
AI_ANALYSIS_MODE |
No | text (default) or vision |
VISION_MODEL |
No | Vision model ID, e.g. qwen3-vl-flash |
VISION_API_BASE_URL |
No | OpenAI-compatible endpoint |
VISION_API_KEY |
No | Vision API key |
NEXT_PUBLIC_APP_URL |
No | Default: http://localhost:3000 |
MAX_UPLOAD_SIZE |
No | Default: 10485760 (10MB) |
Never commit
.env.local— it's in.gitignore.
UI Sense AI 是本地优先工具,不是云端 SaaS。
- 所有核心数据默认保存在
prisma/dev.db(SQLite) - 上传图片保存在
public/uploads/,该目录已默认从 git 中排除 - API key 只在服务端读取,不写入前端 bundle
.env/.env.local已加入.gitignore,不要提交真实密钥- URL metadata fetcher 会校验协议,并阻止 localhost / 私有 IP 范围
- 图片分析只读取本地
/uploads/文件,并带有 size / MIME 检查 - 当前版本没有登录、多用户、云同步、遥测或外部 analytics
如果要把仓库作为作品集展示,建议使用脱敏演示数据和截图,不要提交真实项目截图、私有客户资料或个人 API key。
app/ # Next.js App Router pages
components/ # React components (prompts, inspirations, collections, settings, ui)
lib/ # Core logic (actions, ai, filters, prompt-builder, aesthetic-memory)
prisma/ # Database schema and migrations
public/uploads/ # User-uploaded images (gitignored)
docs/ # Project documentation
types/ # TypeScript type definitions
| Version | Highlight |
|---|---|
| v1.0 | MVP: inspiration CRUD, local prompt builder, DeepSeek AI |
| v1.3 | Collections, Prompt templates, URL metadata |
| v1.4 | AI text analysis, Vision provider foundation |
| v1.6 | Real vision analysis via Bailian API |
| v1.7 | Aesthetic memory generation |
| v1.8 | Prompt feedback: ratings, favorites, SelectableChip |
| v1.9 | Feedback-driven prompt strategy |
| v2.0 | Local product polish, full regression, stable release |
| v2.0.1 | README / GitHub showcase polish |
| v2.0.2 | README table rendering and version display fix |
| v2.0.3 | Move planning DOCX into docs/ |
| v2.0.4 | Project memory update after local tool phase completion |
| v2.0.5 | Add reusable Agent workflow skills and clean project memory |
| v2.0.6 | README version display and milestone sync |
| v2.1.0 | Scope Guard & Page/Module Split |
- v2.1.x Demo data, sanitized screenshots, Prompt quality report
- v2.2 Batch import UI inspirations and better collection workflows
- v2.3 Stronger prompt evaluation and side-by-side output comparison
- v2.4 Mobile layout polish and screenshot-friendly demo mode
- v3.0+ Optional cloud sync / multi-user / browser extension (long-term future)
npm run dev # Start dev server
npm run build # Production build
npx tsc --noEmit # Type check
npm run lint # ESLint
npx prisma studio # Browse databasenpm run build && npx tsc --noEmit && npm run lint- Never commit
.env.local,prisma/dev.db, or user images inpublic/uploads/ - Never expose API keys in frontend code, docs, or git history
- Default branch:
main - UI copy is Chinese-first; don't translate to English
- Don't use
asChildon shadcn components — usebuttonVariants()for link-styled buttons
MIT
