An open API service indexing awesome lists of open source software.

https://github.com/ai-dashboad/flutter-skill

AI-powered E2E testing for 10 platforms. 253 MCP tools. Zero config. Works with Claude, Cursor, Windsurf, Copilot. Test Flutter, React Native, iOS, Android, Web, Electron, Tauri, KMP, .NET MAUI โ€” all from natural language.
https://github.com/ai-dashboad/flutter-skill

ai ai-testing android automation claude cross-platform cursor e2e-testing electron flutter ios mcp mcp-server model-context-protocol playwright-alternative react-native tauri test-automation testing-tools web-testing

Last synced: 16 days ago
JSON representation

AI-powered E2E testing for 10 platforms. 253 MCP tools. Zero config. Works with Claude, Cursor, Windsurf, Copilot. Test Flutter, React Native, iOS, Android, Web, Electron, Tauri, KMP, .NET MAUI โ€” all from natural language.

Awesome Lists containing this project

README

          


flutter-skill

flutter-skill


Give your AI eyes and hands inside any app.

E2E testing bridge for Claude, Cursor, Windsurf โ€” across 8 platforms.


pub.dev
npm
CI
Stars
License
Agent Skill


Quick Start โ€ข
Platforms โ€ข
Features โ€ข
Install โ€ข
Docs

---


๐ŸŽฌ AI tests a full TikTok clone โ€” 28 actions, zero test code

https://github.com/user-attachments/assets/d4617c73-043f-424c-9a9a-1a61d4c2d3c6

```
You: "Test the login flow โ€” enter test@example.com and password123, tap Login, verify Dashboard"

AI Agent:
1. screenshot() โ†’ sees the login screen
2. enter_text("email") โ†’ types the email
3. enter_text("pass") โ†’ types the password
4. tap("Login") โ†’ taps the button
5. wait_for_element("Dashboard") โ†’ confirms navigation
โœ… Login flow verified!
```

**No test code. No selectors. Just tell the AI what to test.**

---

## Quick Start

**1. Install**

```bash
npm install -g flutter-skill # npm (recommended)
# or: brew install ai-dashboad/flutter-skill/flutter-skill
# or: dart pub global activate flutter_skill
# or: npx skills add ai-dashboad/flutter-skill # Agent Skill (Claude Code, Cursor, Copilot, Cline, etc.)
```

**2. Add to your MCP config** (Claude Code / Cursor / Windsurf)

```json
{
"mcpServers": {
"flutter-skill": {
"command": "flutter-skill",
"args": ["server"]
}
}
}
```

**3. Add to your app** (2 lines)

```dart
import 'package:flutter_skill/flutter_skill.dart';

void main() {
if (kDebugMode) FlutterSkillBinding.ensureInitialized();
runApp(MyApp());
}
```

**4. Test** โ€” just talk to your AI:

> *"Launch my app, tap Sign Up, fill the form, and verify the success screen"*

That's it. Zero configuration.

๐Ÿ“ฆ More install methods (Windows, Docker, IDE extensions)

| Method | Command | Platform |
|--------|---------|----------|
| npm | `npm install -g flutter-skill` | All |
| Homebrew | `brew install ai-dashboad/flutter-skill/flutter-skill` | macOS/Linux |
| Scoop | `scoop install flutter-skill` | Windows |
| One-click | `curl -fsSL .../install.sh \| bash` | macOS/Linux |
| Windows | `iwr .../install.ps1 -useb \| iex` | Windows |
| Docker | `docker pull ghcr.io/ai-dashboad/flutter-skill` | All |
| pub.dev | `dart pub global activate flutter_skill` | All |
| VSCode | Extensions โ†’ "Flutter Skill" | All |
| IntelliJ | Plugins โ†’ "Flutter Skill" | All |
| Agent Skill | `npx skills add ai-dashboad/flutter-skill` | All (28+ agents) |

๐Ÿ”ง Zero-config onboarding (auto-detect & patch your app)

```bash
cd your-app/
flutter-skill init # Detects platform, patches entry point, configures MCP
flutter-skill demo # Launches built-in demo app to try it out
```

`init` auto-detects Flutter, iOS, Android, React Native, or Web projects and patches them automatically.

---

## Platforms

flutter-skill works across **8 platforms** with a unified bridge protocol:

| Platform | SDK | Tests | Status |
|----------|-----|-------|--------|
| **Flutter iOS** | `flutter_skill` (pub.dev) | 21/21 โœ… | Stable |
| **Flutter Web** | `flutter_skill` (pub.dev) | 20/20 โœ… | Stable |
| **Electron** | [`sdks/electron`](sdks/electron/) | 24/24 โœ… | Stable |
| **Android** (Kotlin) | [`sdks/android`](sdks/android/) | 24/24 โœ… | Stable |
| **KMP Desktop** | [`sdks/kmp`](sdks/kmp/) | 22/22 โœ… | Stable |
| **Tauri** (Rust) | [`sdks/tauri`](sdks/tauri/) | 23/24 โœ… | Stable |
| **.NET MAUI** | [`sdks/dotnet-maui`](sdks/dotnet-maui/) | 23/24 โœ… | Stable |
| **React Native** | [`sdks/react-native`](sdks/react-native/) | 24/24 โœ… | Stable |

