ispect 5.0.0-dev34 copy "ispect: ^5.0.0-dev34" to clipboard
ispect: ^5.0.0-dev34 copied to clipboard

In-app observability and QA diagnostics toolkit for Flutter, with logs, network tracing, layout inspection, exports, and redaction.

ISpect is an in-app observability and QA diagnostics toolkit for Flutter and Dart. It provides a visual debug panel, structured logging, network monitoring, database tracing, widget-tree inspection, and data redaction — with compile-time gating so the toolkit is inactive unless ISPECT_ENABLED=true is provided.

Live web demo — drag and drop exported log files to explore them in the browser.

Preview #

ISpect desktop log viewer

Desktop log viewer and standalone web demo.

Inspector panel
Inspector
Render tree, layout, spacing, transforms.
Color picker
Color picker
Read on-screen colors and compare values.
JSON viewer
JSON viewer
Inspect structured payloads without leaving the app.
Share sheet
Export and share
Send sessions and logs for debugging or QA.
Mobile showcase
Settings panel Typography inspector on mobile Layout inspector on mobile Spacing inspector on mobile

Decoration inspector on mobile Transform inspector on mobile Effects inspector on mobile Alignment and margin inspector on mobile

Why ISpect? #

ISpect is designed for the gap between local debugging and production telemetry: QA builds, staging builds, dogfooding, and support sessions where you need to inspect what happened inside the app without attaching a debugger. When ISPECT_ENABLED is not defined at compile time, ISpect entry points become const-guarded no-ops and are eligible for Dart tree-shaking.

Capability What it does
Release-gated builds Compile-time guard keeps the toolkit inactive unless explicitly enabled
Visual debug panel Draggable overlay with custom actions, badges, and the log viewer
Widget inspector Tap any widget to read its render box, decorations, constraints, and transforms
Structured logs Typed entries with levels, categories, filtering, history, and export/import
Network capture Request / response / error capture for Dio, http, and WebSocket clients
Database tracing Passive observability for any storage driver via a single dbTrace extension
BLoC observer Event / state / transition / error forwarding into the log pipeline
Automatic redaction Tokens, passwords, PII, and credit-card data masked before they reach logs
Observer hooks Forward log events to your own Sentry, Crashlytics, Grafana, or backend adapter
12 languages en, ru, kk, zh, es, fr, de, pt, ar, ko, ja, hi

How it differs #

Tool Best for Where ISpect fits
Flutter DevTools Local profiling, widget inspection, memory, CPU, and debugger workflows ISpect runs inside QA/staging builds and can export a diagnostic session without a connected IDE
Sentry / Crashlytics Production crash reporting, release health, alerts, and long-term telemetry ISpect gives an interactive in-app log/session viewer before forwarding selected events elsewhere
Dio interceptors / loggers Request logs and console output ISpect correlates logs, network, database, BLoC, navigation, export, and visual inspection in one viewer

Data handling #

ISpect can capture sensitive application data if you configure it to log request bodies, response bodies, database arguments, BLoC payloads, or custom messages. Redaction is enabled by default in the network packages and the shared redaction engine covers common auth headers, tokens, cookies, credentials, PII, and financial fields, but no automatic redactor can understand every domain-specific payload.

Before using ISpect in shared QA, staging, customer-support, or enterprise builds:

  • keep body/header capture limited to what the team actually needs;
  • add project-specific redaction keys for tenant IDs, internal tokens, account numbers, and business identifiers;
  • treat exported sessions as sensitive files;
  • review observer adapters before forwarding logs to Sentry, Crashlytics, Grafana, or custom backends;
  • keep ISPECT_ENABLED disabled for production release builds unless you have an explicit internal policy for enabling it.

See docs/SECURITY.md for the data-handling policy and recommended rollout checklist.

The ISpect toolkit #

ISpect is a modular monorepo. Install only what your project needs — each package works independently.

