beacon_widget
Tap a widget in your running Flutter app and get its file:line, theme properties and geometry on your clipboard, ready to paste into an AI coding agent.
What this package is like to depend on
Last release 14 days ago
09 Aug 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 11 of 11 stable releases
Nothing withdrawn
no release was ever pulled
0 months old
11 releases · first in 2026
11 releases in the last 12 months
see the full history below
Release timeline
11 releases · Aug 2026 to Aug 2026Releases
latest 11-
0.3.409 Aug 2026Release notes
Open source →- Drop the pubspec
screenshotsentry. pub.dev rendered the demo recording as a thumbnail in the sidebar, on a white panel that read as a broken logo against the dark page. The recording still plays inline in the README, which is where it belongs. - Remove the logo from the top of the README.
- Drop the pubspec
-
0.3.309 Aug 2026Release notes
Open source →- Replace the overlay button's mark with a crosshair, and add a matching logo
(
doc/logo.svg,doc/logo-mono.svg,doc/logo.png). The previous mark — concentric arcs over a dot — was indistinguishable from a wifi icon, which suggested broadcasting rather than what the button does: point at a widget. - Show the logo at the top of the README.
- Replace the overlay button's mark with a crosshair, and add a matching logo
(
-
0.3.209 Aug 2026Release notes
Open source →- Add
homepageanddocumentationlinks to the pubspec, so the pub.dev sidebar links straight to the repository and the setup instructions.
- Add
-
0.3.109 Aug 2026Release notes
Open source →- Add a demo recording to the README and as a pub.dev screenshot: tapping widgets in an app running on a phone, then pasting their references into a coding agent.
-
0.3.008 Aug 2026Release notes
Open source →The bridge now explains itself when it can't connect, instead of waiting in silence. Both cases below were hit repeatedly in real use, and neither was diagnosable from the output.
- If the vmservice-out-file never appears, the bridge prints where the flag has to go for the terminal, Android Studio and VS Code — including that Android Studio's "Additional run args" and "Attach args" are different fields, and that a repo with several packages has more than one run configuration to choose between. Printed once, not on a loop.
- If the file is already there but predates the bridge starting, it says so. A leftover address points at a port that died with the previous run, so connecting fails in a way that looks like a bug in the app.
- Expand the README's troubleshooting with the same three causes, and the single check that distinguishes them: whether .ref/vm.json has a fresh timestamp after launching.
-
0.2.308 Aug 2026Release notes
Open source →- Replace the example app with a small storefront: a gradient promo banner, category filters, a product grid and a checkout bar, built from named widgets across several files so the references it produces look like the ones you'd get from a real app.
- Add
example/tool/demo_drive.dart, which scripts a selection run through the VM Service — useful for recording a screencast without hand-tapping.
-
0.2.208 Aug 2026Release notes
Open source →- Document the Android Studio / IntelliJ run configuration for the bridge as a
drop-in
.idea/runConfigurations/*.xml, rather than a walk through the Edit Configurations dialog. - Warn that a run configuration's login shell can resolve a different
dartthan your terminal does. With more than one Flutter SDK installed (fvm plus a system-wide install, say), the older one can win and fail to resolve the project's dependencies.
- Document the Android Studio / IntelliJ run configuration for the bridge as a
drop-in
-
0.2.108 Aug 2026Release notes
Open source →- Rewrite the README: lead with the paste-into-an-agent workflow, explain how widget resolution actually works, and fold the IDE setup for both the app and the bridge into one section.
-
0.2.008 Aug 2026Release notes
Open source →The desktop bridge now ships inside this package.
beacon_bridgeis discontinued — there is nothing to install globally any more.Migrating from 0.1.x: drop
beacon_bridge, and run the bridge from your project instead:dart pub global deactivate beacon_bridge dart run beacon_widget:bridge --vmservice-out-file=.ref/vm.jsonThe Flutter API is unchanged;
Beacon.attachand everything on it keep their names and behaviour. The paste format and the.ref/layout are unchanged too, so an existing setup keeps working once the command is swapped.- Add the
bridgeexecutable, runnable withdart run beacon_widget:bridgefrom any project that depends on this package. Nodart pub global activate, no~/.pub-cache/binon yourPATH. - Add
package:beacon_widget/bridge.dart, the bridge's library surface. It is deliberately not exported frombeacon_widget.dart— it targets your development machine, not the widget tree. - Add
meta,pathandvm_serviceas dependencies. They are needed to resolve the bridge executable from a consuming project, and are not reachable from the Flutter API.
- Add the
-
0.1.108 Aug 2026Release notes
Open source →- Shorten the package description to pub.dev's recommended 60–180 characters.
- Point the repository links at the renamed GitHub repository.
- Set the formatter's page width to 120 to match the codebase, and format accordingly.
-
0.1.008 Aug 2026Release notes
Open source →Initial release.
Beacon.attach(child)— one-line install, wraps your app in the select-mode overlay. A genuine no-op outside debug builds: returnschildunmodified, with no overlay and no VM service traffic.- Tap-to-resolve: resolves a tapped widget to the exact
file:lineit was created at, using Flutter's--track-widget-creationinstrumentation, and walks past framework internals to the nearest widget in your own code. - Rich payload per selection: resolved theme properties (with provenance — it
reports
colorScheme.primaryrather than a raw hex value where it can), geometry, constraints, enclosing route and state, ancestor chain, and a cropped screenshot of the widget. - Selection stack: tap several widgets, then send them as one combined reference.
Beacon.hide()/Beacon.show()/Beacon.setVisible(bool)to control the on-screen overlay, plus automatic (best-effort) hiding when a screenshot is detected.- Broadcasts selections over the Dart VM Service for
beacon_bridgeto pick up.
Requires
beacon_bridgerunning on your development machine to get selections onto your clipboard.