44[ ![ Downloads] ( https://img.shields.io/github/downloads/samfrm/reflex/total.svg )] ( https://github.com/samfrm/reflex/releases )
55[ ![ DOI] ( https://zenodo.org/badge/DOI/10.5281/zenodo.17079395.svg )] ( https://doi.org/10.5281/zenodo.17079395 )
66
7+ <p align =" center " >
8+ <picture >
9+ <source media="(prefers-color-scheme: dark)" srcset="assets/banner/reflex-banner-dark.png">
10+ <img alt="Reflex — Local HTTPS referrer emulator" src="assets/banner/reflex-banner-light.png" width="100%">
11+ </picture >
12+ </p >
13+
714Emulate real inbound referrers in modern browsers — safely and repeatably.
815
916✨ What it does
17+
1018- 🧭 Maps a referrer host to your machine (` /etc/hosts ` )
1119- 🔒 Serves a locally trusted HTTPS site (certs via mkcert)
1220- 🚀 Redirects to your target so the browser sends a real ` Referer `
@@ -32,7 +40,7 @@ Perfect for attribution tests, analytics pipelines, and E2E growth flows.
3240
3341### 🚀 Quick Start
3442
35- 1 ) One‑time — install mkcert local CA (all platforms)
43+ 1 . One‑time — install mkcert local CA (all platforms)
3644
3745• macOS: ` brew install mkcert nss && sudo mkcert -install `
3846
@@ -48,7 +56,7 @@ sudo cp -a "$(mkcert -CAROOT)/." /etc/mkcert/
4856sudo chmod 755 /etc/mkcert && sudo chmod 644 /etc/mkcert/*
4957```
5058
51- 2 ) Run a referrer → target flow
59+ 2 . Run a referrer → target flow
5260
5361``` bash
5462sudo reflex run \
@@ -85,24 +93,25 @@ reflex --version
8593- 🦫 Go 1.21+
8694- 🔑 ` mkcert ` in PATH
8795- 🏗️ Build: ` go build ./cmd/reflex `
88- - 📖 Help: ` go run ./cmd/reflex --help `
96+ - 📖 Help: ` go run ./cmd/reflex --help `
8997
9098### 🕹️ Commands
9199
92- - ▶️ ` reflex run ` Start HTTPS server, spoof host, open browser
100+ - ▶️ ` reflex run ` Start HTTPS server, spoof host, open browser
93101- 🧹 ` reflex cleanup ` Remove hosts entry and generated certs (add ` --all ` to wipe everything)
94- - 🔍 ` reflex status ` Show current state for a referrer
102+ - 🔍 ` reflex status ` Show current state for a referrer
95103
96104### 🎛️ Flags you’ll actually use
97105
98- - 🔗 ` --referrer ` Referrer URL or host (required)
99- - 🎯 ` --target ` Target URL to navigate to (required)
100- - 🔁 ` --method ` Redirect: meta (default), 302, js
101- - 🛡️ ` --referrer-policy ` ` origin-when-cross-origin ` (default) or ` unsafe-url ` for full URL
102- - 🕶️ ` --private ` Open browser in incognito/private mode (default true)
103- - 🚫 ` --no-browser ` Don’t auto‑open a browser
106+ - 🔗 ` --referrer ` Referrer URL or host (required)
107+ - 🎯 ` --target ` Target URL to navigate to (required)
108+ - 🔁 ` --method ` Redirect: meta (default), 302, js
109+ - 🛡️ ` --referrer-policy ` ` origin-when-cross-origin ` (default) or ` unsafe-url ` for full URL
110+ - 🕶️ ` --private ` Open browser in incognito/private mode (default true)
111+ - 🚫 ` --no-browser ` Don’t auto‑open a browser
104112
105113More:
114+
106115- ⏱️ ` --delay ` (meta/js, ms), 🔌 ` --port ` (default 443, falls back to 8443), 🗂️ ` --keep-certs ` , 🧪 ` --no-hosts ` , 🧹 ` --force-unlock `
107116
108117### 🩹 Troubleshooting (fast answers)
@@ -126,12 +135,13 @@ More:
126135### 🧰 Dev notes
127136
128137Code map:
129- - 🧩 ` cmd/reflex ` CLI
130- - 🗂️ ` internal/hosts ` Hosts manager
131- - 🔑 ` internal/certs ` mkcert bridge (Linux uses ` /etc/mkcert ` )
138+
139+ - 🧩 ` cmd/reflex ` CLI
140+ - 🗂️ ` internal/hosts ` Hosts manager
141+ - 🔑 ` internal/certs ` mkcert bridge (Linux uses ` /etc/mkcert ` )
132142- 🔒 ` internal/server ` HTTPS redirector
133143- 🌐 ` internal/browser ` Browser opener (drops sudo → user, incognito)
134- - 🛠️ ` internal/util ` Port/lock/helpers
144+ - 🛠️ ` internal/util ` Port/lock/helpers
135145
136146🧪 Tests: ` go test ./... ` (unit tests generate self‑signed certs; no mkcert required)
137147
0 commit comments