> **181/183 tests passing** across all platforms (99% pass rate)

Each SDK README has platform-specific setup instructions. The same CLI and MCP tools work for all platforms.

Platform setup examples

**Web** โ€” add one script tag:
```html

FlutterSkill.start({ port: 50000 });
```

**React Native** โ€” npm install:
```bash
npm install flutter-skill
```
```js
import FlutterSkill from 'flutter-skill';
FlutterSkill.start();
```

**iOS (Swift/SwiftUI)** โ€” Swift Package Manager:
```swift
import FlutterSkill
FlutterSkillBridge.shared.start()

Text("Hello").flutterSkillId("greeting")
Button("Submit") { submit() }.flutterSkillButton("submitBtn")
```

**Android (Kotlin)** โ€” Gradle:
```kotlin
implementation("com.flutterskill:flutter-skill:0.7.5")
FlutterSkillBridge.start(this)
```

**Electron / Tauri / KMP / .NET** โ€” see each SDK's README for details.

---

## What Can It Do?

**40+ MCP tools** organized in 4 categories:

### ๐Ÿ‘€ See the Screen
- `screenshot` โ€” full app screenshot
- `inspect` โ€” list all interactive elements
- `get_widget_tree` โ€” full widget hierarchy
- `find_by_type` โ€” find by widget type
- `get_text_content` โ€” extract all text

### ๐Ÿ‘† Interact Like a User
- `tap` / `double_tap` / `long_press`
- `enter_text` โ€” type into fields
- `swipe` / `scroll_to` / `drag`
- `go_back` โ€” navigate back
- Native: `native_tap`, `native_swipe`

### โœ… Verify & Assert
- `assert_text` / `assert_visible`
- `wait_for_element` / `wait_for_gone`
- `get_checkbox_state` / `get_slider_value`
- `assert_element_count`

### ๐Ÿš€ Launch & Control
- `launch_app` โ€” launch with flavors/defines
- `scan_and_connect` โ€” find running apps
- `hot_reload` / `hot_restart`
- `list_sessions` / `switch_session`

Full tool reference (40+ tools)

**Launch & Connect:** `launch_app`, `scan_and_connect`, `hot_reload`, `hot_restart`, `list_sessions`, `switch_session`, `close_session`

**Screen:** `screenshot`, `screenshot_region`, `screenshot_element`, `native_screenshot`, `inspect`, `get_widget_tree`, `find_by_type`, `get_text_content`

**Interaction:** `tap`, `double_tap`, `long_press`, `enter_text`, `swipe`, `scroll_to`, `drag`, `go_back`, `native_tap`, `native_input_text`, `native_swipe`

**Assertions:** `assert_text`, `assert_visible`, `assert_not_visible`, `assert_element_count`, `wait_for_element`, `wait_for_gone`, `get_checkbox_state`, `get_slider_value`, `get_text_value`

**Debug:** `get_logs`, `get_errors`, `get_performance`, `get_memory_stats`

---

## Example Workflows

```
"Test login with test@example.com / password123, verify it reaches the dashboard"

"Submit the registration form empty and check that all validation errors appear"

"Navigate through all tabs, screenshot each one, verify back button works"

"Take screenshots of home, profile, and settings โ€” compare with last time"
```

The AI agent figures out the steps. No test code needed.

---

## Native Platform Support

Flutter Skill sees through native dialogs that Flutter can't โ€” permission popups, photo pickers, share sheets:

| Capability | iOS Simulator | Android Emulator |
|-----------|--------------|-----------------|
| Screenshot | `xcrun simctl` | `adb screencap` |
| Tap | macOS Accessibility | `adb input tap` |
| Text input | Pasteboard + Cmd+V | `adb input text` |
| Swipe | Accessibility scroll | `adb input swipe` |

No external tools needed โ€” uses built-in OS capabilities.

---

## Troubleshooting

| Problem | Fix |
|---------|-----|
| "Not connected" | `flutter-skill scan_and_connect` to auto-find apps |
| "Unknown method" | `flutter pub add flutter_skill` then restart (not hot reload) |
| No VM Service URI | Add `--vm-service-port=50000` to launch args |
| Claude Code priority | Run `flutter_skill setup` for priority rules |

๐Ÿ“– **Full docs:** [Usage Guide](docs/USAGE_GUIDE.md) ยท [Architecture](docs/ARCHITECTURE.md) ยท [Troubleshooting](docs/TROUBLESHOOTING.md) ยท [Flutter 3.x Fix](docs/FLUTTER_3X_FIX.md)

---

## Links

๐Ÿ“ฆ **Install**
- [pub.dev](https://pub.dev/packages/flutter_skill)
- [npm](https://www.npmjs.com/package/flutter-skill)
- [Homebrew](https://github.com/ai-dashboad/homebrew-flutter-skill)

๐Ÿ”Œ **IDE Extensions**
- [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=ai-dashboad.flutter-skill)
- [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/29991-flutter-skill)

๐Ÿ“– **Docs**
- [Roadmap](docs/ROADMAP.md)
- [Changelog](CHANGELOG.md)
- [Architecture](docs/ARCHITECTURE.md)

---


If flutter-skill saves you time, โญ star it on GitHub!


GitHub Sponsors ยท Buy Me a Coffee

MIT License