Token导航 LogoToken导航

Agent Skill · 开发

sleek-design-mobile-apps(时尚设计的移动应用程序)

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

sleek-design-mobile-apps 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 22。

总安装 1,727,928周安装 69,853GitHub Stars 386下载 542,424核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sleek-design-mobile-apps(时尚设计的移动应用程序)
来源仓库:https://github.com/sleekdotdesign/agent-skills
仓库路径:skills/sleek-design-mobile-apps
安装命令:
npx skills add https://github.com/sleekdotdesign/agent-skills --skill sleek-design-mobile-apps
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/sleekdotdesign/agent-skills --skill sleek-design-mobile-apps

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

由人工智能驱动的移动应用程序设计工具,具有 REST API,用于创建项目、用简单语言描述设计以及渲染屏幕。

支持高级请求(“设计健身应用程序”)和特定编辑(“向此屏幕添加定价部分”);通过聊天消息发送自然语言描述,并让人工智能决定创建或修改内容 需要 Pro+ 计划和具有范围权限的 API 密钥(项目:读/写, 聊天:读/写, 截图 ,组件:读取 ) 可用异步和同步模式;异步立即返回并带有用于轮询的运行 ID,同步块最多 300 秒 每次聊天运行后,始终对新创建或更新的屏幕进行屏幕截图并将其传递给用户;第一次创建屏幕时,将所有项目屏幕合并为一个屏幕截图 每个项目一次运行一次;使用幂等密钥安全地重试失败的请求

来源仓库内路径:skills/sleek-design-mobile-apps

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/sleekdotdesign/agent-skills --skill sleek-desi…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

sleek-design-mobile-apps 怎么安装?

在终端执行 npx skills add https://github.com/sleekdotdesign/agent-skills --skill sleek-design-mobile-…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

sleek-design-mobile-apps 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

sleek-design-mobile-apps 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

sleek-design-mobile-apps 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

sleek-design-mobile-apps 用的人多吗?

公开数据是累计安装 1,727,928 次,近一周安装 69,853 次,下载 542,424 次,GitHub 386 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

sleek-design-mobile-apps 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
sleek-design-mobile-apps

时尚设计的移动应用程序 · 本页

1,727,928386接触敏感数据未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Designing with Sleek

