network_debugger
Free tool for debugging HTTP and WebSocket which is MUCH BETTER than the built-in Flutter Netwrok Devtools.
Suitable for local development and test environments. Has web interface (opens in browser), desktop and CLI.
Features
- Automatic binary download from GitHub releases
- Smart caching with version management
- Platform detection (Windows, macOS, Linux with various architectures)
- Download progress tracking
- Simple process management
- Automatic browser opening to web UI
- CLI tool for instant launch
Quick Start (CLI)
The easiest way to use the network debugger is via the CLI tool:
Installation
# Install globally from pub.flutter-io.cn
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.
Quick Start (Dart API)
You can also use the package programmatically in your Dart code:
Installation
Add to your pubspec.yaml:
dependencies:
network_debugger: ^0.1.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: 9091,
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');
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.
License
MIT
Libraries
- network_debugger
- Launcher for network-debugger binary with automatic download and caching.