An interactive web proxy for debugging and testing HTTP servers. Automatically generates certificates to intercept and decrypt SSL messages.
- SSL interception
- Modify and replay messages
- Interactive HTTP Fuzzing
- Graphical Lisp REPL
- Persist proxy sessions in SQLite
- Easy extension with hooks and commands
- SBCL + Ultralisp
- FiloSottile/mkcert
- SQLite
- Electron, GTK4, or Tcl/Tk
This is the best looking frontend and it has the most features.
make gtkUsable, but a work in progress.
make clogNOTE: Currently unmaintained, I like GTK more. It should still work for basic stuff.
make tkThe proxy server uses the following hooks which you can attach functions to:
| Hook | Args |
|---|---|
| :on-request | request |
| :on-response | request response |
| :on-message-pair | message-pair |
| :init | (none) |
| :on-command | command |
| :on-load-project | (none) |
The mx-proxy namespace exports a macro called define-command which you can
use to add your own interactive functionality. Example:
(define-command divide-by-zero (num sure) ("iNumber" "bAre you sure?")
(when sure (with-ui-errors (/ num 0))))The configuration directory is one of the following, in descending priority:
~/.config/mx-proxy/~/.mx-proxy/$MX_PROXY_HOME
Persistent settings are stored in config.lisp as a plist dictionary.
After the program has loaded, it will also load init.lisp, you can load
any external packages you want from here.
Make sure mkcert is in your path and you have run mkcert -install and restarted your browser.