Package What it does
ispect Flutter UI — debug panel, log viewer, navigation observer, inspector integration
ispect_layout Visual layout inspector — sizes, constraints, decorations, compare mode, color picker
ispectify Pure-Dart logging core — typed log entries, filtering, tracing, observers
ispectify_dio Dio HTTP interceptor with automatic redaction
ispectify_http http package interceptor with automatic redaction
ispectify_ws WebSocket traffic capture with automatic redaction
ispectify_db Database operation tracing (SQL, ORM, KV stores)
ispectify_bloc BLoC event / state / transition observer

Release channel #

The 5.0.0-dev line is a pre-release channel for teams validating the upcoming 5.x architecture and package split. If your dependency policy allows only stable packages, pin a stable version from pub.dev until 5.0.0 is released.

Project maturity #

Quick start #

dependencies:
  ispect: ^5.0.0-dev34
import 'package:flutter/material.dart';
import 'package:ispect/ispect.dart';

void main() {
  ISpect.run(() => runApp(const MyApp()));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: ISpectLocalizations.delegates(),
      navigatorObservers: ISpectNavigatorObserver.observers(),
      builder: (_, child) => ISpectBuilder.wrap(child: child!),
      home: const HomePage(),
    );
  }
}
# Development — toolkit active.
flutter run --dart-define=ISPECT_ENABLED=true

# Release — omit the flag so ISpect remains inactive.
flutter build apk

For package-specific guides (Dio, http, WS, DB, BLoC, layout inspector) see the individual package READMEs linked in the table above.

Production safety #

ISpect is flag-gated. When ISPECT_ENABLED is not defined at compile time, ISpect.run(), ISpectBuilder, and ISpectLocalizations.delegates() become const-guarded no-ops and are eligible for Dart's tree-shaker in release builds.

# Development — toolkit active.
flutter run --dart-define=ISPECT_ENABLED=true

# Release — omit the flag so ISpect remains inactive.
flutter build apk

For environment-aware control:

import 'package:flutter/foundation.dart';

class ISpectConfig {
  static const bool isEnabled = bool.fromEnvironment(
    'ISPECT_ENABLED',
    defaultValue: kDebugMode,
  );

  static const String environment = String.fromEnvironment(
    'ENVIRONMENT',
    defaultValue: 'development',
  );

  static bool get shouldInitialize => isEnabled && environment != 'production';
}

Release checklist:

  • do not pass --dart-define=ISPECT_ENABLED=true to production release jobs;
  • keep debug-only setup inside ISpect.run(...) / ISpectBuilder.wrap(...) entry points;
  • prefer environment-aware guards such as ENVIRONMENT != 'production' for internal staging builds;
  • verify generated artifacts if your compliance process requires binary evidence.

Measured impact on an obfuscated release APK (no --dart-define=ISPECT_ENABLED): 6 residual "ispect" strings vs. 276 in a development build. Treat this as a release-footprint check, not a promise that every textual reference disappears from the binary.

Repository #

This repository is a monorepo containing every package above plus a standalone web-based log viewer, with shared tooling for versioning, publishing, and doc sync. See bash/README.md for the automation stack and docs/VERSION_MANAGEMENT.md for the release workflow.

Documentation workflow #

Each package README is generated from a per-package source in docs/readme/. Shared fragments (header, footer, install matrix, redaction block, production-safety block) live in docs/readme/_partials/. Regenerate with ./bash/build_readme.sh; verify in CI with ./bash/build_readme.sh --check. Do not edit packages/*/README.md by hand — edits are overwritten on the next build.

Contributing #

Contributions are welcome. See CONTRIBUTING.md for guidelines, and open issues or pull requests at the ISpect repository.

License #

MIT — see LICENSE.


30
likes
0
points
4.88k
downloads

Publisher

verified publishershodev.live

Weekly Downloads

In-app observability and QA diagnostics toolkit for Flutter, with logs, network tracing, layout inspection, exports, and redaction.

Repository (GitHub)
View/report issues

Topics

#inspector #ispect #debug #toolkit #debug-toolkit

License

unknown (license)

Dependencies

collection, draggable_panel, flutter, flutter_localizations, intl, ispect_layout, ispectify, meta, path_provider, super_sliver_list, web

More

Packages that depend on ispect