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 agentmods add skills/fluttersdk/ai/wind-uinpx skills add fluttersdk/ai --skill wind-uigit clone --depth 1 https://github.com/fluttersdk/aiWhat 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 | $0.00264 | $0.14243 |
| Opus 5 | $0.00132 | $0.07122 |
| Sonnet 5 | $0.00053 | $0.02849 |
| Haiku 4.5 | $0.00026 | $0.01424 |
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 2d ago.
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 — 488 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Wind UI 1.5
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.
- 2d ago First seen · 488 lines · 264 tokens per session scan A 771c08e9207e
wind-ui is a skill published in the GitHub repository fluttersdk/ai (2 stars, last pushed 2d ago), licensed MIT. It adds 264 tokens to every session and 14,243 once invoked, about $0.0013 per session on Opus 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-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…
adapt
Responsive layout pass covering breakpoints, touch targets, safe areas, and fluid type. Use when the UI has layout or touch issues on mobile/tablet, when adding a new screen that hasn't been tested across viewports, or when the user says "make it responsive" / "fix mobile layout". Invoke when the user asks for adapt…
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-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-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…