Install any skill in seconds. Free to start, no credit card required.
Get Started Free →daisy-now/design-mobile-apps-with-daisy
Design and iterate on native mobile app screens through the Daisy REST API (daisy.now) — onboarding flows, settings, home feeds, dashboards, checkout, sign-up, profiles, empty states.
Passed 14 of 20 test cases with the skill, and 8 of 20 without it.
and 11 more in the full report
9 fixed8 passed either way6 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.6-flash on 10/2/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
Construct the full API endpoint URL to create a new run under project 'proj_777'.
| Checked | Without skill | With skill |
|---|---|---|
| Uses the exact base URL prefix https://www.daisy.now/api/ without any /v1 path segment. | Missed | Passed |
| Constructs the path as https://www.daisy.now/api/projects/proj_777/runs. | Missed | Passed |
The instructions your model reads when the skill loads.
Daisy is a design agent that works on a canvas. You don't build screens yourself: you brief Daisy, the way you'd brief a human designer. A project is one conversation plus its canvas. You send a message, Daisy plans the work, builds and edits screens on the canvas, sets the theme, and replies. Every design change, from a ten-screen flow to "make that button red", is one message.
DAISY_API_KEY and starts with dsy_live_. If it's missing or looks different, stop and ask the user for one (they mint it in Settings → API keys at https://daisy.now). Read it from the environment every time; keep it out of files and output.403 telling you so means the user must subscribe or fix billing at https://daisy.now/pricing.scripts/send.sh (next to this file) needs curl and jq.Pick the project. If the user is starting a new app or idea, use new. If they named an existing project, find its id:
curl -s "https://daisy.now/api/projects" \
-H "Authorization: Bearer $DAISY_API_KEY" | jq -r '.data[] | "\(.id) \(.name) (\(.screenCount) screens)"'
Ask the user when more than one project could be the one they mean.
Write the brief. Put the whole ask in one message: the app and its audience, every screen you want, what each one shows, and the look (light or dark, playful or calm, brand colour). One rich message for a whole flow beats one message per screen, because Daisy plans the set and keeps it consistent. For a change, name the screen by its label ("On Settings, …"). Daisy remembers the project's conversation, so follow-ups can be short ("make it darker", "add an empty state to Home").
Send it and wait.
scripts/send.sh new "A habit tracker for students. Design onboarding (welcome, pick 3 habits, reminder time) and a Today screen with a streak and checklist. Calm, light, green accent." --name "Habitat"
scripts/send.sh abc123 "On Settings, make Delete account a red destructive row at the bottom."
A build of several screens takes a few minutes, so give the command a tool timeout of about 10 minutes, or pass --budget SECONDS below your shell's limit. Pass a long brief on stdin with - in place of the text. Add --image https://…/ref.png (up to 8, public https URLs of png, jpg, webp or gif) to give Daisy reference screenshots.
Read the summary it prints:
{
"projectId": "abc123",
"canvas": "https://daisy.now/project/abc123",
"messageId": "5f0c…",
"finished": true,
test cases passed, vs 8 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.