Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add fluttersdk/ai --skill wind-uigit clone --depth 1 https://github.com/fluttersdk/aiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/fluttersdk/ai/wind-ui)<a href="https://agentmods.dev/skills/fluttersdk/ai/wind-ui"><img src="https://agentmods.dev/badge/skills/fluttersdk/ai/wind-ui/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/fluttersdk/ai/wind-ui"><img src="https://agentmods.dev/badge/skills/fluttersdk/ai/wind-ui.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00264 | $0.15299 |
| Opus 5.5 | $0.00106 | $0.06120 |
| Sonnet 5.5 | $0.00053 | $0.03060 |
| Haiku 4.5 | $0.00026 | $0.01530 |
Grade A, and why
wind-ui scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to wind-ui — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 493 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Wind UI 1.9
Utility-first Flutter styling. Every visual decision lives in a className: String? parsed at build time into an immutable WindStyle and composed into a native Flutter widget tree. Tailwind syntax (flex, p-4, dark:bg-gray-800, hover:shadow-lg), Flutter physics.
This skill assumes the host app already depends on fluttersdk_wind and has WindTheme wrapping MaterialApp. If a fresh project needs setup (rare; the skill normally triggers on an already-installed project), see Quick install at the bottom.
0. Before writing UI in this project
Three quick checks. Each pays off across the whole session.
- Confirm Wind is installed. Look at
pubspec.yamlforfluttersdk_wind:. If absent, jump to §13 first. - Read the project's
WindThemeDatasetup. Usually inlib/main.dartorlib/config/wind.dart. Note any custom color families (primary,accent,incident, etc.): those become available asbg-primary-500,text-incident-700, etc. without registration. Skip this and the agent risks writing tokens that silently no-op, or missing the brand palette entirely. - Scan one existing view in
lib/for the project's className idioms. Triple-quoted style? Single-line preferred? Custom states (pressed:,expanded:)? Match the surrounding code, don't invent a new dialect.
After these, the agent has the project's color landscape, breakpoint set, and className voice loaded.
The parser cache is near-100% hit-rate in production. Do not worry about className parse overhead; the same className parses exactly once for its (breakpoint, brightness, platform, states) tuple. Prefer expressive className over inline BoxDecoration / EdgeInsets for "performance" reasons; the cache handles it.
1. Core Laws
These hold for every line of Wind code. Apply each as a hard constraint, not a suggestion.
- className is the styling surface. Inline Dart props (
backgroundColoronWDiv,foregroundColoronWText) exist only as runtime-dynamic escape hatches for values the cache key cannot represent. Default to className. Never reach forBoxDecoration,EdgeInsets,TextStylewhen a token covers it.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed 81c503ca20c4
- 5d ago Changed 47f3b9725964
- 7d ago Changed 0c442fbe2dbe
- 8d ago Changed 0fee4156364a
- 12d ago Changed b3bfaddf22ab
- 20d ago Changed 51b35814921c
- 21d ago Changed 19176e079e5f
- 26d ago Changed 18b100b59036
- 27d ago Changed 8a5fbdab8c71
- 1mo ago First seen · 493 lines · 264 tokens per session scan A 57918d862eb0
wind-ui is a skill published in the GitHub repository fluttersdk/ai (3 stars, last pushed yesterday), licensed MIT. It adds 264 tokens to every session and 15,299 once invoked, about $0.0011 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to wind-ui, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
flutter-internationalization
Add, fix, audit, and maintain Flutter internationalization with gen-l10n, ARB files, AppLocalizations, flutterlocalizations, intl formatting, plural/select messages, RTL support, locale-specific number/date formatting, and localization build errors. Use when asked to add l10n or i18n, translate Flutter UI text…
flutter-duit-bdui
Integrate, fix, review, migrate, test, or debug Duit / flutterduit backend-driven UI in Flutter applications. Use when a task mentions DUIT, flutterduit, backend-driven UI, BDUI, server-driven UI, XDriver, DuitViewHost, DuitRegistry, HTTP or WebSocket transports, custom Duit widgets, components, capability delegates…
flutter-animations
Add, fix, refactor, debug, test, or explain Flutter animations and motion effects. Use when working with implicit animations such as AnimatedContainer, AnimatedOpacity, AnimatedSwitcher, and TweenAnimationBuilder; explicit animations using AnimationController, Tween, CurvedAnimation, AnimatedWidget, AnimatedBuilder…
flutter-navigation
Implement, fix, refactor, review, migrate, or validate Flutter navigation and routing. Use when working with Navigator, MaterialPageRoute, Router API, gorouter, route guards, redirects, ShellRoute or StatefulShellRoute, nested Navigators, passing and returning route data, deep links, Android App Links, iOS Universal…
flutter-networking
Implement, fix, debug, review, or refactor Flutter networking code for HTTP/REST APIs, WebSocket realtime flows, authentication and token refresh, request headers, timeouts, retries, JSON parsing, caching, background isolates, repositories, services, and adaptation to existing http, Dio, Retrofit, Chopper, or custom…
flutter-adaptive-ui
Build, fix, review, and validate adaptive or responsive Flutter UIs for mobile, tablet, desktop, web, large screens, foldables, and mixed input devices. Use when creating breakpoint-driven layouts, responsive navigation, adaptive dialogs/lists/grids, keyboard/mouse/touch behavior, window-size decisions with MediaQuery…