Bidoytu
A focused desktop HTTP interception and testing workspace for authorized security work.
Bidoytu is a Python desktop application for inspecting, modifying, and replaying HTTP traffic through a local mitmproxy engine. It combines live history, request interception, Repeater workflows, and an extensible Intruder foundation in one PySide6 interface.
Highlights
- Local HTTP/HTTPS proxy with editable interception and forward/drop controls.
- Traffic history backed by SQLite with content-addressed storage for large bodies.
- Repeater requests powered by an asynchronous httpx client.
- Display-only formatting for JSON, XML/HTML, and URL-encoded bodies.
- Public CA certificate export for HTTPS interception on machines you control.
- Windows and Linux packaging through GitHub Actions.
Requirements
- Python 3.11 or newer
- Windows or Linux
Quick start
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -e .
bidoytu
Alternatively, run python -m bidoytu.
Start the proxy from the Proxy tab. The default listener is 127.0.0.1:8080. To inspect HTTPS traffic, start the proxy once, export the public CA certificate from the UI, and trust it only on a machine you own or are authorized to administer.
Architecture
| Layer | Responsibility |
|---|---|
| ui/ | PySide6 windows, tabs, editors, views, and Qt signal wiring |
| proxy/ | mitmproxy engine, flow capture, and interception control |
| net/ | Async HTTP sending for Repeater and Intruder workflows |
| storage/ | SQLite history, flow models, and large-body file storage |
| http_utils.py | Raw HTTP parsing, rebuilding, and display helpers |
| scripts/ | Headless smoke checks and focused live verification |
Qt is intentionally isolated to ui/. The proxy, networking, and storage layers communicate through framework-independent models and thread-safe signals.
Development workflow
Development work is integrated through staging:
git switch staging
git pull --ff-only origin staging
git switch -c feature/short-description
Open pull requests against staging. Keep main reserved for reviewed, release-ready changes. The release workflow runs on pushes to main, on version tags, and through manual dispatch; pushes to staging do not publish releases.
See CONTRIBUTING.md for checks and pull-request expectations.
Verification
python -m compileall -q src
python scripts/smoke_test.py
Run the relevant live scripts from scripts/ when changing proxy, interception, Repeater, compression, port, or CA behavior. They require network access and use QT_QPA_PLATFORM=offscreen.
Packaging and releases
CI builds Windows and Linux artifacts with PyInstaller. Versioned releases are created from v* tags, and tagged releases are also published to PyPI through Trusted Publishing. See packaging/build_release.md for the complete release procedure.
Responsible use
Use Bidoytu only against systems and traffic you own or are explicitly authorized to test. Installing a MITM CA or intercepting traffic without permission may be illegal. See SECURITY.md for security reporting and data-handling guidance.
License
Bidoytu is released under the MIT License.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bidoytu-1.1.2.tar.gz.
File metadata
- Download URL: bidoytu-1.1.2.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a09853b42046615939dcd603f52d6430e96db07830a63d72d5132c1855a7754e
|
|
| MD5 |
ab15ee8f1863c21eb2a18eb7391a6794
|
|
| BLAKE2b-256 |
874ffcd5fb5e71e092a3a2678c566cbeb012192bc0b8aaac0409abee05dc8d51
|
Provenance
The following attestation bundles were made for bidoytu-1.1.2.tar.gz:
Publisher:
main.yml on Bidoytu/Bidoytu
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bidoytu-1.1.2.tar.gz -
Subject digest:
a09853b42046615939dcd603f52d6430e96db07830a63d72d5132c1855a7754e - Sigstore transparency entry: 2834058671
- Sigstore integration time:
-
Permalink:
Bidoytu/Bidoytu@be4193175a2bb7300a64c097eecf2e23b62683bf -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/Bidoytu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
main.yml@be4193175a2bb7300a64c097eecf2e23b62683bf -
Trigger Event:
push
-
Statement type:
File details
Details for the file bidoytu-1.1.2-py3-none-any.whl.
File metadata
- Download URL: bidoytu-1.1.2-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6832004453839f7c12a8420ddabadf0b82665d77354ad80cb24b98a5dd2e5499
|
|
| MD5 |
85d60fc749133ca98f5b49ab2455465a
|
|
| BLAKE2b-256 |
87e11e729ea70cbf1999584589927f269123b788b92da7b6a31c4fa530c1a731
|
Provenance
The following attestation bundles were made for bidoytu-1.1.2-py3-none-any.whl:
Publisher:
main.yml on Bidoytu/Bidoytu
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bidoytu-1.1.2-py3-none-any.whl -
Subject digest:
6832004453839f7c12a8420ddabadf0b82665d77354ad80cb24b98a5dd2e5499 - Sigstore transparency entry: 2834058726
- Sigstore integration time:
-
Permalink:
Bidoytu/Bidoytu@be4193175a2bb7300a64c097eecf2e23b62683bf -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/Bidoytu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
main.yml@be4193175a2bb7300a64c097eecf2e23b62683bf -
Trigger Event:
push
-
Statement type: