A desktop app designed for developers whose IDE doesn't support the Flutter extension yet. It centralizes Android emulator management and Flutter hot reload in one place — no more juggling terminals.
- Start and stop Android Virtual Devices directly from a clean dashboard, with live boot status tracking
- Launch or attach Flutter sessions on any device (emulator or USB) and get automatic hot reload on every save, with a "reload all" action across running sessions
- Control the full
flutter runsession — hot reload, restart, optional build mode (--debug/--profile/--release) and flavors (--flavor), plus one-click DevTools, tree dumps, screenshots (with an open-file shortcut), detach, and more - Run project actions outside a session —
flutter pub get,flutter pub upgrade,flutter cleanwith live output - Android native logs (
adb logcat) in a separate tab for physical-device sessions, PID-tracked across hot restarts - Per-project Flutter SDK (FVM) — projects under
.fvm/use their pinned SDK; the effective version is shown per session - Desktop notifications, and optional auto-restart of a crashed session (max 3 attempts, off by default)
- Monitor live logs in a built-in console — see exactly what Flutter is doing
- Manage your projects — save project folders, pick a target device, choose a build context, and launch with one click
- Auto-detects your Android SDK, ADB, Flutter, and AVD list — zero config required
-
Interactive Flutter Run Commands — the other stdin commands
flutter runalready supports (pdebug paint,Phot restart,iwidget inspector,oplatform brightness,w/t/Ltree dumps,sscreenshot,ddetach) exposed as buttons in the session UI, filtered by build mode. -
DevTools Integration — the DevTools URL that
flutter runprints on startup is parsed and shown with a one-click "Open DevTools" button for that session. -
Build Mode Selection — pick
--debug/--profile/--releasewhen starting a session instead of always running in debug mode. -
Flavor Management — optional flavor field (
--flavor dev/prod) when launching a session; the last flavor per project is remembered. -
Out-of-Session Project Actions —
flutter pub get,flutter pub upgrade, andflutter cleanas one-off buttons on a project, with a streaming output panel. -
Physical Device Logs — for physical devices, an
adb logcattab filtered by the app'sapplicationId(re-resolved when the pid changes across hot restarts). -
Flutter Attach —
flutter attach -d <device>hooks a hot-reload/debug session onto an app already running on the device. Pick the project in the Devices view (Flam can't guess which project the app was built from). -
Native Desktop Notifications — a system notification (build failure, session crash, device disconnected) is pushed even while the user is working in another window; toggle it in Settings.
-
Unified Multi-Project Dashboard — all sessions across projects in one view, with a global counter (sessions · devices) always visible in the sidebar, status/text filters, and a "reload all" action.
-
Per-Project Flutter SDK Version — projects using FVM (a
.fvm/folder) run with their pinned SDK binary; the effectiveflutterversion is shown per session. -
Restart on Crash — unexpected exits are flagged as crashed, surfaced with a one-click "Relaunch", and can auto-restart (max 3 consecutive attempts, re-armed once the session stays up 30s, off by default in Settings).
List and control your Android emulators and physical devices.
Save your Flutter projects and launch sessions in one click.
Run sessions with live logs, hot reload, and hot restart — all in one view.
- Go 1.21+
- Node.js 18+
- Wails CLI —
go install github.com/wailsapp/wails/v2/cmd/wails@latest - Android SDK with platform-tools, platform, and build-tools installed
- Flutter in your PATH or set manually in Settings
wails devwails buildThe executable will be in build/bin/.
Note: Wails platform scaffolds must be generated on the target OS. Run
wails generate platformonce per OS before building.
The Go backend and Wails app are cross-platform; only the platform scaffolding
and install scripts are OS-specific. Build per OS, then run the matching script
in build/bin/.
wails build
# install: build\bin\install.bat (or install.ps1)
# uninstall: build\bin\uninstall.batwails generate platform # once, creates build/linux/
wails build
chmod +x build/bin/install-linux.sh
./build/bin/install-linux.sh # install
./build/bin/uninstall-linux.sh # uninstallInstalls flutter-avd-manager to ~/.local/bin, plus a .desktop launcher and
icon. Requires libwebkit2gtk-4.1-dev and gtk3 build deps at build time; for
Debian/Ubuntu: sudo apt install libwebkit2gtk-4.1-dev build-essential.
wails generate platform # once, creates build/darwin/ scaffold
wails build -platform darwin/amd64 # Intel
wails build -platform darwin/arm64 # Apple Silicon
./build/bin/install-macos.sh # copies the .app into /Applications
./build/bin/uninstall-macos.shmacOS note: the produced
.appis unsigned, so first launch may be blocked by Gatekeeper. Runxattr -dr com.apple.quarantine "/Applications/Flutter AVD Manager.app"or right-click → Open once. Ad-hoc signing (codesign --force --deep -s - "Flutter AVD Manager.app") avoids this.
On first launch, the app detects your SDK tools automatically. If something is missing, the Settings screen lets you point to the correct paths manually.


