Developerlar va QA uchun bepul, ochiq kodli HTTP(S) debugger. U brauzer, iPhone, Android, Docker va boshqa ilovalarning trafigini ushlaydi va ko'rsatadi, mock va rewrite qiladi. Proxyman'ga muqobil.
Maqsad: 5 ta yoki 10 ta tool o'rniga bitta dastur. Wirepane trafikni ushlash va debug qilish (Proxyman, Charles), API client, collections, testlar, mock va hujjat (Postman, Bruno) hamda file orqali ulashishni bitta joyda qiladi. U developerlar, QA va boshlovchilar uchun bepul bo'ladi va odamlarni pullik tool'larga qaramlikdan xalos qiladi. Bruno kodi bizning kodimiz sifatida olinadi va kerakli joylarda o'zgartiriladi; Bruno bilan 1:1 bo'lishi shart emas. Asosi — HTTP Toolkit ochiq kodi. Hammasi bitta repoda: UI, server va desktop bitta app bo'lib ishga tushadi. Oxirgi natija — macOS, Windows va Linux uchun bitta o'rnatiladigan dastur (macOS'da Wirepane.app, bundle ID: com.wirepane.app).
Wirepane HTTP Toolkit asosida yasalgan, lekin rasmiy HTTP Toolkit emas va u bilan bog'liq emas.
Installer GitHub Releases sahifasida (birinchi release: v1.1.0, v1.2.0, oxirgisi: v1.3.0). Eng oxirgi versiyani oching va faylni yuklab oling:
| Tizim | Fayl |
|---|---|
| macOS 13.5 yoki yangiroq, Apple Silicon (M1 va yangiroq) | Wirepane-<versiya>-mac-arm64.pkg |
| macOS 13.5 yoki yangiroq, Intel | Wirepane-1.1.0-mac-x64.pkg (v1.1.0da; 1.2.0'da Intel build yo'q) |
| Windows 10 va 11, x64 | tez orada |
| Linux, x64 | tez orada |
Qaysi Mac ekanini Apple menyusi → About This Mac ko'rsatadi: "Chip: Apple M…" — Apple Silicon, "Processor: … Intel …" — Intel. Intel build Apple Silicon'da ham Rosetta orqali ishlaydi, lekin bir necha baravar sekin ochiladi, shuning uchun u yerda arm64 faylini oling.
Installer hali imzolanmagan: Apple Developer akkaunti ham, kod imzolash sertifikati ham yo'q. Shuning uchun birinchi ochishda macOS ogohlantiradi: .pkgni ikki marta bosing, macOS uni tekshira olmaganini aytsa, .pkg ustida o'ng tugma → Open → Open, yoki System Settings → Privacy & Security → Open Anyway. Keyin qadamlardan o'ting: app /Applicationsga o'rnatiladi ("faqat men uchun" tanlansa, ~/Applicationsga). App ham shunday to'xtatilsa, unda ham o'ng tugma → Open.
Har bir .pkgning SHA-256'i release sahifasida yozilgan. HTTPS trafikni ko'rish uchun qurilma Wirepane CA sertifikatiga ishonishi kerak: buni app'dagi Intercept sahifasi har bir qurilma uchun ko'rsatadi.
| Papka | Upstream | Vazifasi |
|---|---|---|
httptoolkit-ui/ |
httptoolkit/httptoolkit-ui | Interfeys (React, MobX, webpack) |
httptoolkit-server/ |
httptoolkit/httptoolkit-server | Proxy'ni boshqarish, interceptor'lar |
httptoolkit-desktop/ |
httptoolkit/httptoolkit-desktop | Electron oyna |
| npm dependency | httptoolkit/mockttp | Proxy engine (HTTP/HTTPS MITM) |
bruno/ |
usebruno/bruno (MIT) | Collections va file orqali ulashish: package'lari (bruno-converters, bruno-lang, bruno-js, bruno-cli) ishlatiladi. App sifatida yig'ilmaydi |
wirepane-tunnel/ |
O'zimizniki, mitmproxy_rs (MIT) | VPN rejimi: telefon trafigini WireGuard orqali qabul qiladigan kichik Rust helper, root kerak emas (tavsif) |
Asosiy loyiha va issue'lar: httptoolkit/httptoolkit.
Upstream kod git subtree --squash orqali qo'shilgan. Ya'ni kodning hammasi shu repoda, upstream commit tarixi esa olinmagan.
Bruno — open-core loyiha. GitHub'dagi kod to'liq MIT litsenziyasida, shuning uchun uni AGPL ilovamizda ishlatish mumkin; faqat ularning license.md copyright'i saqlanadi. Pullik Pro va Ultimate feature'lari (Git UI, secret manager, test hisobotlari, SSO) ochiq repo'da yo'q. Kerak bo'lganlarini o'zimiz yozamiz.
Kerak: macOS, Node.js 24, git. VPN rejimi (Telefon trafigi bo'limi) uchun yana Rust: rustup.rs. Rust bo'lmasa ham app ishlaydi, faqat VPN rejimi o'chiq turadi.
git clone https://github.com/azimxxm/wirepane-http-debugger.git ~/Documents/wirepane-http-debugger
cd ~/Documents/wirepane-http-debugger
./setup.sh # bir marta: Bruno package'larini build qiladi (~25 s, ~290 MB), keyin uchala papkada npm ci, Rust bo'lsa VPN helper'ni ham yig'adi
./start.sh # app ochiladi. Cmd+Q bosilsa, hammasi to'xtaydiFinder'dan ochish: Start Wirepane.command faylini ikki marta bosing. Log'lar logs/ papkada saqlanadi.
Boshqa Mac'da davom ettirish: git pull → ./setup.sh → ./start.sh. setup.sh faqat dependency'lar o'zgarganda kerak.
Har bir installer o'z tizimida yig'iladi (Intel Mac build'i Rosetta 2 o'rnatilgan Apple Silicon Mac'da ham):
./scripts/build-release.sh mac # Apple Silicon Mac'da: .pkg va .zip (./scripts/build-pkg.sh ham shuni qiladi)
./scripts/build-release.sh mac-x64 # Intel Mac'lar uchun .pkg va .zip: Intel Mac'da yoki Rosetta 2 o'rnatilgan Apple Silicon Mac'da
./scripts/build-release.sh win # Windows x64'da, Git Bash ichida: setup .exe va .zip
./scripts/build-release.sh linux # Linux x64'da: .AppImage, .deb va .rpm (.rpm uchun rpmbuild kerak)Har bir tizim uchun bir qatorli alohida fayl ham bor: ./scripts/build-mac-arm64.sh, ./scripts/build-mac-x64.sh, ./scripts/build-win.sh, ./scripts/build-linux.sh. Ular shu skriptni chaqiradi, shuning uchun kod bitta joyda qoladi.
Skript Bruno, server, UI va desktop'ni yig'adi va oxirida fayllarni ko'rsatadi: httptoolkit-desktop/dist/Wirepane-<versiya>-.... Versiya — repo ildizidagi VERSION fayli (hozir 1.2.0). Server ham, UI ham shu repo'dagi koddan yig'iladi. Internetdan faqat Node.js (har tizim uchun bir marta, build/cacheda saqlanadi) va npm package'lari yuklanadi. Sertifikat yoki akkaunt kerak emas. Mac'da yig'ish bir necha daqiqa oladi.
GitHub Actions: .github/workflows/release.yml uchala tizimda (macOS'da Apple Silicon va Intel uchun alohida) yig'adi va hamma fayllarni draft GitHub release'ga (v<versiya>) qo'yadi. Ishga tushirish: Actions → Release → Run workflow (versiya bo'sh qolsa, VERSIONdan olinadi) yoki v1.2.0 kabi tag push qilish. Draft tekshirilgach, qo'lda Publish qilinadi.
| Nima | Qayerda | Qachon ko'rinadi |
|---|---|---|
| Ekranlar, dizayn | httptoolkit-ui/src |
darhol (hot reload) |
| Interceptor'lar, API | httptoolkit-server/src |
server o'zi qayta ishga tushadi |
| Oyna, menu, Electron | httptoolkit-desktop/src |
./start.sh qayta ishga tushirilgandan keyin |
Eng oson yo'l: app'da Intercept → iPhone or iPad yoki Android kartasini bosing. Ekranda Mac'ning manzili, port, QR code va qadamlar chiqadi. Telefon ulangach, "iPhone connected" holati ham ko'rinadi. Port app qayta yuklanganda ham o'zgarmaydi.
iPhone va iPad'ni ulashning ikki yo'li bor. Yo'lni sahifaning tepasida tanlaysiz. Ikkalasida ham telefon Mac bilan bir Wi-Fi tarmog'ida bo'lishi kerak.
| Yo'l | Nimani ushlaydi | Nima kerak |
|---|---|---|
| Capture all apps (VPN), tavsiya | Telefondagi hamma ilova: Flutter ilovalari, o'yinlar va o'z ulanishi bor ilovalar ham | Bepul WireGuard ilovasi |
| Wi-Fi proxy | Faqat iPhone'ning Wi-Fi proxy sozlamasiga amal qiladigan ilovalar (masalan, Safari) | Qo'shimcha ilova kerak emas |
Wirepane Mac'da WireGuard VPN server ishga tushiradi. iPhone butun trafigini shu orqali yuboradi, shuning uchun Wi-Fi proxy'ni chetlab o'tadigan ilovalar ham ko'rinadi. Mac'da root yoki parol kerak emas.
- iPhone'ga App Store'dan bepul WireGuard ilovasini o'rnating.
- Wirepane'da Intercept → iPhone or iPad → Capture all apps (VPN) → Start VPN capture bosing. Wirepane iPhone uchun QR code ko'rsatadi.
- iPhone'da WireGuard → + → Create from QR code. QR'ni WireGuard'ning o'zida skanerlang va tunnel'ga nom bering. iOS VPN sozlamasini qo'shishga ruxsat so'rasa, Allow bosing. Keyin tunnel'ni yoqing.
- HTTPS uchun sertifikatni o'rnating: pastdagi "Sertifikat" qadamlari. Safari'dagi manzil tunnel yoqilgandan keyin ochiladi.
- Wirepane'da "iPhone connected over VPN" chiqadi. View requests tugmasi so'rovlarni View'da ochadi.
Ish tugagach, WireGuard'da tunnel'ni Off qiling. Aks holda Wirepane ishlamayotganda telefonda internet bo'lmaydi. Sertifikat o'rnatilgan holda qolishi mumkin.
Bilib qo'ying:
- Sertifikat kerak. HTTPS ichini ko'rish uchun Wirepane CA baribir o'rnatilishi kerak. Sertifikat Wi-Fi proxy yo'lidagi bilan bir xil: bir marta o'rnatilsa, ikkala yo'lda ishlaydi.
- Pinning. Sertifikatni pin qiladigan ilovalar (masalan, ba'zi ilovalarning o'z API'si) yopiq qoladi: View'da faqat host ko'rinadi, ichi emas. Apple'ning push, iCloud va joylashuv xizmatlari ham pin qiladi: Wirepane ularni tegmasdan o'tkazadi, shuning uchun telefon ishlashda davom etadi, lekin ularning ichi ko'rinmaydi.
- QR bir marta skanerlanadi. Keyingi safar Wirepane'da Start VPN capture bosib, WireGuard'da tunnel'ni yoqish yetadi. Mac'ning manzili o'zgargan bo'lsa (boshqa Wi-Fi), Show a new QR code bilan yangisini oling.
- QR code maxfiy. Unda shu qurilmaning private key'i bor, uni boshqalarga ko'rsatmang. Ishlatilmaydigan qurilmani VPN sahifasidagi Devices set up for the VPN kartasida Remove qiling: u VPN'ini yo'qotadi, qayta ulash uchun yangi QR code kerak.
- Local Network. macOS 15 va yangiroq'da birinchi marta Wirepane lokal tarmoqqa kirish ruxsatini so'raydi. Allow bosing: ruxsatsiz iPhone ulana olmasligi mumkin. Keyin ham yoqish mumkin: System Settings → Privacy & Security → Local Network.
- Ulanmasa. Telefon va Mac bir Wi-Fi'da ekanini, Local Network ruxsatini va firewall UDP portni to'smayotganini tekshiring. Port iPhone sahifasida ko'rinadi, odatda UDP
51873.
Proxy Mac'da ishlaydi (port status bar'da ham ko'rinadi) va Wi-Fi tarmog'idan ochiq. Mac'ning manzili iPhone sahifasidagi Server maydonida, port Port maydonida turadi.
- Wi-Fi → (i) → Configure Proxy → Manual. Server va Port: iPhone sahifasida ko'rsatilgan qiymatlar. Authentication: off.
- HTTPS uchun sertifikatni o'rnating: pastdagi "Sertifikat" qadamlari.
Ish tugagach, telefondagi proxy'ni Off qiling.
Ikkala yo'l uchun bir xil:
- Safari'da
http://wirepane.cert/certificateni oching va profilni yuklab oling. Bu manzil faqat proxy sozlangandan yoki VPN tunnel yoqilgandan keyin ochiladi, chunki unga Wirepane'ning o'zi javob beradi. - Settings → General → VPN & Device Management bo'limida profilni o'rnating.
- Settings → General → About → Certificate Trust Settings bo'limida Wirepane CAni yoqing.
- Tekshirish: Safari'da
https://wirepane.cert"You're being intercepted by Wirepane" deb chiqishi kerak.
App'da Android Device via QR code (root shart emas) yoki Android Device via ADBni tanlang. Wirepane'ning WireGuard VPN rejimi hozircha faqat iPhone va iPad uchun.
./sync-upstream.sh # 3 ta upstream repo'dan yangi kodni oladi
./setup.shO'zgartirgan kodingiz saqlanib qoladi. Conflict chiqsa, uni oddiy git mergedagidek hal qilasiz.
-
Hamma kod bitta repoda va local source'dan bitta app bo'lib ishlaydi (dev rejim).
-
O'z brendimiz — Wirepane:
-
Nom, GitHub repo (
azimxxm/wirepane-http-debugger), bundle ID (com.wirepane.app),productName, oyna va menu sarlavhalari, UI, terminal va CLI/MCP matnlari. -
Logo va ikonka. Manbasi
brand/icon.svg../brand/build-icons.shundan barcha fayllarni (.icns,.ico, PNG, UI logosi, loading wordmark) qayta yasaydi. -
UI redesign (reja, tahlil). Rejada 3 bosqich bor:
- Logoga mos ranglar va shriftlar.
- Status bar, sahifa sarlavhalari, Intercept'ni qadamli boshlash ekraniga aylantirish va bo'sh holatlar.
- Menu bar, ⌘K va ⌘,.
-
wirepane.com,wirepane.devvawirepane.appdomenlarini olish (2026-10-10 holatida bo'sh edi). Trademark tekshiruvi (USPTO, WIPO). -
"HTTP Toolkit" nomi original loyihaga tegishli. AGPL kodni ishlatishga ruxsat beradi, lekin nomni ishlatishga emas.
LICENSEva "based on HTTP Toolkit" degan attribution saqlanib qoladi. -
Faqat foydalanuvchi ko'radigan joylar o'zgaradi. Quyidagilar ataylab "HTTP Toolkit"ligicha qoladi:
- Rules faylidagi
HTTP Toolkit Rulessarlavhasi. - Android'dagi HTTP Toolkit ilovasi (Play Store'dagi asl nomi).
- httptoolkit.com docs havolalari.
- Ichki nomlar: package'lar,
httptoolkitconfig papkasi,HTK_*env'lar.
Shunda
sync-upstream.shham kamroq conflict beradi. "HTTP Toolkit Pro" matnlari esa Pro feature'lar ochilganda olib tashlanadi. - Rules faylidagi
-
-
O'zimizning
.appimizni yig'ish (2026-10-12)../scripts/build-pkg.shimzosiz.pkgyasaydi:- Server o'z kodimizdan yig'iladi (
scripts/build-server.sh), GitHub'dagi rasmiy release yuklanmaydi. Bruno package'lari server bundle'i ichida. - Server o'zini yangilamaydi:
update-requestede'tiborsiz qoldiriladi, oclif'ning update plugin'i olib tashlandi. Server'ni ishga tushiruvchi skript faqat app ichidagi server'ni ishga tushiradi. Rasmiy app'ning~/.local/share/httptoolkit-serverpapkasiga tegilmaydi. - UI app ichida va
wirepane://appmanzilidan ochiladi. Release server faqat shu origin'ga ruxsat beradi. Sozlamalar va Send tab'lari app qayta ochilganda ham saqlanadi. - App ad-hoc imzolanadi,
.pkgimzosiz, notarize yo'q. Build sertifikatsiz Mac'da ishlaydi.
- Birinchi release v1.1.0 (2026-10-13): macOS arm64
.pkg, VPN rejimi va Phone network tool'lari bilan. O'sha kuni Intel Mac'lar uchunx64.pkgham qo'shildi. - v1.2.0 (2026-10-13): faqat macOS arm64
.pkg. Devices panelida bitta qurilmani tozalash va qurilmani tepaga pin qilish; endi macOS 13.5 yoki yangiroq kerak. - v1.3.0 (2026-10-14): Send panelida Postman darajasidagi 7 ta tab (Params, Authorization [10 ta auth rejimi], Headers, Body, Scripts, Settings, Docs), headers autocomplete va klaviatura navigatsiyasi, Postman table headers, Bruno
.bruround-trip saqlash, server redirect va custom HTTP metodlar. - Windows (setup
.exe,.zip) va Linux (.AppImage,.deb,.rpm): tez orada, egasi aytganda chiqariladi. Hammasi imzosiz;./scripts/build-release.sh <mac|win|linux>va GitHub Actions'dagirelease.ymltayyor. Birinchi CI run'da mac build o'tdi, Windows va Linux build'lari tugashidan oldin to'xtatildi. - Akkaunt kelgach: Developer ID imzosi, hardened runtime va notarize. Ular
ENABLE_SIGNING=truebilan yoqiladigan yo'lga qo'shiladi, imzosiz yo'l zaxira bo'lib qoladi.
- Server o'z kodimizdan yig'iladi (
-
Barcha Pro feature'lar hamma uchun bepul. Akkaunt, login va to'lov yo'q. Map Local, Map Remote, mock, rewrite, delay, block, Settings (proxy, connection, API, themes), saqlanadigan rules, HAR import/export va MCP/CLI cheklovsiz ishlaydi.
-
Proxyman'dagi feature'lar:
- Telefon ulash ekrani: iPhone va Android uchun IP, port, sertifikat QR'i va jonli holat, port qayta yuklashda o'zgarmaydi.
- VPN rejimi, 1-bosqich (WireGuard): iPhone'dagi hamma ilovaning trafigi, jumladan Flutter ilovalari ham, proxy sozlamasiz ko'rinadi. Telefonda bepul WireGuard ilovasi kerak (reja, tadqiqot). Qoldi: packaged app'da macOS Local Network ruxsatini tekshirish; Windows va Linux'da sinash.
- VPN rejimi, 2-bosqich (IKEv2): qo'shimcha ilovasiz. Safari'dagi linkdan bitta profil (Wirepane CA + VPN) o'rnatiladi. Android uchun VPN rejimi ham shundan keyin.
- Qo'shish kerak:
- P1: Access Control (LAN'dan kim ulana olishi), macOS system proxy toggle, iOS Simulator auto-setup.
- P2: Highlight/Comment, Diff.
- VPN rejimi, 1-bosqich (2026-10-12): WireGuard orqali telefondagi hamma ilova, Flutter ilovalari ham (tadqiqot).
- VPN rejimi ustidagi Rust tool'lari (reja): ilovasiz IKEv2, Network Conditions, DNS ko'rinishi, DNS Spoofing va bloklash, JA4 fingerprint, UDP ko'rinishi, HTTP/3 ochish, pcap eksport, Android VPN.
- P3: Scripting, Reverse Proxy, native Swift + SwiftNIO versiya.
-
Send: Form, Multipart (fayl, rasm, media), Binary, GraphQL (schema, autocomplete, docs) va WebSocket client (reja).
-
Collections va file orqali ulashish, Bruno package'lari asosida (reja): API'ni hujjati bilan bitta faylga export qilish (Postman v2.1 JSON yoki Bruno). Secret'lar faylga tushmaydi. Oluvchi faylni import qilsa, hammasi tayyor ochiladi.
-
Postman'dan olinadigan feature'lar (tadqiqot):
- P1:
- Ushlangan trafikni collection sifatida saqlash.
pm.testbilan mos assertion'lar, jonli trafik uchun ham.- Postman v2.1 import va export.
- Variables va environments, secret'larni lokal saqlash bilan.
- Export'larda secret'larni yashirish.
- Auth helper'lar.
- P2:
- Aqlliroq mock'lar.
- OpenAPI kontrakt tekshiruvi.
- Collection runner.
- CLI va MCP orqali yozish operatsiyalari.
.http, Hurl va Playwright export.- Umumiy cookie jar.
- P1:
- License: AGPL-3.0 (
LICENSE). App'ni boshqalarga tarqatsangiz, uning source kodi ham ochiq bo'lishi shart. Bu repo public, shuning uchun bu shart bajarilgan. - Xavfsizlik: dev rejimda server token'siz ishlaydi, proxy esa butun Wi-Fi tarmog'iga ochiq. Ishonchsiz tarmoqda ishlatmang.
- Wirepane'ning o'z CA'si bor: Wirepane CA (
~/Library/Preferences/httptoolkit/wirepane-ca.pem). Rasmiy HTTP Toolkit'ningca.pemfayliga tegilmaydi. Oldin "HTTP Toolkit CA" o'rnatilgan telefonlarga yangi sertifikatni bir marta o'rnatish kerak. - Apple Silicon'da hammasi native
arm64da ishlaydi, Rosetta shart emas. - Dev rejimdagi app (
./start.sh) va o'rnatilgan app bitta sozlamalar papkasini ishlatadi (~/Library/Application Support/Wirepane). Shuning uchun ular bir vaqtda ochilmaydi: ikkinchisi darrov yopiladi. - Server Node
v24.19.0ni talab qiladi. Boshqa 24.x versiyalarda ham ishlaydi, faqatEBADENGINEogohlantirishi chiqadi.