network_debugger
Quick start (recommended)
- CLI (WEB UI in browser) — fastest way to start
dart pub global activate network_debugger
network_debugger
This starts the proxy and opens the UI in your browser:
- UI:
http://localhost:9092/ - Proxy base (HTTP/WebSocket forward):
http://localhost:9091
- Desktop App (Native GUI)
Download the desktop application from GitHub Releases. It bundles the proxy server and UI.
Free tool for debugging HTTP and WebSocket traffic which is much better than the built-in Flutter Network DevTools.
Suitable for local development and test environments. Has web interface (opens in browser), desktop and CLI.
Features
What it can do
- Intercept and view HTTP and WebSocket traffic
- Waterfall timeline of requests
- grouping by domain/route
- Filters: method, status, MIME, minimum duration, by headers
- Convenient search with highlighting
- HTTP details: headers (with sensitive data masking), body (pretty/JSON tree), TTFB/Total
- CORS/Cache hints, cookies and TLS summary
- WebSocket details: events/frames, pings/pongs, payload preview
- HAR export
- Artificial response delay (useful for simulating "slow networks")
- Record/stop and records management
- HTML preview
- Form Data (show files) For example Flutter devtools don't show at all
- You can proxy only app requests or all OS requests (forward proxy)
- Crossplatform
Quick Start (CLI)
Installation
# Install globally from pub.dev
dart pub global activate network_debugger
# OR install locally from path
cd dart_packages/network_debugger
dart pub global activate --source path .
Usage
# Launch debugger (downloads binary if needed, opens browser automatically)
network_debugger
# Custom port
network_debugger --port 8080
# Without opening browser
network_debugger --no-browser
# Specific binary version
network_debugger --binary-version v1.0.0
# Show version
network_debugger --version
# Show help
network_debugger --help
Press Ctrl+C to stop the debugger.
How It Works
- Detects your platform (OS + architecture)
- Checks local cache (
~/.cache/network_debugger/or platform-specific) - Downloads from GitHub releases if not cached
- Extracts and caches the binary
- Launches the process
- Returns a
DebuggerInstancefor process management
Cache Location
- macOS/Linux:
~/.cache/network_debugger/ - Windows:
%LOCALAPPDATA%\network_debugger\Cache\
Each version is stored separately for easy version switching.
Programmatic usage (Dart API)
You can also use the package programmatically in your Dart code:
Installation
Add to your pubspec.yaml:
dependencies:
network_debugger: ^0.2.2
Usage
import 'package:network_debugger/network_debugger.dart';
void main() async {
// Launch debugger (downloads if needed, uses cache otherwise)
final debugger = await NetworkDebugger.launch(
port: 9092,
onProgress: (received, total) {
print('Download progress: ${(received / total * 100).toStringAsFixed(1)}%');
},
);
print('Network debugger running at: ${debugger.url}');
// When done...
await debugger.stop();
}
Advanced Usage
Specify Version
final debugger = await NetworkDebugger.launch(
version: 'v1.0.0', // or null for latest
);
Custom Configuration
final debugger = await NetworkDebugger.launch(
port: 8080,
autoOpenBrowser: false, // Don't open browser automatically
onProgress: (received, total) {
final percent = (received / total * 100).toStringAsFixed(1);
print('Downloading: $percent%');
},
);
Cache Management
// Clear all cached binaries
await NetworkDebugger.clearCache();
// Clear specific version
await NetworkDebugger.clearCache(version: 'v1.0.0');
License
MIT
Libraries
- network_debugger
- Launcher for network-debugger binary with automatic download and caching.