Skip to content

Repository files navigation

Titanium Web Proxy

A lightweight, high-performance HTTP(S) proxy for Windows, Linux, and macOS — run a reverse / edge proxy from the CLI, debug traffic in the desktop Inspector, or embed the same engine in .NET.

Website · Download · Docs · Releases

BuildNuGetNuGet downloads

What you can do

  • Intercept, inspect, modify, redirect, or block HTTP and HTTPS traffic
  • Explicit, transparent, and SOCKS4/5 proxy endpoints
  • Decrypt HTTPS with man-in-the-middle (MITM) when you install and trust a local root certificate
  • Stream request and response bodies across HTTP/1.x, HTTP/2, and HTTP/3 (QUIC)
  • Upstream HTTP, HTTPS, and SOCKS proxies with automatic system proxy detection
  • Proxy authentication, mutual TLS, Kerberos, and NTLM
  • Connection, certificate, and buffer pooling
  • Built-in logging (zero cost when disabled) and optional request/connection timing — see Logging and diagnostics

Protocol coverage details: protocol support matrix. HTTP/3 packaging: HTTP/3 wiki.

Performance

Practical reverse proxy throughput on Linux

RPS is requests per second — how many HTTP requests the reverse proxy completes under load. Same-harness comparisons vs YARP (gated), nginx, HAProxy, and Envoy on matched GitHub Actions runners — see Performance.

Choose an edition

ProductBest for
Titanium.Cli (titanium / twp)
Download (Windows, Linux, macOS)
Standalone reverse / edge proxy for any backend stack, managed by the command line interface (CLI)
Titanium Inspector
Download
Desktop MITM debugger — session grid, inspectors, AutoResponder, breakpoints, HTTP Archive (HAR) export
Titanium.Plus
titanium update --plus (after installing CLI)
Optional ops: control plane, dashboard, observability
Titanium.Web.Proxy
NuGet
Embed a proxy (MITM and/or reverse) in a .NET app

Requires .NET 10 or later for the library. CLI and Inspector downloads are self-contained (no SDK needed to run them).

Installation

Titanium Inspector

Prefer Download if you do not already use a Windows package manager. If you do, pick one:

winget (built into Windows 10/11; stable only):

winget install justcoding121.TitaniumInspector

Chocolatey (if you already have it):

choco install titanium-inspector

For beta, use choco install titanium-inspector --pre. Start interception from the Capture menu, install the root certificate authority (CA), then toggle system proxy.

Titanium Inspector screenshot

CLI (titanium / twp)

On Windows, package managers are optional — use one you already have, not both. If you have neither, download a zip.

winget (built into Windows 10/11; stable only):

winget install justcoding121.TitaniumCli

Chocolatey (if you already have it):

choco install titanium-cli

For beta, use choco install titanium-cli --pre, or download a self-contained zip from Download / GitHub Releases (stable is v7.0.5; use the newest beta tag when published). Extract and run:

titanium run -c twp.yaml
titanium test -c twp.yaml
titanium version --check
titanium update

titanium run is foreground (stops when you Ctrl+C). To start at boot and keep running through OS restarts: titanium service install -c twp.yaml. Details: CLI — service.

Each CLI zip also includes a twp alias binary.

Optional Plus:titanium update --plus, then set plus.enabled: true with a control-plane shared secret. Turn features off with plus.enabled: false; remove the DLL with titanium update --remove-plus. Details: Plus.

Library (.NET)

dotnet add package Titanium.Web.Proxy
# Prerelease / beta:
dotnet add package Titanium.Web.Proxy --prerelease

Quick start (library)

Explicit HTTP(S) proxy on 127.0.0.1:8000 that logs each requested URL:

usingSystem;usingSystem.Net;usingSystem.Threading.Tasks;usingMicrosoft.Extensions.Logging;usingTitanium.Web.Proxy;usingTitanium.Web.Proxy.EventArguments;usingTitanium.Web.Proxy.Models;usingvarproxyServer=newProxyServer();proxyServer.Logging.MinimumLevel=LogLevel.Information;proxyServer.BeforeRequest+=OnRequest;varendPoint=newExplicitProxyEndPoint(IPAddress.Loopback,8000,decryptSsl:true);proxyServer.AddEndPoint(endPoint);// Create and trust the root certificate used to decrypt HTTPS traffic.proxyServer.CertificateManager.EnsureRootCertificate(userTrustRootCertificate:true,machineTrustRootCertificate:false);proxyServer.Start();proxyServer.Logger.LogInformation("Proxy listening on 127.0.0.1:8000. Press Enter to stop.");awaitConsole.In.ReadLineAsync();proxyServer.Stop();TaskOnRequest(objectsender,SessionEventArgse){proxyServer.Logger.LogInformation("{Url}",e.HttpClient.Request.Url);returnTask.CompletedTask;}

Basic console proxy screenshot

Point your client at 127.0.0.1:8000 as its HTTP and HTTPS proxy. Trusting a generated root certificate changes the current user's certificate store — only do this on a machine you control.

Examples and documentation

Support and contributing

Code quality

Quality GateCoverageLines of CodeBugsVulnerabilitiesCode SmellsSecurity RatingReliability RatingMaintainability RatingDuplicated LinesTechnical Debt

Maintainers

Actively maintained by justcoding121. Past contributor: honfika.

License

Titanium.Web.Proxy and Titanium.Cli are MIT. Titanium Inspector and Titanium.Plus are PolyForm Noncommercial 1.0.0.

About

A cross-platform high performing HTTP(S) proxy server in C#.

Topics

Resources

Contributing

Security policy

Stars

2.0k stars

Watchers

6 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages