FoxDesk

本地 Camoufox 指纹浏览器管理器 — 免费、开源、隐私优先

Python 3.12+ FastAPI Camoufox Windows / macOS / Linux

安装与启动

方式一:直接运行(推荐开发者)

git clone https://github.com/BB0813/foxdesk.git
cd foxdesk
python -m pip install -r requirements.txt
# Camoufox:应用内系统页 Install / Fetch
# 可选 Chromium 双引擎(1.4.0):
#   playwright install chromium
#   patchright install chromium
python desktop.py

或双击 Start-FoxDesk.bat(旧名 Start-CamoufoxManager.bat 仍可用)

用户数据目录:%APPDATA%\FoxDesk(旧版 CamoufoxManager 会自动迁移)。

方式二:下载 exe 安装包

GitHub Releases 下载版本:当前稳定线 v1.4.0(双引擎 + Patchright)。安装或解压后运行 FoxDesk.exe

无需安装 Python 环境(安装包形态)。

方式三:Web 调试模式

python -m uvicorn backend.app:app --host 127.0.0.1 --port 8765 --reload
# 浏览器打开 http://127.0.0.1:8765

首次启动

Camoufox:进入「系统」标签页,按顺序执行:

1. Install — 安装 Python 包 pip install camoufox

2. Fetch — 下载浏览器二进制文件 camoufox fetch

3. Test — 运行自检(可选,可能耗时较长)

Chromium(可选):系统页可查看 Playwright / Patchright / 本机 Chrome 状态;推荐 chromium_backend=auto。模板「AI 工作档案」面向自有账号正常使用 ChatGPT/Claude/Gemini,不保证注册/订阅通过。

快速上手

  1. 启动 FoxDesk
  2. 点击「新建」创建一个 Profile
  3. 在「基础」标签页设置名称和启动网址
  4. 在「代理」标签页填写代理地址(可选)
  5. 在「指纹环境」标签页点击「随机生成」
  6. 点击「保存」
  7. 点击「启动」打开浏览器

配置档案

Profile 是 FoxDesk 的核心概念,每个 Profile 对应一个独立的浏览器身份。

字段说明默认值
name档案名称新档案
startup_url浏览器启动后打开的网址browserleaks.com
mode浏览器模式 / 远程服务模式browser
os模拟的操作系统auto
user_data_dir浏览器数据持久化目录自动生成
locale语言区域空(使用系统默认)
tags自定义标签,逗号分隔

操作

指纹参数

在「指纹环境」标签页可以精确控制浏览器指纹:

参数说明
Platformnavigator.platform(Win32 / MacIntel / Linux x86_64)
Vendornavigator.vendor(Google Inc. / Apple Computer, Inc.)
Screen屏幕分辨率、色深、像素比
WebGLWebGL 厂商和渲染器
Timezone时区(如 America/New_York)
WebRTC ModeDefault / Disable / Public Only / Force Proxy
Canvas NoiseCanvas 指纹噪声
Audio Noise音频指纹噪声
Fonts自定义字体列表

随机生成

点击「随机生成」按钮,会根据选择的 OS 自动生成一套完整的指纹参数组合。

指纹检测

点击编辑器顶栏「检测」按钮,FoxDesk 会分析当前 Profile 的指纹一致性,给出 0-100 分评分并列出潜在问题。

代理设置

支持的代理协议:

协议格式
HTTPhttp://host:port
HTTPShttps://host:port
SOCKS4socks4://host:port
SOCKS5socks5://host:port

支持认证:socks5://user:pass@host:port

只填 host:port 会自动补全为 http://host:port

代理测试

点击「测试代理」按钮,FoxDesk 会通过代理连接到检测服务器,返回:

批量导入

在代理标签页底部,每行一个代理地址,点击「批量导入」会自动分配给 Profile。

会话管理

每个启动的浏览器是一个「会话」。在「运行会话」标签页可以看到所有运行中的会话。

Cookie 管理

在「指纹环境」标签页底部:

下载源

在「系统」标签页可以选择不同的 Camoufox 下载源:

说明
GitHub Official官方 GitHub Releases
GitHub Mirrorghproxy.com 镜像(中国加速)
Custom Mirror自定义镜像地址

系统架构

