← Package directory
Available on winget

Install Px

An HTTP proxy server to automatically authenticate through an NTLM proxy

Install with winget
winget install --id genotrance.px
Upgrade
winget upgrade --id genotrance.px
Uninstall
winget uninstall --id genotrance.px

About Px

Px is a HTTP(s) proxy server that allows applications to authenticate through an NTLM or Kerberos proxy server, typically used in corporate deployments, without having to deal with the actual handshake. Px leverages Windows SSPI or single sign-on and automatically authenticates using the currently logged in Windows user account. It is also possible to run Px on Windows, Linux and MacOS without single sign-on by configuring the domain, username and password to authenticate with.

What's new in 0.11.0

New features - Added Kerberos ticket management (--kerberos) for Linux and macOS — Px acquires and renews Kerberos tickets automatically using kinit with the configured --username and password from PX_PASSWORD or keyring. No keytab file is created. Addresses #252 and #258. Bug fixes - Fixed auth failure recovery when a Kerberos ticket becomes available after Px startup — clearing MCURL.failed allows previously-blocked proxies to be retried (#258). - Fixed --verbose output not appearing in non-TTY environments (e.g. Docker with workers=1) due to Python block-buffering stdout. Docker - Added BUILDER build arg and local builder stage to Dockerfile to support both CI (pre-built wheel) and local (source tree) builds. - The full Docker image now requires --cap-add IPC_LOCK — gnome-keyring 48+ (Alpine 3.23+) links libcap-ng which aborts without the IPC_LOCK capability. Improvements - Replaced synchronous http.server + threading with asyncio + h11. CONNECT tunnels now use zero-thread bidirectional relays: TunnelRelay (FD watchers via add_reader/add_writer) on Linux, and _async_tunnel_relay (asyncio StreamReader/StreamWriter for the client side, IOCP-backed sock_recv/sock_sendall for the upstream libcurl socket) on Windows. Thread count stays bounded at the thread pool size regardless of active tunnel count. - Changed --workers default from 2 to 1 — the async event loop handles concurrency without multiple processes. - Reduced per-request overhead: double-checked locking in reload_proxy(), cached get_curl_features() and noproxy_hosts, shallow copy for proxy server lists, tuples for...

Read release notes

Version history

Version Updated Notes
0.11.0 Unknown New features - Added Kerberos ticket management (--kerberos) for Linux and macOS — Px acquires and renews Kerberos tickets automatically using kinit with the configured --username and password from PX_PASSWORD or keyring...
0.10.3 Unknown Bug fixes - Fixed #248 — check install cmd if modified. - Fixed #255 — handle Python v3.13 runtime context on startup. - Fixed set_client_auth() mutating the global AUTH_SUPPORTED list when called with ANY or ANYSAFE — n...
0.10.2 Unknown - Fixed #246 - resolved crash caused by PAC hostname resolution - Added gui script pxw.exe to run Px in the background on Windows, addressing #203, #213 and #235 by providing correct path for px.ini and logs. - Enhanced...