Skip to main content

A CLI-first API debugging proxy with real-time WebSocket streaming

Project description

proxy-view

A CLI-first API debugging proxy — intercept, inspect, replay, and debug HTTP traffic in real-time from your terminal or browser dashboard.

pip install proxy-view
proxy-view --target http://localhost:3000 --port 9090

Quick Start

# Start the proxy
proxy-view --target https://jsonplaceholder.typicode.com --port 9090

# In another terminal, make requests through the proxy
curl http://localhost:9090/posts
curl http://localhost:9090/posts/1
curl http://localhost:9090/posts/1/comments

# Press Ctrl+C to stop

The terminal shows a live-updating table with colored method/status/latency for every request.

Open the Dashboard

Add -d to open the React dashboard in your browser:

proxy-view --target http://localhost:3000 --port 9090 -d

Replay a Request

# Replay from the command line
proxy-view replay <request-id> --port 9090

# With diff mode (compare original vs replayed response)
proxy-view replay <request-id> --port 9090 --diff

# Or click the ↻ replay button in the dashboard

Features

Feature Description
Reverse proxy Forwards HTTP requests to any target URL — no system proxy config needed
Real-time streaming Live CLI table + WebSocket event stream to the dashboard
Request history All requests stored in SQLite with WAL mode (auto-purged after 7 days)
Replay engine Re-send any captured request through the proxy, with --diff support
Browser dashboard Full DevTools-style UI: request list, detail panel with Headers/Body/Timing tabs
No config required Works out of the box — no config files, no SSL certs

CLI Reference

# Global options (passed before any command)
proxy-view --target URL --port PORT [--db PATH] [--dashboard]

# Commands
proxy-view replay REQUEST_ID --port PORT [--diff]
Option Short Default Description
--target -t http://localhost:3000 Target URL to forward requests to
--port -p 9090 Port to run the proxy on
--db ~/.proxy-view/db.sqlite Path to SQLite database
--dashboard -d false Open the React dashboard in browser

Replay Command

Argument Description
REQUEST_ID The ID of a previously captured request (required)
--port Port of the running proxy server (default: 9090)
--diff Show a diff between the original and replayed response

Architecture

┌─────────────┐     ┌──────────────────┐     ┌──────────────┐
│  Your App   │ ──► │  proxy-view      │ ──► │  Target API  │
│  (client)   │     │  :9090           │     │  (server)    │
└─────────────┘     └──────────────────┘     └──────────────┘
                         │        ▲
                         │        │
                    ┌────▼────────┴────┐
                    │  WebSocket Hub   │
                    │  /ws             │
                    └────────┬─────────┘
                             │
              ┌──────────────┼──────────────┐
              ▼              ▼              ▼
        ┌──────────┐  ┌──────────┐  ┌────────────┐
        │  CLI     │  │Dashboard │  │  SQLite    │
        │  Viewer  │  │ (React)  │  │  Storage   │
        └──────────┘  └──────────┘  └────────────┘

Layers

  1. Proxy Core (httpx) — Forwards requests, handles 502/504 errors, connection pooling
  2. Event Hub (WebSocket) — ConnectionManager broadcasts request.started, request.completed, request.error events
  3. Storage (SQLite/aiosqlite) — WAL mode, CRUD with pagination, 7-day session auto-cleanup
  4. CLI (Typer + Rich) — Live-updating table with colored method/status/latency, stats bar
  5. Dashboard (React + Vite) — DevTools-style UI with WebSocket auto-reconnect, 3-tab detail panel, replay button

Requirements

  • Python 3.11+
  • Works on macOS, Linux, Windows

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proxy_view-0.1.0.tar.gz (88.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxy_view-0.1.0-py3-none-any.whl (83.4 kB view details)

Uploaded Python 3

File details

Details for the file proxy_view-0.1.0.tar.gz.

File metadata

  • Download URL: proxy_view-0.1.0.tar.gz
  • Upload date:
  • Size: 88.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for proxy_view-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d2e7c613739cb971e1309110693e8911bb90ffaf5014a6ecfaa9df6ac5505faf
MD5 09ee1014fb539ec2ab4dfbf6202af157
BLAKE2b-256 65b078d783cd6f81b75bdd2d585e4501a7a340ae6e64cfc4153049498ac2931e

See more details on using hashes here.

File details

Details for the file proxy_view-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: proxy_view-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 83.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for proxy_view-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc950dbc50d2c953f661e763ac5ecb229df7caa2259cfa0ac18aff2579e91af4
MD5 ca7f70f46163ce3dd7e0c48fa935e728
BLAKE2b-256 99c70d601bce9b8d168fe9c1eb4fb85bb54b257a0428ae252fe40225744d2836

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page