Agent skill

flutter-skill

Control and automate Flutter applications - inspect UI, perform gestures, validate state, take screenshots, and debug. Connects AI agents to running Flutter apps via Dart VM Service Protocol.

Stars 184
Forks 21

Install this agent skill to your Project

npx add-skill https://github.com/ai-dashboad/flutter-skill/tree/main/skills-submission/flutter-skill

SKILL.md

Flutter Skill

Give your AI Agent eyes and hands inside your Flutter app. This skill enables comprehensive control of Flutter applications for testing, debugging, and automation.

Installation

Option 1: npx (Recommended)

json
{
  "flutter-skill": {
    "command": "npx",
    "args": ["flutter-skill"]
  }
}

Option 2: Global Install

bash
dart pub global activate flutter_skill

Then configure:

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

Available Tools

Connection

  • connect_app - Connect to a running Flutter app via WebSocket URI
  • launch_app - Launch a Flutter app with auto-setup (adds dependencies, patches main.dart)

UI Inspection

  • inspect - Get interactive elements (buttons, text fields, etc.)
  • get_widget_tree - Full widget tree structure with configurable depth
  • get_widget_properties - Widget details (size, position, visibility)
  • get_text_content - Extract all visible text from screen
  • find_by_type - Find all widgets of a specific type

Interactions

  • tap - Tap element by key or text
  • double_tap - Double tap gesture
  • long_press - Long press gesture
  • swipe - Swipe up/down/left/right
  • drag - Drag from one element to another
  • scroll_to - Scroll element into view
  • enter_text - Input text into text field

State Validation

  • get_text_value - Get text field value
  • get_checkbox_state - Get checkbox checked state
  • get_slider_value - Get slider current value
  • wait_for_element - Wait for element to appear (with timeout)
  • wait_for_gone - Wait for element to disappear

Screenshots

  • screenshot - Capture full app screenshot (base64 PNG)
  • screenshot_element - Capture specific element screenshot

Navigation

  • get_current_route - Get current route name
  • go_back - Navigate back
  • get_navigation_stack - Get navigation history

Debug & Logs

  • get_logs - Application logs
  • get_errors - Error messages
  • get_performance - Performance metrics
  • clear_logs - Clear log buffer
  • hot_reload - Trigger hot reload

Usage Examples

Test a Counter App

1. Launch the app: launch_app with project_path="/path/to/app"
2. Inspect UI: inspect
3. Tap increment: tap with key="increment_button"
4. Verify: get_text_content to see updated counter

Test a Login Flow

1. Enter email: enter_text with key="email_field", text="user@example.com"
2. Enter password: enter_text with key="password_field", text="password123"
3. Tap login: tap with key="login_button"
4. Wait for home: wait_for_element with key="home_screen", timeout=5000

Debug an Issue

1. Connect: connect_app with uri="ws://127.0.0.1:xxxxx/ws"
2. Check errors: get_errors
3. View logs: get_logs
4. Take screenshot: screenshot

Best Practices

Use Widget Keys

For reliable element identification, target apps should use ValueKey:

dart
ElevatedButton(
  key: const ValueKey('submit_button'),
  onPressed: _submit,
  child: const Text('Submit'),
)

Element Finding Priority

  1. Key (most reliable): tap with key="submit_button"
  2. Text content: tap with text="Submit"
  3. Widget type: find_by_type with type="ElevatedButton"

Links

Expand your agent's capabilities with these related and highly-rated skills.

ai-dashboad/flutter-skill

e2e-testing

AI-powered E2E testing for any app — Flutter, React Native, iOS, Android, Electron, Tauri, KMP, .NET MAUI. Test 8 platforms with natural language through MCP. No test code needed. Just describe what to test and the agent sees screenshots, taps elements, enters text, scrolls, and verifies UI state automatically.

184 21
Explore
davila7/claude-code-templates

verl-rl-training

Provides guidance for training LLMs with reinforcement learning using verl (Volcano Engine RL). Use when implementing RLHF, GRPO, PPO, or other RL algorithms for LLM post-training at scale with flexible infrastructure backends.

23,776 2,298
Explore
davila7/claude-code-templates

openrlhf-training

High-performance RLHF framework with Ray+vLLM acceleration. Use for PPO, GRPO, RLOO, DPO training of large models (7B-70B+). Built on Ray, vLLM, ZeRO-3. 2× faster than DeepSpeedChat with distributed architecture and GPU resource sharing.

23,776 2,298
Explore
davila7/claude-code-templates

gguf-quantization

GGUF format and llama.cpp quantization for efficient CPU/GPU inference. Use when deploying models on consumer hardware, Apple Silicon, or when needing flexible quantization from 2-8 bit without GPU requirements.

23,776 2,298
Explore
davila7/claude-code-templates

Claude Code Guide

Master guide for using Claude Code effectively. Includes configuration templates, prompting strategies "Thinking" keywords, debugging techniques, and best practices for interacting with the agent.

23,776 2,298
Explore
davila7/claude-code-templates

qdrant-vector-search

High-performance vector similarity search engine for RAG and semantic search. Use when building production RAG systems requiring fast nearest neighbor search, hybrid search with filtering, or scalable vector storage with Rust-powered performance.

23,776 2,298
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results