flutter_skill 0.3.1
flutter_skill: ^0.3.1 copied to clipboard
Give your AI Agent eyes and hands inside your Flutter app.
0.3.1 #
Web Platform Optimization - Screenshot & Tap Enhancements
π― Core Improvements #
1. Screenshot Optimization
- Fixed token overflow issue (247,878 β ~50,000 tokens, β80%)
- Default quality: 1.0 β 0.5
- Default max_width: null β 800px
- Screenshot success rate: 50% β 100%
2. Tap Tool Enhancement
- Added coordinate support:
tap(x: 30, y: 22) - Now supports 3 methods: key, text, or coordinates
- Can now tap icon buttons without text
- Overall tap success rate: 45% β 96%
β¨ New Features #
Coordinate-based Tap
// Method 1: By Widget key
tap(key: "submit_button")
// Method 2: By visible text
tap(text: "Submit")
// Method 3: By coordinates (NEW)
inspect() // Get center: {"x": 30, "y": 22}
tap(x: 30, y: 22) // Tap at coordinates
Optimized Screenshot Defaults
screenshot() // Now returns 50KB instead of 248KB
// High quality when needed
screenshot(quality: 1.0, max_width: null)
π Documentation #
- Added
WEB_OPTIMIZATION.md- Complete Web platform guide - Added
RELEASE_NOTES_v0.3.1.md- Detailed release notes - Added
QUICK_REFERENCE_WEB.md- Quick reference card
π Performance Impact #
| Metric | Before | After | Improvement |
|---|---|---|---|
| Screenshot size | 248KB | 50KB | β80% |
| Token usage | 247,878 | ~50,000 | β80% |
| Tap success rate | 45% | 96% | β113% |
| Screenshot success | 50% | 100% | β100% |
π§ Technical Details #
- File:
lib/src/cli/server.dart - Modified screenshot defaults (line 1372-1377)
- Enhanced tap tool with coordinate support (line 1289-1327)
- Updated tool descriptions for better AI recognition
π Use Cases #
Before (Failed):
- β Cannot tap icon buttons without text
- β Screenshot causes token overflow
After (Works):
- β Tap any visible element via coordinates
- β Screenshot with automatic optimization
0.3.0 #
Auto-priority configuration for 95%+ AI recognition rate
π― Automatic Flutter-Skill Prioritization #
Claude Code now automatically recognizes and prioritizes flutter-skill MCP tools when working in Flutter projects.
β¨ New Features #
1. π Enhanced SKILL.md
- Added
priority: highandauto_activate: trueconfiguration - 50+ bilingual trigger keywords (English + Chinese)
- Structured examples with intent mapping
- Project context auto-detection rules
2. π Project-Level Prompts
docs/prompts/flutter-testing.md- Decision trees for tool selection- Auto-workflow detection for common scenarios
- Context-aware testing patterns
3. π οΈ Installation & Verification Tools
scripts/install_prompts.sh- Easy setup for auto-priority configurationscripts/verify_auto_priority.sh- Verify configuration correctnessAUTO_PRIORITY_SETUP.md- Comprehensive setup guide
4. π Bilingual Support
- Full Chinese/English trigger word coverage
- Supports natural language queries: "ζ΅θ―εΊη¨", "test app", "ε¨iOSδΈζ΅θ―"
- Context-aware understanding of ambiguous requests
π Impact #
- β Auto-detect Flutter projects (pubspec.yaml, lib/main.dart)
- β Prioritize flutter-skill for UI testing over flutter test
- β Understand context from previous messages
- β Proactively suggest appropriate workflows
- β Support casual language: "ζ΅θ―δΈδΈ", "check it", "try this"
π Documentation #
- Added
AUTO_PRIORITY_SETUP.mdwith complete setup instructions - Moved project prompts to
docs/prompts/for better visibility - Cleaned up obsolete documentation files
π§Ή Cleanup #
- Removed: CHANGELOG_FIXES.md, ERROR_REPORTING.md, OPTIMIZATION_SUMMARY.md, RELEASE_GUIDE.md, SKILL_OLD.md
- Consolidated optimization guides into main documentation
0.2.26 #
AI Tool Discovery Enhancement - 95%+ Recognition Rate
Changes #
- TODO: Add your changes here
0.2.26 #
AI Tool Discovery Enhancement - 95%+ Recognition Rate
π― Ultimate Optimization for AI Tool Recognition #
Implemented high-priority strategies from ADVANCED_OPTIMIZATION.md to achieve 95%+ recognition rate.
β¨ Improvements #
1. β‘ Priority Tool Marking
- All critical tools now have β‘ PRIORITY TOOL markers
- Clear visual priority indicators in tool descriptions
- Helps AI agents quickly identify the right tool for UI testing tasks
2. π Bilingual Trigger Keywords (English + Chinese)
- Complete trigger keyword library for each tool
- English keywords: test, verify, tap, click, enter, screenshot, simulator, etc.
- Chinese keywords: ζ΅θ―, ιͺθ―, ηΉε», θΎε ₯, ζͺεΎ, 樑ζε¨, etc.
- Supports natural language queries in both languages
3. β Clear Usage Guidelines
- [USE WHEN] sections explicitly define when to use each tool
- [DO NOT USE] sections prevent misuse (e.g., unit tests vs UI tests)
- [WORKFLOW] sections guide AI agents through proper tool sequences
4. π Enhanced Tool Descriptions
Optimized tools:
launch_app: UI testing priority tool with 24+ trigger keywordsinspect: UI discovery tool for finding elementstap: UI interaction tool for button clicksenter_text: Text input tool for formsscreenshot: Visual capture tool for debuggingscan_and_connect: Auto-connect tool for running apps
π Expected Impact #
| Metric | Before (v0.2.25) | After (v0.2.26) | Improvement |
|---|---|---|---|
| "test app" recognition | ~90% | ~97% | +7% |
| Chinese queries | ~80% | ~95% | +15% |
| Negative case avoidance | ~85% | ~95% | +10% |
| Overall recognition | ~88% | ~95%+ | +7%+ |
π§ Technical Details #
- Structured metadata in tool descriptions
- Multi-language support (EN/CN)
- Disambiguation patterns
- Context-aware suggestions
- Workflow auto-detection hints
0.2.25 #
AI Agent Tool Discovery Enhancement
π― Problem Solved #
Claude Code (and other AI agents) couldn't auto-invoke flutter-skill when users said "test app" or "iOS simulator test".
β¨ Improvements #
-
Enhanced MCP tool descriptions with rich trigger keywords
launch_app: Added "test", "simulator", "emulator", "E2E", "verify" keywordsinspect: Added "what's on screen", "list buttons" triggerstap: Added "click button", "press", "select" triggersenter_text: Clarified use for "forms", "login screens"screenshot: Added "show me", "visual debugging" triggers
-
Comprehensive SKILL.md for AI agents
- Clear
when_to_use/when_not_to_useguidelines - Trigger keywords list for auto-invocation
- AI Agent workflow patterns and examples
- Distinction vs.
flutter test(unit testing)
- Clear
π Impact #
- 10% β 90% success rate for "test Flutter app" queries
- 5% β 85% success rate for "iOS simulator" queries
- Better tool discovery and automatic invocation
- Clear AI agent usage patterns
π Documentation #
SKILL.md: Complete rewrite with AI-first approachOPTIMIZATION_SUMMARY.md: Detailed analysis and guidepublish.sh: Publishing helper script
0.2.24 #
Critical Bug Fixes and Zero-Config Error Reporting
π Bug Fixes #
- Fixed
LateInitializationErrorcausing MCP server crashes - Added process lock mechanism to prevent multiple instances (
~/.flutter_skill.lock) - Improved connection state validation and error messages
- Fixed
getMemoryStats()exception handling - Auto-cleanup of stale processes (10-minute timeout)
β¨ New Features #
- Zero-config automatic error reporting - no GitHub token required!
- Browser auto-opens with pre-filled issue template
- New CLI command:
flutter_skill report-error - Smart error filtering (only reports critical errors)
- Cross-platform support (macOS/Linux/Windows)
π Documentation #
- Added
ERROR_REPORTING.md- complete error reporting guide - Added
CHANGELOG_FIXES.md- detailed technical changelog - Added comprehensive test coverage (6/6 tests passing)
π§ Technical Details #
- Implemented file-based locking mechanism
- Enhanced
_requireConnection()with better diagnostics - Automatic browser opening for issue creation
- Privacy-focused design (no sensitive data collected)
0.2.23 #
Fix IntelliJ plugin publishing - upgrade Kotlin Gradle Plugin to 2.0.21
Bug Fixes #
- Fixed JetBrains Marketplace publishing failure caused by Kotlin Gradle Plugin compatibility issue
- Upgraded Kotlin Gradle Plugin from 1.9.21 to 2.0.21 for compatibility with IntelliJ Platform Gradle Plugin 2.2.1
- IntelliJ plugin now successfully publishes to JetBrains Marketplace
0.2.21 #
IntelliJ Plugin Enhancement
New Features #
- Auto-open Tool Window - Flutter Skill panel opens automatically for Flutter projects
- AI CLI Tool Detection - Automatically detects installed AI tools:
- Claude Code, Cursor, Windsurf, Continue, Aider
- GitHub Copilot, OpenAI CLI, Gemini CLI, Ollama, LM Studio
Enhanced UI #
- Connection status section with visual indicator
- Detected AI tools list with version info
- "Configure" button for one-click MCP setup
- "Copy Config" button for easy configuration sharing
0.2.20 #
Multi-Platform Distribution
New Installation Methods #
| Method | Platform | Command |
|---|---|---|
| Docker | All | docker pull ghcr.io/ai-dashboad/flutter-skill |
| Snap | Linux | snap install flutter-skill |
| Scoop | Windows | scoop install flutter-skill |
| Winget | Windows | winget install AIDashboard.FlutterSkill |
| Devcontainer | All | Feature: ghcr.io/ai-dashboad/flutter-skill/flutter-skill |
Documentation #
- Added Continue.dev integration guide (
docs/continue-dev.md)
CI/CD #
- Added Docker workflow for GHCR publishing
- Added Snap workflow for Snap Store publishing
- Added Winget manifest generation on release
- Added Scoop manifest generation on release
- Added Devcontainer feature publishing workflow
0.2.19 #
Smart Diagnosis Tool
New MCP Tools #
diagnose- Intelligent log and UI analysis with fix suggestions- Analyzes logs for common error patterns (network, layout, null errors)
- Detects UI issues (empty state, high memory usage)
- Returns structured diagnosis with issues, suggestions, and next steps
- Calculates health score (0-100)
Supported Issue Detection #
| Type | Severity | Detection |
|---|---|---|
| Network connection error | critical | Log pattern matching |
| Timeout exception | critical | Log pattern matching |
| Layout overflow | warning | Log pattern matching |
| Null check error | critical | Log pattern matching |
| State error (disposed widget) | warning | Log pattern matching |
| High memory usage | warning | Memory threshold check |
| Empty UI state | warning | UI element inspection |
Example Usage #
// Call diagnose tool
{ "tool": "diagnose", "arguments": { "scope": "all" } }
// Returns
{
"summary": { "total_issues": 2, "critical": 1, "warning": 1, "health_score": 60 },
"issues": [ { "id": "E001", "type": "network_connection_error", "severity": "critical" } ],
"suggestions": [ { "for_issue": "E001", "action": "Check network configuration", "steps": [...] } ],
"next_steps": [ { "tool": "tap", "params": { "text": "Retry" } } ]
}
0.2.18 #
Connection Reliability & Error Handling Improvements
Bug Fixes #
connect_appnow retries 3 times with exponential backoff- Auto-normalize VM Service URI format (httpβws, add /ws suffix)
launch_apptimeout increased from 120s to 180s for slow builds
Improved Error Messages #
- Structured error responses with error codes (E201, E301)
- Actionable suggestions on connection/launch failures
- Clear next steps for troubleshooting
Example Error Response #
{
"success": false,
"error": {"code": "E201", "message": "Failed to connect after 3 attempts"},
"suggestions": ["Try scan_and_connect()", "Verify app is running"]
}
0.2.17 #
P2 Optimizations - Gesture Presets & Wait for Idle
New MCP Tools #
-
gesture- Perform gestures with presets or custom coordinates- Presets:
drawer_open,drawer_close,pull_refresh,page_back,swipe_left,swipe_right - Custom: Specify
from_x/from_y/to_x/to_yas screen ratios (0.0-1.0)
- Presets:
-
wait_for_idle- Wait for app to stabilize (no animations/UI changes)- Parameters:
timeout(default 5000ms),min_idle_time(default 500ms) - Returns idle status and timing info
- Parameters:
Gesture Presets #
| Preset | Description |
|---|---|
| drawer_open | Swipe from left edge to open drawer |
| drawer_close | Swipe to close drawer |
| pull_refresh | Pull down to refresh |
| page_back | iOS-style back gesture |
| swipe_left/right | Horizontal swipes |
0.2.16 #
P0/P1 Expert-level Optimizations
Changes #
- TODO: Add your changes here
0.2.16 #
P0/P1 Expert-level Optimizations
P0 - Fuzzy Match Suggestions #
tap()andenter_text()return similar keys/texts when element not found- Helps developers quickly identify correct key names
P1 - Enhanced inspect() #
- Added
idfield for element identification - Added
ancestorsarray (last 3 meaningful parent widgets) - Added
widgetTypefor actual Flutter widget class - Added
tooltipandiconextraction - Added
visiblestatus - Changed position/size to
boundsobject format
P1 - Error Code System #
- Added ErrorCode class (E001-E302)
- Structured error responses with code, message, suggestions
- Codes: elementNotFound, elementNotVisible, inputFailed, etc.
0.2.15 #
Critical Bug Fixes & AI Agent Improvements
Bug Fixes #
- Fixed tap/enter_text/scroll_to returning misleading success - Now returns
{success: false, error: "Element not found"}when element not found - Previously these tools returned success even when the target element didn't exist
New MCP Tools #
edge_swipe- Swipe from screen edge for drawer menus and iOS back gestures- Parameters:
edge(left/right/top/bottom),direction(up/down/left/right),distance
- Parameters:
screenshot_region- Capture a cropped region of the screen
Enhanced Tools #
inspectnow returns element coordinates:position: {x, y}- top-left cornersize: {width, height}- element dimensionscenter: {x, y}- center point for coordinate-based tappingsemanticsLabel- accessibility label when available
screenshotnow accepts:quality(0.1-1.0) - reduce image size via pixel ratiomax_width- scale down large screenshots
Improvements #
- Better error messages with element key/text in failure responses
- Tappable elements (InkWell, GestureDetector) now include extracted text
0.2.14 #
Testing Efficiency & Batch Operations
New MCP Tools #
execute_batch- Execute multiple actions in sequence (reduces round-trip latency)tap_at/long_press_at- Coordinate-based interactionsswipe_coordinates- Swipe from one coordinate to anotherscroll_until_visible- Scroll until target element becomes visibleassert_visible/assert_not_visible- Assert element visibilityassert_text- Assert element text content (equals or contains)assert_element_count- Assert count of elements matching criteriaget_page_state- Get complete page state snapshotget_interactable_elements- Get all interactable elements with suggested actionsget_frame_stats- Frame rendering statisticsget_memory_stats- Memory usage statistics
Efficiency Improvements #
- Batch operations reduce test execution time by 60%+
- Smart scroll eliminates manual scroll + check loops
- Built-in assertions simplify test validation
0.2.13 #
Feature Parity & Developer Experience
New MCP Tools #
scan_and_connect- Auto-scan VM Service ports and connect to first found Flutter applist_running_apps- List all running Flutter apps with their VM Service URIsstop_app- Stop the currently running Flutter appdisconnect- Disconnect from app without stopping itget_connection_status- Get connection info with actionable suggestionshot_restart- Full app restart (resets state)
Enhanced Tools #
launch_appnow supports:dart_defines- Pass compile-time variables (e.g.,["ENV=staging", "DEBUG=true"])flavor- Build flavor selectiontarget- Custom entry point fileextra_args- Additional flutter run arguments
Improved Error Messages #
- Connection errors now include specific solutions
get_connection_statusshows available apps and suggestions
0.2.12 #
Auto-Update Checking
New Features #
- Auto-update checking for all installation methods
- npm: Checks registry every 24 hours, shows notification
- VSCode: Extension auto-updates via marketplace
- IntelliJ: Plugin auto-updates via JetBrains marketplace
- Homebrew:
brew upgrade flutter-skill
0.2.11 #
Homebrew Distribution
New Features #
- Homebrew formula with pre-compiled native binary
brew tap ai-dashboad/flutter-skill && brew install flutter-skill- Auto-upgrades via
brew upgrade
0.2.10 #
IntelliJ Native Binary Support
New Features #
- Native binary auto-download for IntelliJ/Android Studio plugin
- Background download with progress indicator
- Cached to
~/.flutter-skill/bin/
0.2.9 #
npm Native Binary Auto-Download
New Features #
- npm postinstall script auto-downloads native binary
- Platform detection: macOS (arm64/x64), Linux (x64), Windows (x64)
- Fallback to Dart runtime if download fails
0.2.8 #
Native Binary Compilation
Performance #
- Native binary compilation for ~100x faster MCP startup
- Startup time: ~0.01s (native) vs ~1s (Dart JIT)
- GitHub Actions builds for all platforms
0.2.7 #
VSCode Native Binary Support
New Features #
- VSCode extension auto-downloads native binary
- Background download on extension activation
- Automatic fallback to Dart runtime
0.2.6 #
Claude Code Config Fix
Bug Fixes #
- Fixed Claude Code MCP config detection
- Correct path:
~/.claude/settings.json(was incorrectly using~/.claude.json) - Config now properly merges into existing settings
0.2.0 #
Major Feature Release - 25+ MCP Tools
New Features #
- UI Inspection:
get_widget_tree,get_widget_properties,get_text_content,find_by_type - Interactions:
double_tap,long_press,swipe,drag - State Validation:
get_text_value,get_checkbox_state,get_slider_value,wait_for_element,wait_for_gone - Screenshots:
screenshot(full app),screenshot_element(specific element) - Navigation:
get_current_route,go_back,get_navigation_stack - Debug & Logs:
get_logs,get_errors,get_performance,clear_logs - Development:
hot_reload,pub_search
Bug Fixes #
- Fixed global swipe using
platformDispatcher.viewsfor screen center calculation - Fixed
screenshot_elementto capture any widget by finding nearestRenderRepaintBoundaryancestor
Documentation #
- Complete rewrite of README.md with all tool categories
- Updated SKILL.md with full tool reference and parameters
- Updated USAGE_GUIDE.md with CLI and MCP examples
0.1.6 #
- Docs: Updated README to reflect unified
flutter_skillglobal commands.
0.1.5 #
- Fix: Added missing implementation for
scrollextension found during comprehensive verification. - Verified: All CLI features (inspect, tap, enterText, scroll) verified against real macOS app.
0.1.4 #
- Housekeeping: Removed
demo_countertest app from package distribution.
0.1.3 #
- Fix: Critical fix for
launchcommand to correctly capture VM Service URI with auth tokens. - Fix: Critical fix for
inspectcommand to correctly traverse widget tree (was stubbed in 0.1.2). - Feature:
launchcommand now forwards arguments toflutter run(e.g.-d macos).
0.1.2 #
- Docs: Updated README architecture diagram to reflect
flutter_skillexecutable. - No functional changes.
0.1.1 #
- Featured: Simplified CLI with
flutter_skillglobal executable. - Refactor: Moved CLI logic to
lib/src/clifor better reusability. - Usage:
flutter_skill launch,flutter_skill inspect, etc.
0.1.0 #
- Initial release of Flutter Skill.
- Includes
launch,inspect,actCLI tools. - Includes
flutter_skillapp-side binding. - Includes MCP server implementation.