Skip to main content

Interactive HTTP/HTTPS debugging proxy with runtime policies and terminal UI.

Project description

proxyscope

proxyscope is an interactive HTTP/HTTPS proxy for request inspection, response editing, static-response policies, and live runtime control in a terminal UI.

Highlights

  • Forward HTTP requests through an upstream connection.
  • Handle HTTPS via CONNECT and optional TLS interception (MITM).
  • Group request/response logs by request id.
  • Inspect request/response details in a TUI.
  • Edit matching responses in an external editor.
  • Persist runtime configuration and policy rules.
  • Replay captured requests.

Requirements

  • Python 3.13+
  • Poetry 2.x

Installation

poetry install

Run

poetry run proxyscope --host 127.0.0.1 --port 8080

With persisted runtime configuration:

poetry run proxyscope --config ./runtime-config.json

Without TUI:

poetry run proxyscope --no-ui

Runtime Commands (TUI)

  • help
  • clear
  • sites
  • loglevel <DEBUG|INFO|WARNING|ERROR>
  • whitelist [show|add|remove|clear] ...
  • cache [show|on|off|toggle]
  • config [show|save [path]|reload]
  • policy [show|add-editor|add-static|edit|remove|enable|disable] ...
  • quit

Keyboard Shortcuts (TUI)

  • Left / Right: Focus zwischen Panels wechseln.
  • Up / Down: Auswahl bewegen oder vertikal scrollen (abhängig vom aktiven Panel).
  • PageUp / PageDown: Schnelles vertikales Scrollen.
  • Enter: Request-Detail für den ausgewählten Request öffnen (oder Kommando ausführen, wenn Eingabezeile befüllt ist).
  • Backspace: Zeichen in der Kommandozeile löschen.
  • Tab / Shift+Tab: Im Request-Detail zwischen Request und Response Tab wechseln.
  • Shift+B: Request-Detail schließen, zurück zur Request-Liste.
  • Shift+P: Rechtes Panel auf Policies fokussieren.
  • Shift+S: Rechtes Panel auf Sites fokussieren.
  • Shift+V: Rechtes Panel ein-/ausblenden.
  • Shift+M: Ausgewählten Request als Editor-Policy (METHOD + URL) hinzufügen.
  • Shift+R: Ausgewählten Request editieren und erneut senden.
  • Shift+T: Im Request-Detail zwischen Request und Response Tab wechseln.
  • Shift+A: Ausgewählte Site zur Log-Whitelist hinzufügen (Sites-Tab).
  • Shift+D: Ausgewählte Site aus der Log-Whitelist entfernen (Sites-Tab).
  • Shift+E: Ausgewählte Policy aktivieren (Policies-Tab).
  • Shift+D: Ausgewählte Policy deaktivieren (Policies-Tab).
  • Shift+I: Ausgewählte Policy bearbeiten (Policies-Tab).
  • Shift+X: Ausgewählte Policy entfernen (Policies-Tab).

TLS Interception (MITM)

Generate local CA materials:

./scripts/generate_mitm_ca.sh

Import certs/ca/mitm-ca.crt into your browser trust store for local testing.

Tests

poetry run python -m unittest discover -s tests -p "test_*.py" -v

Release / Publish

1. Bump Version

poetry version patch
# or: poetry version minor / poetry version major

2. Validate + Build

poetry check
poetry build

3. Configure PyPI Token

Either use an environment variable:

export POETRY_PYPI_TOKEN_PYPI="pypi-..."

or persistent Poetry config:

poetry config pypi-token.pypi "pypi-..."

4. Publish to PyPI

poetry publish --no-interaction

Alternative:

./scripts/publish_pypi.sh

5. Install from PyPI (verification)

pip install proxyscope

License

MIT. See LICENSE.

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

proxyscope-0.1.0.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

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

proxyscope-0.1.0-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proxyscope-0.1.0.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.9 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for proxyscope-0.1.0.tar.gz
Algorithm Hash digest
SHA256 53163ae69a9fb4925c08149c92c520f680e576696757cc004c5fc4d867a819e6
MD5 c8c45f46ba94a1b8f8965f54a703bfb3
BLAKE2b-256 b547eef4179f735a8465aaabde5b538cc85fe869fc846abf28e2187a55d28f3d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proxyscope-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 53.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.9 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for proxyscope-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f334031fb7721f7396a151baa3a1f43d3fca0a9173c31cdf53c86068357b47c5
MD5 11629d5b929a9fd19d9a787dfe416d2f
BLAKE2b-256 2acd729bf633a585b96598aee8889dda7f81e871b43477beea55f03bcca289b5

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