![Design mobile apps in minutes](https://sleek.design)

Overview

sleek.design is an AI-powered mobile app design tool. You interact with it via a REST API at /api/v1/* to create projects, describe what you want built in plain language, and get back rendered screens. All communication is standard HTTP with bearer token auth.

Base URL: https://sleek.design Auth: Authorization: Bearer $SLEEK_API_KEY on every /api/v1/* request Content-Type: application/json (requests and responses) CORS: Enabled on all /api/v1/* endpoints


Prerequisites: API Key

Create API keys at https://sleek.design/dashboard/api-keys. The full key value is shown only once at creation — store it in the SLEEK_API_KEY environment variable.

Required plan: Pro or higher (API access is gated)

Key scopes

ScopeWhat it unlocks
projects:readList / get projects
projects:writeCreate / delete projects
components:readList components in a project
chats:readGet chat run status
chats:writeSend chat messages
screenshotsRender component screenshots

Create a key with only the scopes needed for the task.


Security & Privacy

  • Single host: All requests go exclusively to https://sleek.design. No data is sent to third parties.
  • HTTPS only: All communication uses HTTPS. The API key is transmitted only in the Authorization header to Sleek endpoints.
  • Minimal scopes: Create API keys with only the scopes required for the task. Prefer short-lived or revocable keys.
  • Image URLs: When using imageUrls in chat messages, those URLs are fetched by Sleek's servers. Avoid passing URLs that contain sensitive content.

Quick Reference — All Endpoints

MethodPathScopeDescription
GET/api/v1/projectsprojects:readList projects
POST/api/v1/projectsprojects:writeCreate project
GET/api/v1/projects/:idprojects:readGet project
DELETE/api/v1/projects/:idprojects:writeDelete project
GET/api/v1/projects/:id/componentscomponents:readList components
GET/api/v1/projects/:id/components/:componentIdcomponents:readGet component
POST/api/v1/projects/:id/chat/messageschats:writeSend chat message
GET/api/v1/projects/:id/chat/runs/:runIdchats:readPoll run status
POST/api/v1/screenshotsscreenshotsRender screenshot

All IDs are stable string identifiers.


Endpoints

Projects

List projects
GET /api/v1/projects?limit=50&offset=0
Authorization: Bearer $SLEEK_API_KEY

Response 200:

{
  "data": [
    {
      "id": "proj_abc",
      "name": "My App",
      "slug": "my-app",
      "createdAt": "2026-01-01T00:00:00Z",
      "updatedAt": "..."
    }
  ],
  "pagination": { "total": 12, "limit": 50, "offset": 0 }
}
Create project
POST /api/v1/projects
Authorization: Bearer $SLEEK_API_KEY
Content-Type: application/json

{ "name": "My New App" }

Response 201 — same shape as a single project.

Get / Delete project
GET    /api/v1/projects/:projectId
DELETE /api/v1/projects/:projectId   → 204 No Content

Components

List components
GET /api/v1/projects/:projectId/components?limit=50&offset=0
Authorization: Bearer $SLEEK_API_KEY

Response 200:

{
  "data": [
    {
      "id": "cmp_xyz",
      "name": "Hero Section",
      "activeVersion": 3,
      "versions": [{ "id": "ver_001", "version": 1, "code": "<!DOCTYPE html>...</html>", "createdAt": "..." }],
      "createdAt": "...",
      "updatedAt": "..."
    }
  ],
  "pagination": { "total": 5, "limit": 50, "offset": 0 }
}
Get component

Fetches a single component by ID. Use this when you need the code for a specific screen (e.g., after a chat run returns a componentId in its operations).

GET /api/v1/projects/:projectId/components/:componentId
Authorization: Bearer $SLEEK_API_KEY

Response 200 — same shape as a single item from the list endpoint:

{
  "data": {
    "id": "cmp_xyz",
    "name": "Hero Section",
    "activeVersion": 3,
    "versions": [{ "id": "ver_001", "version": 1, "code": "<!DOCTYPE html>...</html>", "createdAt": "..." }],
    "createdAt": "...",
    "updatedAt": "..."
  }
}

Chat — Send Message

This is the core action: describe what you want in message.text and the AI creates or modifies screens.

POST /api/v1/projects/:projectId/chat/messages?wait=false
Authorization: Bearer $SLEEK_API_KEY
Content-Type: application/json
idempotency-key: <optional, max 255 chars>

{
  "message": { "text": "Add a pricing section with three tiers" },
  "imageUrls": ["https://example.com/ref.png"],
  "target": { "screenId": "scr_abc" }
}
FieldRequiredNotes
message.textYes1+ chars, trimmed
imageUrlsNoHTTPS URLs only; included as visual context
target.screenIdNoEdit a specific screen using its screenId (not componentId); omit to let AI decide
?wait=true/falseNoSync wait mode (default: false)
idempotency-key headerNoReplay-safe re-sends
Response — async (default, wait=false)

Status 202 Accepted. result and error are absent until the run reaches a terminal state.

{
  "data": {
    "runId": "run_111",
    "status": "queued",
    "statusUrl": "/api/v1/projects/proj_abc/chat/runs/run_111"
  }
}
Response — sync (wait=true)

Blocks up to 300 seconds. Returns 200 when completed, 202 if timed out.

{
  "data": {
    "runId": "run_111",
    "status": "completed",
    "statusUrl": "...",
    "result": {
      "assistantText": "I added a pricing section with...",
      "operations": [
        { "type": "screen_created", "screenId": "scr_xyz", "screenName": "Pricing", "componentId": "cmp_xyz" },
        { "type": "screen_updated", "screenId": "scr_abc", "componentId": "cmp_abc" },
        { "type": "theme_updated" }
      ]
    }
  }
}

Chat — Poll Run Status

Use this after async send to check progress.

GET /api/v1/projects/:projectId/chat/runs/:runId
Authorization: Bearer $SLEEK_API_KEY

Response — same shape as send message data object:

{
  "data": {
    "runId": "run_111",
    "status": "queued",
    "statusUrl": "..."
  }
}

When completed successfully, result is present:

{
  "data": {
    "runId": "run_111",
    "status": "completed",
    "statusUrl": "...",
    "result": {
      "assistantText": "...",
      "operations": [...]
    }
  }
}

When failed, error is present:

{
  "data": {
    "runId": "run_111",
    "status": "failed",
    "statusUrl": "...",
    "error": { "code": "execution_failed", "message": "..." }
  }
}

Run status lifecycle: queued → running → completed | failed


Screenshots

Takes a snapshot of one or more rendered components.

POST /api/v1/screenshots
Authorization: Bearer $SLEEK_API_KEY
Content-Type: application/json

{
  "componentIds": ["cmp_xyz", "cmp_abc"],
  "projectId": "proj_abc",
  "format": "png",
  "scale": 2,
  "gap": 40,
  "padding": 40,
  "background": "transparent"
}
FieldDefaultNotes
formatpngpng or webp
scale21–3 (device pixel ratio)
gap40Pixels between components
padding40Uniform padding on all sides
paddingX*(optional)*Horizontal padding; overrides padding for left/right when provided
paddingY*(optional)*Vertical padding; overrides padding for top/bottom when provided
paddingTop*(optional)*Top padding; overrides paddingY when provided
paddingRight*(optional)*Right padding; overrides paddingX when provided
paddingBottom*(optional)*Bottom padding; overrides paddingY when provided
paddingLeft*(optional)*Left padding; overrides paddingX when provided
backgroundtransparentAny CSS color (hex, named, transparent)
showDotsfalseOverlay a subtle dot grid on the background
radius48Squircle corner radius per component in pixels (integer ≥ 0); pass 0 for sharp corners

Padding resolves with a cascade: per-side → axis → uniform. For example, paddingTop falls back to paddingY, which falls back to padding. So {"padding": 20, "paddingX": 10, "paddingLeft": 5} gives top/bottom 20px, right 10px, left 5px.

When showDots is true, a dot pattern is drawn over the background color. The dots automatically adapt to the background: dark backgrounds get light dots, light backgrounds get dark dots. This has no effect when background is "transparent".

Always use "background": "transparent" unless the user explicitly requests a specific background color.

Response: raw binary image/png or image/webp with Content-Disposition: attachment.


Error Shapes

{ "code": "UNAUTHORIZED", "message": "..." }
HTTPCodeWhen
401UNAUTHORIZEDMissing/invalid/expired API key
403FORBIDDENValid key, wrong scope or plan
404NOT_FOUNDResource doesn't exist
400BAD_REQUESTValidation failure
409CONFLICTAnother run is active for this project
500INTERNAL_SERVER_ERRORServer error

Chat run-level errors (inside data.error):

CodeMeaning
out_of_creditsOrganization has no credits left
execution_failedAI execution error

Prompting Sleek

Sleek has its own AI that plans screen content, visual style, and layout. Pass the user's request to Sleek as-is — don't add details the user didn't ask for. If the user described specific screens and styling, include those. If they just said "build me a running app," send that and let Sleek decide the rest. Sleek produces richer designs when given room to plan, so avoid inventing screen content or layout details that the user didn't specify.


Designing

1. Create a project

Create a project with POST /api/v1/projects if one doesn't exist yet. Ask the user for a name, or derive one from the request.

Each project has its own theme, style, and design system. If the user wants multiple design variations, create a separate project for each variation.

2. Send a chat message

Describe what to build using POST /api/v1/projects/:id/chat/messages. You can use the user's words directly — Sleek's AI interprets natural language. You do not need to decompose the request into screens; send the full intent as a single message and let Sleek decide what screens to create.

Chat messages are async by default — you get a runId and poll for completion with GET /api/v1/projects/:id/chat/runs/:runId. You can also use ?wait=true for a blocking call (up to 300s; falls back to polling if it times out with 202).

Polling: start at 2s interval, back off to 5s after 10s, give up after 5 minutes.

Editing a specific screen: use target.screenId to direct changes to the right screen (uses the screen ID from operations, not the component ID).

One run at a time: only one active run is allowed per project. If you get 409 CONFLICT, wait for the current run to complete before sending the next message. Messages to different projects can run in parallel — use async polling (not ?wait=true) when running multiple projects concurrently.

Safe retries: add an idempotency-key header (≤255 chars) to replay-safe re-sends. The server returns the existing run rather than creating a duplicate.

3. Show the results

After every chat run that produces screen_created or screen_updated operations, always take screenshots and show them to the user using POST /api/v1/screenshots. Never silently complete a chat run without delivering the visuals.

  • New screens: one screenshot per screen + one combined screenshot of all screens in the project.
  • Updated screens: one screenshot per affected screen.

Use background: "transparent" for all screenshots unless the user explicitly requests otherwise.

Save screenshots in the project directory (not a temporary folder) so the user can easily view them.


Implementing Designs

When the user wants to implement the designs in code (not just preview them), always fetch the component HTML code — do not rely on screenshots alone.

Use GET /api/v1/projects/:id/components/:componentId to fetch each screen's code. The componentId comes from the chat run's result.operations.

HTML prototypes

The component code is a complete HTML document — save it directly to a .html file. No build step needed.

Native frameworks (React Native, SwiftUI, etc.)

Use both the HTML code and the screenshots together:

  • HTML code is the implementation reference — it contains the exact structure, layout, styling, colors, spacing, content, image URLs, and icon names.
  • Screenshots are the visual target — use them to verify your implementation matches the intended look.

The HTML tells you *how* to build it; the screenshot tells you *what* it should look like.

Icons

Sleek uses Iconify icons in the format prefix:name (e.g., solar:heart-bold, material-symbols:search-rounded, lucide:settings). The most common sets are Solar, Hugeicons, Material Symbols and MDI.

Use the exact icons from the HTML code — do not substitute with a different icon set. Matching icons is important for design fidelity.

When implementing icons:

  1. Check if the project already has an icon system that supports the same sets Sleek uses (Solar, Hugeicons, Material Symbols, MDI). If so, use it. Note: @expo/vector-icons does not support these sets — do not use it as a substitute.
  2. Otherwise, fetch the SVGs from the Iconify API and embed them in the code: GET https://api.iconify.design/{prefix}/{name}.svg Example: https://api.iconify.design/solar/heart-bold.svg Collect all icon names from the HTML, fetch their SVGs, and save them as static assets or string constants in the codebase. For React Native / Expo, render them with react-native-svg's SvgXml component — this works in Expo Go with no additional native dependencies.
Fonts

The HTML includes Google Fonts via <link> tags in the <head>. Use the same fonts and weights when implementing in a native framework — extract the font family names and weights from the <link> tags.

Navigation

The designs may include navigation elements like tab bars and headers. Update the project's navigation styling and structure to match the designs — don't just implement the screen content while leaving the default navigation untouched.


Pagination

All list endpoints accept limit (1–100, default 50) and offset (≥0). The response always includes pagination.total so you can page through all results.

GET /api/v1/projects?limit=10&offset=20

Tips

Saving component HTML to files

Component code can be large. When saving it to .html files, avoid writing the content through your text output — this is slow and wastes tokens. Instead, use shell commands to fetch the API response and write it directly to disk (e.g., pipe the response body into a file). This applies to both single and multiple components.


Common Mistakes

MistakeFix
Sending to /api/v1 without Authorization headerAdd Authorization: Bearer $SLEEK_API_KEY to every request
Using wrong scopeCheck key's scopes match the endpoint (e.g. chats:write for sending messages)
Sending next message before run completesPoll until completed/failed before next send
Using wait=true on long generationsIt blocks 300s max; have a fallback to polling for 202 response
HTTP URLs in imageUrlsOnly HTTPS URLs are accepted
Assuming result is present on 202result is absent until status is completed
Using screenId as componentIds in screenshotsscreenId and componentId are different; always use componentId from operations for screenshots

平台分布

Codex

38.87%
按下载量换算210,840

Claude

28.06%
按下载量换算152,204

Cursor

17.93%
按下载量换算97,257

Gemini CLI

10.25%
按下载量换算55,598

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills