fdb 1.3.0
fdb: ^1.3.0 copied to clipboard
Flutter Debug Bridge - CLI for AI agents to interact with running Flutter apps on device. Launch, reload, screenshot, inspect widget tree, filter logs.
1.3.0 #
New commands #
fdb syslog— streams native system logs (iOS Console / Android logcat) for the running appfdb native-tap— performs a native in-process tap; also available asfdb tap --at x,yfor absolute coordinate targeting
Improvements #
fdb describenow surfaces off-screen children ofGridViewandListViewthat were previously hidden- App death is now detected and surfaces an
APP_DIEDerror immediately instead of hanging .fdb/state directory is now auto-located by walking up the directory tree, so fdb commands work from any subdirectory of the projectfdb statusreturnsRUNNING=truewhen a launch was interrupted but the app is still alive via VM URI fallbackfdb.app_pidis now stored separately fromfdb.pidfor accurate app liveness detection
Fixes #
- Session directory walk-up no longer escapes to a parent
.fdb/that has novm_uri.txtwhen the local PID is stale fdb statusVM URI fallback works correctly when launch is interrupted
1.2.1 #
Fixes #
fdb logsnow keeps recent VM-service log lines readable through unexpected app crashes by running the log collector as a real entrypoint with serialized flushes
1.2.0 #
New commands #
fdb doctor- pre-flight health checks for the app process, VM service,fdb_helper, platform tools, and stored device statefdb double-tap- double-tap widgets by selector or absolute coordinatesfdb scroll-to- scroll until a target widget becomes visible, including lazy listsfdb wait- wait for widget and route presence or absence without shell polling loops
Improvements #
fdb tapandfdb longpressnow support absolute coordinate targeting via--at x,y- Reload and restart completion now use VM lifecycle events for more reliable detection, including macOS reload handling
- Test automation gained a stricter verify pipeline plus more robust deep-link and double-tap smoke coverage
Fixes #
- Android test app now registers the
fdbtest://URL scheme so deep-link smoke tests exercise the real Android flow
1.1.7 #
New #
fdb screenshotnow supports all platforms: macOS (screencapture), Linux X11 (xdotool+import), physical iOS / Windows / Linux Wayland (viafdb_helperVM extension), and web (Chrome DevTools Protocol)fdb_helper: newext.fdb.screenshotVM extension — renders the Flutter surface to PNG and returns base64; used as fallback on platforms with no native capture CLI- Screenshots are automatically downscaled so the longest side fits within 1200px (preserving aspect ratio), using the pure-Dart
imagepackage; pass--fullto get native resolution
Fixes #
- Screenshot:
fdb launchnow writes.fdb/platform.txtso screenshot dispatches to the correct backend without probing live tools at capture time - Screenshot: Android and iOS simulator now targeted by explicit device ID (no more
bootedheuristic that breaks with multiple simulators) devices.dart: safe cast foremulatorfield (as bool? ?? false) to avoid crash on unexpected flutter devices outputextractDevicesJsondeduplicated intoprocess_utils.dart(was copied in bothlaunch.dartanddevices.dart)- Fix CI release:
fdb_helper/CHANGELOG.mdmissing 1.1.6 entry caused GitHub release to not be created despite pub.dev publish succeeding
1.1.6 #
Fixes #
SKILL.mdstate files section corrected: paths are<project>/.fdb/(not/tmp/) since 1.1.0SKILL.mdscreenshot default path corrected to<project>/.fdb/screenshot.pngdoc/README.agents.mdscreenshot default path corrected to<project>/.fdb/screenshot.png
Improvements #
- README: updated Flutter MCP server description to accurately reflect its current capabilities (runtime introspection, not just static analysis)
- README: comparison table "Device interaction" row now enumerates fdb's full interactive command set and correctly characterises the MCP server as read-only
- README:
fdb describecommand annotated with(requires fdb_helper)in the commands table
1.1.5 #
Fixes #
- Fix CI publish: fdb 1.1.4 was published but fdb_helper was not due to missing CHANGELOG entry
1.1.4 #
Improvements #
- Renamed skill from
interacting-with-flutter-appstousing-fdbfor better discoverability on skills.sh
1.1.3 #
Improvements #
fdb_helperis now published to pub.dev — add it asfdb_helper: ^1.1.3instead of a git path reference
1.1.2 #
New commands #
fdb shared-prefs get|get-all|set|remove|clear— read/write/clear SharedPreferences from the CLI via a VM service extension in fdb_helper
Fixes #
fdb deeplinknow uses the session device ID to detect platform instead of probing all connected devices — fixes misrouting to Android when both Android and iOS are connected but the session is on iOS
Improvements #
- Smoke test extended with
test:cleanandtest:shared-prefstasks covering all sub-commands
1.1.1 #
Improvements #
fdb_helperinstall instructions now reference pub.dev (fdb_helper: ^X.Y.Z) instead of a git path reference- Releasing skill updated to track all 9 version-bearing files
1.1.0 #
Fixes #
- Fix
developer.log()output not appearing infdb logs—flutter runnever forwardsdeveloper.log()to stdout; a background log collector now subscribes to the VM serviceLoggingstream and appends events directly to the log file
Improvements #
- Session state moved from
/tmp/fdb_*.txtto<project>/.fdb/— multiple projects can run simultaneously without interfering with each other .fdb/is automatically added to the project's.gitignoreon first launch- FVM support:
launchauto-detects.fvm/flutter_sdk/bin/flutter; override with--flutter-sdk <path> --projectflag onlaunchis now optional — defaults to CWD (agents running from the project directory need not pass it)- Log collector self-cleans on SIGTERM, SIGINT, and when flutter run exits
1.0.1 #
Fixes #
- Fix dartdoc angle bracket warnings in
describe.dartandvm_service.dart - Fix deeplink smoke test — register
fdbtest://URL scheme in test app Info.plist - Fix back smoke test — restart app to reset UI state before navigation test
Improvements #
- Add
example/example.mdfor pub.dev Example tab - Replace mermaid code block with pre-rendered SVG diagram (renders on pub.dev)
- Add
dart pub global activate fdbinstall option to README - Add release skill and CI publish workflow
1.0.0 #
New commands #
fdb back— navigate back via Navigator.maybePop(), handles dialogs and root detectionfdb longpress— long-press widgets, reuses tap infrastructure with configurable durationfdb swipe— swipe gestures for PageView/Dismissible with widget targeting and smart defaultsfdb describe— compact screen snapshot with interactive element refs (@1, @2...) for agent navigationfdb devices— list connected devicesfdb deeplink— open deep link URLs on devicefdb skill— print SKILL.md for AI agent consumption
Describe command #
- Shows only hittable, topmost-layer widgets (filters obscured/background route elements)
- Gesture info on GestureDetector/InkWell:
(tap),(tap,horizontalDrag),(tap,longPress) - Extracts text from all children, tooltips, and icon semantic labels
- Filters framework widgets and Unicode PUA icon codepoints
- Ref-based tapping:
fdb tap @3taps the 3rd interactive element from last describe - Shows deepest route name and Scaffold title
Fixes #
- Error propagation: specific error messages instead of "Server error"
--texttap: walks to hittable ancestor when Text widget itself isn't in hit-test path--indexordering: user widgets before framework widgets (Overlay, IndexedStack, _Theater)--keytap: ancestor walk for KeyMatcher/TypeMatcher, not just TextMatcher--help/-h: prints to stdout with exit 0, no "ERROR:" prefix- Swipe velocity: process-relative Stopwatch timestamps for VelocityTracker fling detection
- Screenshot: defaults to 1x logical resolution (~180KB vs ~1MB),
--fullfor native - Screenshot: supports
--output=pathequals syntax, fixes Android shell escaping - Skill command: resolves SKILL.md via package URI for global installs
0.1.0 #
- Initial release
- CLI commands: launch, status, reload, restart, kill, logs, tree, screenshot, select, selected, tap, input, scroll
- fdb_helper package for Flutter app integration