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
- Proxy Core (httpx) — Forwards requests, handles 502/504 errors, connection pooling
- Event Hub (WebSocket) —
ConnectionManagerbroadcastsrequest.started,request.completed,request.errorevents - Storage (SQLite/aiosqlite) — WAL mode, CRUD with pagination, 7-day session auto-cleanup
- CLI (Typer + Rich) — Live-updating table with colored method/status/latency, stats bar
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2e7c613739cb971e1309110693e8911bb90ffaf5014a6ecfaa9df6ac5505faf
|
|
| MD5 |
09ee1014fb539ec2ab4dfbf6202af157
|
|
| BLAKE2b-256 |
65b078d783cd6f81b75bdd2d585e4501a7a340ae6e64cfc4153049498ac2931e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc950dbc50d2c953f661e763ac5ecb229df7caa2259cfa0ac18aff2579e91af4
|
|
| MD5 |
ca7f70f46163ce3dd7e0c48fa935e728
|
|
| BLAKE2b-256 |
99c70d601bce9b8d168fe9c1eb4fb85bb54b257a0428ae252fe40225744d2836
|