Extension Icon

HTTP Performance Analyzer

Analyze and visualize HTTP/HTTPS request performance metrics including DNS lookup, TCP connection, TLS handshake, and content transfer times
Overview

HTTP Performance Analyzer ⚑

A Raycast extension to analyze and visualize HTTP/HTTPS request performance metrics.

Features

  • 🌐 DNS Lookup Time - Measure domain name resolution
  • πŸ”— TCP Connection Time - Track TCP handshake duration
  • πŸ”’ TLS Handshake Time - Monitor SSL/TLS negotiation (HTTPS only)
  • βš™οΈ Server Processing Time - Measure time to first byte
  • πŸ“₯ Content Transfer Time - Track download duration
  • ⏱️ Total Request Time - Complete end-to-end timing
  • πŸ“Š Performance Grades - Automatic A+ to F rating
  • ⚠️ Status Indicators - Visual indicators for each phase (βœ… ⚠️ πŸ”΄)

Installation

From Raycast Store

  1. Open Raycast
  2. Search for "HTTP Performance Analyzer"
  3. Click "Install"

Manual Installation (Development)

# Clone and setup
git clone <repository-url>
cd httpperf
npm install

# Start development mode
npm run dev

Usage

  1. Open Raycast
  2. Type "Analyze HTTP Performance"
  3. Enter the URL you want to test
  4. View the performance metrics

Keyboard Shortcuts

  • Cmd+C - Copy results
  • Cmd+U - Copy URL
  • Cmd+D - View detailed report

Advanced Options

  • HTTP Method: GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS
  • Custom Headers: Add custom HTTP headers
  • Follow Redirects: Enable/disable redirect following

Display

The extension shows:

Top Section:

  • Connection info (IP, HTTP version, status code, performance grade)
  • Downloaded size and speed

Timing Breakdown:

  • Each phase with duration and percentage
  • Color-coded status indicators:
    • βœ… Green = Excellent performance
    • ⚠️ Orange = Could be improved
    • πŸ”΄ Red = Needs optimization

Example:

⚑ 756ms

πŸ”— Connection               βœ… 200 Success Β· HTTP/2 Β· ⚑ A
   142.250.185.196

πŸ’Ύ Downloaded               4.02 KB at 5.31 KB/s

🌐 DNS Lookup              150ms      18.5%  βœ…
πŸ”— TCP Connection          119ms      14.1%  βœ…
πŸ”’ TLS Handshake           356ms      47.0%  πŸ”΄
βš™οΈ  Server Processing      131ms      17.3%  βœ…
πŸ“₯ Content Transfer          0ms       0.0%  βœ…
πŸ• Total Time              756ms

Performance Thresholds

Each phase is evaluated against standard thresholds:

  • DNS: < 50ms βœ… | 50-150ms ⚠️ | >150ms πŸ”΄
  • TCP: < 100ms βœ… | 100-200ms ⚠️ | >200ms πŸ”΄
  • TLS: < 200ms βœ… | 200-400ms ⚠️ | >400ms πŸ”΄
  • Server: < 500ms βœ… | 500-1500ms ⚠️ | >1500ms πŸ”΄
  • Transfer: < 200ms βœ… | 200-600ms ⚠️ | >600ms πŸ”΄

Requirements

  • Raycast (latest version recommended)
  • macOS 11.0 or later
  • curl command (pre-installed on macOS)

Development

# Install dependencies
npm install

# Start development mode
npm run dev

# Build for production
npm run build

# Lint code
npm run lint

Troubleshooting

"Failed to analyze" error

  • Verify the URL is valid and accessible
  • Check your internet connection
  • Some websites may block automated requests
  • Try with a different URL

No TLS metrics

  • TLS metrics only appear for HTTPS URLs
  • HTTP requests will show 0ms for TLS

Unexpected timing

  • Network conditions affect results
  • Server location and load impact timing
  • Run multiple tests for consistency

Contributing

Contributions welcome! Please submit a Pull Request.

License

MIT License

Changelog

See CHANGELOG.md for version history.