FoxDesk
├── desktop.py              # 桌面启动器(pywebview / 浏览器回退)
├── backend/
│   ├── app.py              # FastAPI 主服务(API + 静态文件)
│   └── camoufox_worker.py  # Camoufox 启动 worker 进程
├── static/
│   ├── index.html          # 前端 SPA
│   ├── styles.css          # 样式(深浅色双主题)
│   ├── app.js              # 前端逻辑(原生 JS,无框架)
│   └── logo.png            # 品牌 Logo
├── data/
│   ├── profiles.json       # Profile 数据
│   ├── channels.json       # 下载源配置
│   ├── activity.json       # 操作日志
│   └── runtime/            # 运行时临时文件
└── foxdesk.spec            # PyInstaller 打包配置

数据流

桌面启动流程:

  1. desktop.py 找可用端口
  2. 启动 uvicorn 后端(子进程或内嵌)
  3. 等待后端就绪
  4. 用 pywebview 打开窗口(或回退到浏览器)

会话启动流程:

  1. 前端调用 POST /api/sessions
  2. 后端验证 Profile → 写入 runtime JSON
  3. 启动 camoufox_worker.py 子进程
  4. Worker 读取 Profile → 调用 Camoufox API
  5. Worker 通过 stdout 输出 JSON 日志事件
  6. 后端捕获日志 → 前端轮询显示

API 接口

所有接口基础路径:http://127.0.0.1:8765

系统

方法路径说明
GET/api/system系统状态与安装信息
POST/api/tasks/{name}执行任务(install/fetch/test/version/path)
GET/api/tasks任务列表

Profile

方法路径说明
GET/api/profilesProfile 列表
POST/api/profiles创建 Profile
PUT/api/profiles/{id}更新 Profile
DELETE/api/profiles/{id}删除 Profile
POST/api/profiles/{id}/clone克隆 Profile
GET/api/profiles/export导出所有 Profile
POST/api/profiles/import导入 Profile
POST/api/profiles/{id}/open-data-dir打开数据目录
GET/api/profiles/{id}/cookies导出 Cookie
POST/api/profiles/{id}/cookies导入 Cookie
GET/api/profiles/{id}/fingerprint-check指纹检测
POST/api/profiles/bulk-proxy批量代理导入

会话

方法路径说明
POST/api/sessions启动会话
GET/api/sessions会话列表
GET/api/sessions/{id}会话详情
GET/POST/api/sessions/{id}/logs/download下载日志
POST/api/sessions/{id}/navigate运行时导航(browser)
POST/api/sessions/{id}/fingerprint运行时指纹探测
POST/api/sessions/{id}/screenshot截图 PNG base64
POST/api/sessions/{id}/evaluate短表达式 evaluate
POST/api/sessions/{id}/endpoint刷新 server ws 端点
POST/api/sessions/batch批量启动
POST/api/sessions/batch-stop批量停止
POST/api/sessions/stop-all停止所有
POST/api/processes/{id}/stop停止进程

其他

方法路径说明
POST/api/proxy/test代理测试
GET/api/proxies代理池列表
POST/api/proxies/health-check立即巡检
GET/api/proxies/health-status上次巡检状态
POST/api/system/backup创建加密备份 .fdk
GET/api/system/backups备份列表
POST/api/system/backup/restore恢复备份
POST/api/fingerprint/generate随机指纹生成
GET/api/channels下载源列表
PUT/api/channels更新下载源
POST/api/channels/{id}/fetch通过指定源下载
GET/api/activity操作日志
GET/api/v1/sessions本机自动化:会话列表(需 Token)

本机 API 使用请求头 X-FoxDesk-Token(页面 bootstrap 注入;勿映射到公网)。

构建与打包

本地构建

双击 build.bat

构建产物:dist/FoxDesk/FoxDesk.exe

CI/CD 自动构建

推送 v* tag 自动触发 GitHub Actions:

git tag v1.4.0
git push origin v1.4.0

自动构建 Windows exe / 安装包并创建 GitHub Release(含 SHA256SUMS)。

参与贡献

  1. Fork 本仓库
  2. 创建特性分支 git checkout -b feature/amazing
  3. 提交更改 git commit -m 'Add amazing feature'
  4. 推送分支 git push origin feature/amazing
  5. 创建 Pull Request

更新日志

v1.4.0 最新

2026-07-14

  • 日志下载 GET/POST + Token 修复
  • 会话批量停止 UI + 代理 health-status 展示
  • 运行时截图 / 有界 evaluate
  • 文档与 1.3.x 能力对齐

v1.3.1 / v1.3.0

  • 加密备份 .fdk 创建/恢复、server 端点刷新
  • 会话导航/指纹探测、并发与空闲限制
  • 代理健康巡检调度与分配模式

v1.0.0

2026-07-08 — 初版:Profile / 会话 / Cookie / 打包 CI

FoxDesk — Built with Camoufox, FastAPI, and pywebview