Give agents access to your app's live state

Let agents investigate UI, stored data, and app-specific state in your Flutter app with tools scoped to development.

Use remote tools to answer questions about what the app is showing, what it has stored, and which app-specific state is driving its behavior. Enable only the inspection or development actions your workflow needs.

Flutter combines framework tools registered in Dart with native Android and Apple suites. macOS supports the non-UIKit native tools documented here plus Flutter-owned screenshots, visual trees, FPS, and pointer evidence; native AppKit UI inspection is not currently available.

await Ansight.instance.initializeAndActivate(
  createOptionsBuilder()
      .withAnsightDefaults()
      .withReadOnlyToolAccess()
      .withRemoteTools(
        const AnsightRemoteToolsOptions(
          visualTree: true,
          database: AnsightDatabaseToolsOptions(),
        ),
      )
      .build(),
);
await AnsightFlutterInstrumentation.instance.install();
GuidePurpose
VisualTreeInspect Flutter and native UI sources, screenshots, and overlays.
Flutter InspectionQuery mounted widgets, diagnostics, search results, and navigation state.
DatabaseDiscover SQLite files, schema, and read-only queries.
FileSystemInspect and transfer files in approved roots.
PreferencesRead or repair approved preference keys.
ClipboardRead, check, set, and clear the connected app device clipboard through native tools.
PurchasesRecord and validate StoreKit or Google Play evidence through Ansight.instance.purchases.
SecureStorageAccess explicitly allowed secure values.
ReflectionInspect supported native roots.
Native Android JNI Reference Diagnosticsjni_references.capture_graph through native all-in-one defaults; there is no suite-specific Dart option.
Custom ToolsExpose narrow Dart operations.

All tools remain subject to AnsightToolGuard. Prefer read-only access and keep tool registration inside the app’s development guard.

Native catalog entries expose current availability, unmet state, remediation, and retryability through runtime, with a top-level executable flag. The native runtime rechecks availability immediately before execution. Dart-backed tools are considered available while registered because the Dart registration API does not currently expose a pre-invocation availability callback.