Modern terminal HTTP/TCP latency monitoring tool with real-time visualization. Think httping meets modern CLI design with rich terminal UI, phase timing, and advanced analytics.
Status: Feature-complete MVP with HTTP/TCP support, phase timing, outlier detection, and comprehensive monitoring capabilities.

Real-time latency monitoring with interactive charts showing HTTP response times, outlier detection, and live statistics.
I've frequently found myself using nvitop to diagnose GPU/CPU contention issues.
The two best things about it are:
With those two lessons in mind: Here is Sping!
Purpose: Help observe and diagnose latency issues at layer 4+ (TCP/HTTP/HTTPS)
Two good things about it:
http://, https://, and tcp:// protocolspip install service-ping-sping
For development:
pip install -e .[dev]
# HTTP monitoring with interactive UI
sping google.com
# TCP connection monitoring
sping tcp://google.com:80
# HTTPS with custom options
sping https://api.example.com --interval 0.5 --count 20
# JSON output for automation
sping google.com --json --count 5
# Advanced monitoring with thresholds
sping example.com --warn 100 --crit 500 --percentiles
# Try different color themes
sping example.com --palette ocean
# Basic HTTP monitoring (auto-adds http://)
sping example.com
# HTTPS with custom method and body transfer
sping https://api.example.com --method POST --body
# IPv4 only with DNS caching
sping google.com --ipv4 --resolve-once
# With authentication
sping api.example.com --auth "bearer:your-token"
sping api.example.com --auth "user:password"
# Test TCP connectivity
sping tcp://google.com:80
sping tcp://example.com:443
# Monitor database connections
sping tcp://localhost:5432 --interval 0.1
# Outlier detection and thresholds
sping example.com --warn 100 --crit 500 --count 100
# Export detailed timing data
sping example.com --export-file results.json --count 50
# Show percentile statistics
sping example.com --percentiles --count 100
# Plain output for scripting
sping example.com --plain --count 5
sping automatically detects unusual latency spikes using Median Absolute Deviation (MAD) analysis:
|current_latency - median| / MAD > 6.0[OUTLIER] marker in the logoutliers 3)"anomaly": true field in export data (kept for API compatibility)Note: Outlier detection helps identify performance degradation, network issues, or service problems that might not trigger error thresholds.
-i, --interval FLOAT: Seconds between probes (default: 1.0)-c, --count INT: Number of probes then exit--timeout FLOAT: Request timeout in seconds (default: 10.0)-X, --method TEXT: HTTP method (default: HEAD)--ipv4: Force IPv4 only--ipv6: Force IPv6 only --resolve-once: Resolve DNS only once and cache--body: Include full body transfer time--no-keepalive: Disable persistent connections--user-agent TEXT: Custom User-Agent string--auth TEXT: Authentication (user:pass or bearer:token)--insecure: Skip TLS verification--warn FLOAT: Warning threshold in milliseconds--crit FLOAT: Critical threshold in milliseconds--percentiles: Show percentile statistics in summary--refresh-rate FLOAT: UI update throttling in Hz (default: 4.0, higher = more responsive, lower = less CPU)--palette PALETTE: Color palette for latency visualization (default: sunset)--xterm-colors-only: Force basic terminal color compatibility (useful for older terminals)Choose from beautiful themed color palettes to customize your latency visualization:
Warm oranges and reds reminiscent of a beautiful sunset
#626262 #808080 #6B59C3 #836FFF #8968CD #AB82FF #CD96CD #FFBBFF #CD8C95 #FFAEB9
View All Color Palettes
Cool blues and teals like ocean depths
#000080 #0000FF #1874CD #1E90FF #009ACD #00BFFF #00CDCD #00FFFF #66CDAA #7FFFD4
Natural greens from deep forest to bright sunlight
#BC8F8F #D2B48C #F4A460 #A2CD5A #BCEE68 #006400 #008B00 #00CD00 #00FF00 #66FF66
Fiery reds and oranges like molten lava
#8B0000 #CD0000 #FF0000 #FF4500 #CD6600 #FF8C00 #FFA500 #CDAD00 #FFD700 #FFFF66
Cosmic purples and magentas of deep space
#551A8B #7D26CD #AB82FF #CD00CD #EE00EE #FF00FF #CD6090 #FF1493 #CD919E #FF00FF
Crisp blues and whites of polar ice
#4682B4 #A2B5CD #CAE1FF #E0EEEE #E0FFFF #FFFFFF #8DB6CD #B0E2FF #87CEEB #FFFFFF
Bright electric colors for a cyberpunk feel
#1C1C1C #4D4D4D #0000FF #1E90FF #00FFFF #00FF7F #7FFF00 #FFFF00 #FF1493 #FF00FF
Classic grayscale gradient
#121212 #262626 #3A3A3A #4D4D4D #626262 #808080 #9E9E9E #B2B2B2 #D6D6D6 #EDEDED
# Examples with different palettes
sping example.com --palette ocean
sping example.com --palette volcano --count 20
sping example.com --palette neon --percentiles
Terminal Color Support: sping automatically detects your terminal's color capabilities and adjusts accordingly. However, older terminals or certain environments may experience:
TERM=xterm-256color in your environment or use --xterm-colors-only for consistent basic colors--xterm-colors-only to force basic terminal colors that work everywhere# For maximum compatibility with older terminals
sping example.com --xterm-colors-only
# Or set environment variable for better color support
TERM=xterm-256color sping example.com
--json: JSON output mode (one object per line)--plain: Plain text output mode--export-file FILE: Export JSON results to fileReal-time terminal UI with:
--plain)[1] 1755658486.287: 484.313ms 200 (application/json) from httpbin.org (52.1.207.236)
--- https://httpbin.org/get sping summary ---
1 probes, 1 ok, 0 errors
Latency (ms): min 484.313 mean 484.313 max 484.313
--json){"seq": 1, "timestamp": 1755658729.193, "latency_ms": 11.110, "status_code": 0, "error": null, "bytes_read": 0, "content_type": "tcp/connection", "host_address": "google.com (142.250.65.238)", "anomaly": false, "phases": {"dns_ms": 5.444, "connect_ms": 5.598, "tls_ms": null, "request_write_ms": null, "ttfb_ms": null, "body_read_ms": null, "total_ms": 11.110}}
sping provides detailed timing for each phase of the connection:
0: Success1: Warning threshold exceeded (when --warn specified)2: Critical threshold exceeded (when --crit specified)Perfect for monitoring scripts and alerting systems.
Press Ctrl+C to gracefully exit and see the final summary.
MIT - see LICENSE.md
Latest documentation • Version 0.3.0 specific docs • Install from PyPI