
Proxy MITM HTTP/HTTPS/SOCKS5 haute performance en Rust avec interception TLS, réécriture de requêtes basée sur des règles, capture de trafic, points d'arrêt, bac à sable de scripts et rejeu de requêtes via une interface Web.
Serveur proxy HTTP/HTTPS/SOCKS5 haute performance
Language: 中文 | English
Bifrost est un serveur proxy haute performance, adapté à l'IA, écrit en Rust, inspiré de Whistle. Il offre des capacités d'interception de requêtes, de modification par règles, d'interception TLS, d'extension par scripts, de visualisation du trafic, de rejeu de requêtes et de gestion via une interface Web.
Installe le CLI ; sur macOS et Windows, l'application de bureau est également installée automatiquement :
Méthode 1 : installation via script
macOS / Linux / Git Bash :
curl -fsSL https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.sh | bash
Windows PowerShell :
irm https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.ps1 | iex
Ce script installe toujours le CLI et installe automatiquement l'application de bureau de la même version sur macOS / Windows ; les plateformes comme Linux, pour lesquelles aucun paquet d'installation de bureau n'est encore fourni, restent en CLI uniquement. Si seul le CLI est nécessaire, utilisez --no-desktop (Bash / Git Bash) ou BIFROST_INSTALL_AUTO_DESKTOP=0 (Bash / PowerShell) pour ignorer le bureau. Le script installe ensuite également et fait confiance au certificat CA, installe tous les skills IA de Bifrost, et démarre Bifrost en tant que service en arrière-plan ; une fois l'installation terminée, vous pouvez accéder directement à l'interface d'administration.
Les scripts d'installation Bash et PowerShell détectent automatiquement la connexion directe à GitHub et les miroirs intégrés, en privilégiant l'adresse de téléchargement de release la plus rapide disponible ; dans les réseaux restreints, vous pouvez également spécifier un miroir prioritaire via BIFROST_GITHUB_MIRROR. Le script Windows PowerShell ajoute le répertoire d'installation à la session courante et au Path utilisateur Windows ; le script Git Bash, sous Windows, écrit également dans le Path utilisateur Windows, de sorte qu'un nouveau PowerShell/CMD ouvert peut exécuter directement bifrost.
Installer une version spécifique
macOS / Linux / Git Bash :
curl -fsSL https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.sh | bash -s -- --version v0.0.96
Windows PowerShell :
$installer = irm https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.ps1
& ([scriptblock]::Create($installer)) -Version v0.0.96
Méthode 2 : installation via npm
npm i -g @bifrost-proxy/bifrost
Autres méthodes d'installation : docs/getting-started.md
Vérifier le proxy :
bifrost status
Accéder à l'interface d'administration après le démarrage :
http://127.0.0.1:9900/_bifrost/
Avant de configurer le proxy sur un téléphone, une tablette ou un autre ordinateur, ouvrez en priorité Settings -> Certificate -> Availability Check dans l'interface Web. Après avoir sélectionné l'IP du réseau local de l'ordinateur actuel, générez un QR code ou un lien, puis accédez-y depuis l'appareil cible pour vérifier automatiquement trois choses :
Une fois la vérification réussie, la page affiche l'adresse proxy <IP réseau local>:<port> cliquable pour copie, et vous pouvez également ouvrir le QR code du proxy pour poursuivre la configuration. En cas d'échec, la page indique les étapes suivantes selon iOS/Android : installer la CA, sous iOS accéder à Réglages > Général > Informations sur l'appareil > Réglages de confiance des certificats pour activer la confiance totale, ou approuver l'accès proxy de cet appareil depuis l'interface d'administration.
bifrost install-skill -y
ASR Daily Agent prend en charge la division d'un rapport quotidien en plusieurs questions de recherche indépendantes, chacune créant une session distincte via ChatGPT Web. Le fan-out de recherche peut optionnellement configurer chatgpt_project_url ; une fois configuré, les nouvelles sessions sont archivées dans le ChatGPT Project spécifié, tout en imposant toujours le mode Chat et le modèle Pro :
{
"max_questions": 8,
"chatgpt_interface_mode": "chat",
"chatgpt_model": "pro",
"chatgpt_project_url": "https://chatgpt.com/g/g-p-<project-id>/project"
}
Pour la composition complète de l'Agent, le manifeste de recherche et les limites d'échec, voir design/asr-daily-agent-pipeline.md.

