all_box_devtool

all_box_devtool panel next to the inspected app, editing a list value

all_box_devtool

πŸ‡§πŸ‡· PortuguΓͺs | πŸ‡ΊπŸ‡Έ English

license Flutter DevTools extension 1.0.0 β€” first release

πŸ’‘ A DevTools extension for all_box: browse and edit AllBox containers straight from Flutter/Dart DevTools.

Table of contents

πŸš€ Features

  • πŸ” Containers list. Every AllBox container currently alive in the inspected app, filterable by name, with backend/pending-flush badges.
  • πŸ“„ Container detail. A selected container's keys and values, filterable by key name, plus a storage summary (backend, key count, approximate size).
  • ✏️ Edit in place. Tap a key to view it, edit it as raw JSON, or delete it β€” writes go straight to the running app through the VM Service.
  • πŸ” Polling refresh. The panel refreshes automatically every 2 seconds, plus a manual refresh button. all_box 0.6.0 does post debug-only VM Service mutation events on write/remove/erase, but this extension doesn't consume them yet (see How it works) β€” refreshing is pull-based for now.
  • 🧯 Debug/profile only. all_box's introspection (AllBoxInspector) is a no-op in release builds β€” nothing here adds runtime overhead to a shipped app, and there's nothing to see in a release build's DevTools session, by design.

πŸ“‹ Requirements

The app you're debugging must depend on:

dependencies:
  all_box: ^0.6.0

all_box 0.6.0 is what introduced AllBoxInspector β€” the debug-only, read-only introspection surface this extension reads through the VM Service. Nothing else is required on the inspected app's side.

πŸ“¦ Step-by-step setup

  1. In the app that uses all_box, make sure pubspec.yaml has all_box in dependencies and all_box_devtool in dev_dependencies:

    dependencies:
      all_box: ^0.6.0
    
    dev_dependencies:
      all_box_devtool: ^1.0.0
    
  2. Run:

    flutter pub get
    
  3. Start the app in debug or profile mode:

    flutter run
    
  4. Open Flutter/Dart DevTools from your IDE or from the URL printed in the terminal.

  5. On first use, enable the all_box_devtool extension when DevTools asks for permission.

  6. Open the "all_box_devtool" tab.

  7. Select a container to inspect its keys, edit values as raw JSON, or remove entries.

For more details about extension permissions, see the official docs: Use a DevTools extension.

πŸ§ͺ Usage

Once enabled, a new "all_box_devtool" tab appears in DevTools while your app is running.

  • Select a container on the left to inspect its keys on the right.
  • Type in either search field to filter containers or keys.
  • Tap any key to view, edit (as raw JSON), or delete it.
  • Use the refresh button, or just wait β€” the panel polls every 2 seconds on its own.

Containers list and container detail panel

Key editor dialog, editing a value as raw JSON

πŸ› οΈ How it works

  • The extension talks to the inspected app only through the VM Service β€” it evaluates AllBoxInspector.snapshotAsJson() (and, for writes, AllBox(container).write(...)/.remove(...)) in the app's main isolate. No package is added to the inspected app's own dependency graph beyond all_box itself.
  • all_box has no built-in Dart-visible reactivity by design (see its own README). As of all_box 0.6.0 it also posts a debug-only VM Service extension event (all_box:mutation) after every write/remove/erase, aimed exactly at tooling like this β€” but this extension doesn't listen for it yet, so it stays pull-based for now: a PollingController refreshes every 2 seconds, and every write/delete triggers an immediate extra refresh so the UI reflects your own edits right away.
  • Full design rationale, folder-by-folder responsibilities, and the reasoning behind each decision: ARCHITECTURE.md.

πŸ“š Additional information


Issues and pull requests are welcome at the GitHub repository.

Libraries

all_box_devtool
Anchor package for the all_box DevTools extension.