breakpoint://request / breakpoint://response, avec édition des headers/body puis reprise ; voir docs/breakpoint.md/_bifrost/api/system/memory affichent l'occupation des writers de fichiers body/ws et l'état d'alerte en cas d'approche de la limite de descripteursreqScript, resScript, decodeAprès avoir cloné le dépôt, exécutez une fois l'initialisation des hooks Git :
bash scripts/setup-git-hooks.sh
# 或
make setup
Cela écrit le core.hooksPath=.githooks local pour le dépôt courant ; même si un hooksPath global est configuré sur la machine, les git commit suivants exécuteront en priorité le .githooks/pre-commit du dépôt. Le pre-commit par défaut vérifie le format de l'espace de travail, le format Tauri du bureau, ainsi que cargo clippy --workspace --all-targets --all-features -- -D warnings.
Le bureau convient à la capture quotidienne, à la visualisation du trafic, à l'édition de règles et à la mise à jour de Bifrost, sans avoir à mémoriser d'abord les commandes CLI :
Assets de la dernière version..dmg correspondant à votre puce : aarch64-apple-darwin pour Apple Silicon, x86_64-apple-darwin pour Intel Mac..msi : x86_64-pc-windows-msvc pour un ordinateur x64 classique, aarch64-pc-windows-msvc pour un appareil ARM..dmg puis glissez Bifrost.app dans Applications ; sous Windows, double-cliquez sur le .msi et suivez l'assistant d'installation.Si vous souhaitez également installer les capacités en ligne de commande pour le bureau, ouvrez Settings dans le bureau et cliquez sur Install CLI & Skills dans Desktop Proxy Core. Pour un tutoriel détaillé, voir docs/desktop.md.
Commandes courantes :
# 查看状态
bifrost status
# 停止服务
bifrost stop
# 管理端远程访问与鉴权(Web UI)
bifrost admin remote status
bifrost admin remote enable
bifrost admin passwd
bifrost admin revoke-all
# 查看流量
bifrost traffic list
bifrost traffic search "keyword" --method POST --host api.openai.com --path /v1/responses
bifrost search "keyword" --req-header
bifrost search "keyword" --res-body
# 添加规则
bifrost rule add local-dev --content "example.com host://127.0.0.1:3000"
# 编辑全局默认规则,主端口和所有临时端口都会自动生效
bifrost rule update Default --content "internal.example.test dns://10.0.0.53"
Compléments sur les commandes de recherche :
bifrost search est équivalent à bifrost traffic searchtraffic list et la recherche trient par défaut par ordre décroissant de l'heure de requête, puis par ordre décroissant du numéro en cas d'horodatage identique ; la correspondance la plus récente est prioritaire, --limit vaut 50 par défaut, et --max-results de la recherche remplace explicitement --limit--method, --host, --path, --status, --protocol ; path est une sous-chaîne littérale, % et _ ne sont pas des caractères génériques--req-json/--res-json prend en charge la racine $, les chemins pointés, les indices de tableau et [*] ; les chemins invalides, les expressions de valeurs comme le temps ou les headers, et les noms d'include provoquent une erreur directe--latest 5m signifie les 5 dernières minutes, et non une seule entrée ; la sortie structurée sans mot-clé peut utiliser directement les conditions de filtrage, sans entrer dans la TUItraffic get --ids ID1,ID2 produit par défaut du NDJSON ; --format json-pretty explicite renvoie un {"results":[...]} formaté--url, --req-header, --res-header, --req-body, --res-body--headers recherche simultanément les en-têtes de requête et de réponse, --body recherche simultanément le corps de requête et de réponseExemples de règles :
example.com host://127.0.0.1:3000
api.example.com reqHeaders://x-debug=1&x-env=ppe&x-use-ppe=1
chatgpt.com http3://
internal-api.example.test https://10.37.102.138:8080 upstreamUnsafeSsl://true
Les valeurs en ligne sur une seule ligne de reqHeaders:// et resHeaders:// peuvent séparer plusieurs Headers par & ; si la valeur d'un Header contient elle-même un & littéral, utilisez un objet JSON ou l'écriture Values avec un Header par ligne.
Default est la règle globale par défaut créée automatiquement par Bifrost, toujours activée et placée en tête de liste. Elle ne peut pas être supprimée, désactivée, renommée ou synchronisée vers un dépôt distant, mais son contenu est modifiable ; elle convient aux configurations partagées par tous les ports, comme un DNS unifié, des headers génériques ou un repli TLS. Voir docs/rule.md.
docs/README.mddocs/overview.mddocs/getting-started.mddocs/cli.mddocs/desktop.mddocs/rule.mddocs/operation.mddocs/pattern.mddocs/rules/README.mddocs/scripts.mddocs/values.mddocs/replay.mddocs/breakpoint.mddocs/architecture.mddocs/agent-skill.md