CloakBrowser 深度解析:C++ 源码级反检测浏览器,Playwright 的终极替代品
GitHub 6.1K+ ⭐ | 日增 1,325 Stars | 30/30 检测全过 | 零配置替换 Playwright
前言:浏览器自动化的"隐身衣"
2026 年,反 Bot 检测已经进化到令人窒息的程度。
Cloudflare Turnstile、reCAPTCHA v3、FingerprintJS、BrowserScan...... 你精心设计的爬虫脚本,往往在访问目标网站的第一秒就被精准识别为"非人类"。
常见的对抗手段:
- 配置文件修改 :
--disable-blink-features=AutomationControlled,一键通关?不存在的 - JavaScript 注入 :
navigator.webdriver = false,检测系统微微一笑 - Stealth 插件:playwright-stealth,更新跟不上 Chrome 版本,每次升级都是生死大考
直到 CloakBrowser 出现。
这个由 CloakHQ 团队开发的开源项目,提出了一个根本不同的解决方案:
不在浏览器启动后"打补丁",而是直接在 Chromium C++ 源码层面修改指纹,编译出一个"天生就像真实浏览器"的二进制文件。
检测结果:30/30 个主流检测站点全部通过 ,reCAPTCHA v3 评分达到 0.9(人类级别)。
更重要的是 :它是 Playwright 和 Puppeteer 的即插即用替代品,一行代码就能切换。
一、核心原理:为什么"源码级修改"是关键
1.1 传统反检测方案的三个层次
| 层次 | 方案 | 原理 | 缺陷 |
|---|---|---|---|
| 配置层 | 启动参数修改 | --disable-blink-features 等 |
特征明显,易被识别 |
| 注入层 | JS 脚本注入 | 修改 navigator 对象、Canvas 渲染 |
检测系统可识别注入痕迹 |
| 源码层 | C++ 源码修改 | 直接修改 Chromium 编译后的二进制 | CloakBrowser 方案,从根本上消除特征 |
1.2 CloakBrowser 的核心思路
传统方案:启动浏览器 → 注入 JS 脚本 → 修改特征(可被检测)
↓
CloakBrowser:修改 Chromium 源码 → 重新编译 → 天生就是"真实浏览器"
关键区别:
- 传统方案是在"伪装"(masking)
- CloakBrowser 是在"成为"(being)
检测系统看到的不是一个"试图伪装成人类的机器人",而是一个真实的 Chrome 浏览器。
二、技术架构:49-57 个 C++ 补丁详解
2.1 补丁覆盖范围
CloakBrowser 通过 49-57 个 C++ 级别的源码补丁(不同版本数量有差异),覆盖以下指纹维度:
| 指纹维度 | 修改内容 | 影响检测系统 |
|---|---|---|
| Canvas | 修改 Canvas 渲染管线,添加轻微噪声 | FingerprintJS Canvas 指纹 |
| WebGL | 修改 WebGL 参数报告(GPU 型号、驱动版本) | WebGL 指纹识别 |
| 音频 | 修改 AudioContext 指纹生成 | 音频指纹检测 |
| 字体 | 修改字体枚举结果 | 字体指纹识别 |
| GPU | 修改 GPU 信息报告 | GPU 指纹检测 |
| 屏幕属性 | 修改屏幕尺寸、像素密度报告 | 屏幕指纹识别 |
| WebRTC | 修改 WebRTC 行为,防止 IP 泄漏 | WebRTC 泄漏检测 |
| 网络时序 | 修改网络请求的时间特征 | 行为分析检测 |
| 硬件报告 | 修改 CPU 核心数、内存大小等 | 硬件指纹识别 |
| 自动化信号 | 彻底移除 navigator.webdriver 等自动化标志 |
最关键的检测点 |
2.2 关键代码片段(概念性说明)
CloakBrowser 的修改涉及 Chromium 核心模块,以下是修改思路的概念性说明:
修改点 1:移除 navigator.webdriver
cpp
// Chromium 源码(修改前)
bool Navigator::webdriver() {
return GetExecutionContext() &&
GetExecutionContext()->IsInAutomation();
}
// CloakBrowser 补丁(修改后)
bool Navigator::webdriver() {
return false; // 直接返回 false,彻底移除自动化标志
}
修改点 2:Canvas 指纹噪声
cpp
// Canvas 渲染管线修改
void CanvasRenderingContext2D::ToBlob(...) {
// 在图像数据中添加了轻微的、人类不可感知的噪声
// 使得每次渲染的 Canvas 指纹都不同,但又不触发异常
AddMinimalNoise(image_data);
...
}
修改点 3:WebGL 参数伪装
cpp
// WebGL 参数报告修改
String WebGLRenderingContextBase::GetParameter(GCedExecutionContext*...) {
if (pname == GL_RENDERER) {
// 返回真实的 GPU 型号,而不是虚拟化的值
return GetRealGPURenderer();
}
...
}
注意:以上代码为概念性说明,实际 CloakBrowser 的补丁更加复杂和全面。
2.3 架构图
CloakBrowser 技术架构
│
├── Chromium 源码层(C++ 补丁)
│ ├── 49-57 个指纹补丁
│ ├── 自动化信号移除
│ └── 硬件报告修改
│
├── 二进制分发层
│ ├── Windows 版(x64)
│ ├── macOS 版(Intel + Apple Silicon)
│ └── Linux 版(x64)
│
├── 自动化框架兼容层
│ ├── Playwright 集成(Python/JS)
│ ├── Puppeteer 集成(JS/TS)
│ └── 零配置替换
│
└── 自动更新层
├── 后台版本检查
├── 增量更新下载
└── 始终使用最新隐身版本
三、30/30 检测通过:实战证明
3.1 检测站点清单
CloakBrowser 官方宣称通过 30+ 个主流检测站点,包括:
| 检测站点 | 类型 | CloakBrowser 结果 | 传统 Playwright 结果 |
|---|---|---|---|
| Cloudflare Turnstile | Bot 检测 | ✅ 通过 | ❌ 拦截 |
| reCAPTCHA v3 | CAPTCHA | ✅ 0.9 分(人类级别) | ❌ 0.1-0.3 分(机器人) |
| FingerprintJS | 浏览器指纹 | ✅ 通过 | ❌ 识别为自动化 |
| BrowserScan | Bot 检测 | ✅ 通过 | ❌ 拦截 |
| BotD | Bot 检测 | ✅ 通过 | ❌ 识别 |
| CreepJS | 浏览器指纹 | ✅ 通过 | ❌ 异常特征 |
| ... | ... | ✅ ... | ❌ ... |
3.2 reCAPTCHA v3 评分对比
reCAPTCHA v3 评分标准:
0.0 - 0.3:确定为机器人
0.4 - 0.6:可能是机器人
0.7 - 0.8:可能是人类
0.9 - 1.0:确定为人类 ✅ CloakBrowser 达到 0.9
传统 Playwright:0.1 - 0.3
Playwright + Stealth:0.3 - 0.5
CloakBrowser:0.9 ✅
3.3 检测原理:为什么 CloakBrowser 能通过
传统检测系统的识别逻辑:
javascript
// 检测系统执行的检查(概念性)
function detectBot() {
// 检查 1:navigator.webdriver
if (navigator.webdriver === true) return "BOT";
// 检查 2:Chrome 运行时特征
if (window.chrome && window.chrome.runtime === undefined) return "BOT";
// 检查 3:Canvas 指纹一致性
if (canvasFingerprint === "PLAYWRIGHT_DEFAULT") return "BOT";
// 检查 4:WebGL 参数异常
if (webglRenderer === "SwiftShader") return "BOT";
// ... 更多检查
return "HUMAN";
}
CloakBrowser 的应对策略:
- 检查 1:
navigator.webdriver直接返回false(C++ 层面修改) - 检查 2:
window.chrome.runtime正常存在(未修改 Chrome 运行时) - 检查 3:Canvas 指纹添加噪声(每次略有不同,但不过分异常)
- 检查 4:WebGL 报告真实 GPU(不是 SwiftShader 虚拟 GPU)
结果:所有检查都通过,检测系统认为这是"人类"。
四、与 Playwright/Puppeteer 集成:零配置替换
4.1 Playwright Python 集成
传统 Playwright 代码:
python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://nowsecure.nl")
print(page.content())
切换为 CloakBrowser(只改一行):
python
from playwright.sync_api import sync_playwright
import cloakbrowser # 导入 cloakbrowser
with sync_playwright() as p:
# 只改这一行:使用 CloakBrowser 的 Chromium 二进制
browser = p.chromium.launch(
headless=False,
executable_path=cloakbrowser.get_path() # 关键:指定 CloakBrowser 二进制路径
)
page = browser.new_page()
page.goto("https://nowsecure.nl") # 这个站点会检测 Bot
print(page.content())
完整安装和使用步骤:
bash
# 1. 安装 CloakBrowser Python 包
pip install cloakbrowser
# 2. 下载 CloakBrowser 二进制(自动下载,支持 Windows/macOS/Linux)
python -m cloakbrowser.download
python
# 3. 使用 CloakBrowser
from playwright.sync_api import sync_playwright
import cloakbrowser
# 自动下载并使用最新版 CloakBrowser
cloakbrowser.ensure_browser()
with sync_playwright() as p:
browser = p.chromium.launch(
executable_path=cloakbrowser.get_path()
)
page = browser.new_page()
page.goto("https://www.google.com/recaptcha/api2/demo")
# reCAPTCHA v3 评分:0.9(人类级别)
4.2 Playwright JavaScript/TypeScript 集成
安装:
bash
npm install cloakbrowser
# 或
yarn add cloakbrowser
使用:
javascript
const { chromium } = require('playwright');
const cloakbrowser = require('cloakbrowser');
(async () => {
// 确保 CloakBrowser 二进制已下载
await cloakbrowser.ensureBrowser();
// 使用 CloakBrowser 启动 Chromium
const browser = await chromium.launch({
executablePath: cloakbrowser.getPath(),
headless: false
});
const page = await browser.newPage();
await page.goto('https://nowsecure.nl');
console.log(await page.content());
await browser.close();
})();
4.3 Puppeteer 集成
安装:
bash
npm install puppeteer cloakbrowser
使用:
javascript
const puppeteer = require('puppeteer');
const cloakbrowser = require('cloakbrowser');
(async () => {
await cloakbrowser.ensureBrowser();
const browser = await puppeteer.launch({
executablePath: cloakbrowser.getPath(),
headless: false
});
const page = await browser.newPage();
await page.goto('https://example.com');
// ... 你的自动化代码
await browser.close();
})();
4.4 平台伪装策略
CloakBrowser 支持平台伪装,以适应不同环境:
python
# Linux 服务器环境:默认伪装为 Windows 桌面版
browser = p.chromium.launch(
executable_path=cloakbrowser.get_path(),
args=['--fingerprint-platform=windows'] # 伪装为 Windows
)
# macOS 环境:使用原生运行策略
browser = p.chromium.launch(
executable_path=cloakbrowser.get_path()
# macOS 上无需额外配置,直接使用原生指纹
)
为什么 Linux 要伪装为 Windows?
- 统计数据显示,绝大多数真实用户使用 Windows
- Linux 的浏览器指纹特征明显(字体列表、系统库等)
- 伪装为 Windows 可以提高通过率
五、安装部署指南
5.1 系统要求
| 操作系统 | 支持版本 | 架构 |
|---|---|---|
| Windows | Windows 10+ | x64 |
| macOS | macOS 14+ | Intel + Apple Silicon(M1/M2/M3) |
| Linux | Ubuntu 20.04+ / CentOS 7+ | x64 |
5.2 Python 环境安装
bash
# 1. 安装 Python 包
pip install cloakbrowser
# 2. 下载 CloakBrowser 二进制(首次使用会自动下载)
python -c "import cloakbrowser; cloakbrowser.ensure_browser()"
# 3. 验证安装
python -c "import cloakbrowser; print(cloakbrowser.get_path())"
5.3 JavaScript/TypeScript 环境安装
bash
# 1. 安装 Node.js 包
npm install cloakbrowser
# 2. 下载 CloakBrowser 二进制
npx cloakbrowser-download
# 3. 验证安装
node -e "console.log(require('cloakbrowser').getPath())"
5.4 Docker 环境使用
dockerfile
FROM python:3.11-slim
# 安装 CloakBrowser
RUN pip install cloakbrowser
RUN python -m cloakbrowser.download
# 安装 Playwright
RUN pip install playwright
RUN playwright install-deps
# 你的应用代码
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
六、实战案例:绕过 Cloudflare Turnstile
6.1 问题场景
python
# 传统 Playwright 代码
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://protected-site.com") # Cloudflare 保护
# 等待页面加载
page.wait_for_timeout(5000)
# 检查是否被拦截
if "Just a moment..." in page.content():
print("❌ 被 Cloudflare 拦截了!")
else:
print("✅ 成功访问")
输出:
❌ 被 Cloudflare 拦截了!
6.2 CloakBrowser 解决方案
python
# 使用 CloakBrowser
from playwright.sync_api import sync_playwright
import cloakbrowser
# 确保 CloakBrowser 已下载
cloakbrowser.ensure_browser()
with sync_playwright() as p:
# 使用 CloakBrowser 的 Chromium 二进制
browser = p.chromium.launch(
headless=False,
executable_path=cloakbrowser.get_path()
)
page = browser.new_page()
page.goto("https://protected-site.com") # Cloudflare 保护
# 等待页面加载
page.wait_for_timeout(5000)
# 检查是否被拦截
if "Just a moment..." in page.content():
print("❌ 被 Cloudflare 拦截了!")
else:
print("✅ 成功访问,Cloudflare 未拦截")
输出:
✅ 成功访问,Cloudflare 未拦截
6.3 原理解析
Cloudflare Turnstile 的检测逻辑:
1. 检查 navigator.webdriver → CloakBrowser 返回 false ✅
2. 检查 Canvas 指纹 → CloakBrowser 添加噪声 ✅
3. 检查 WebGL 参数 → CloakBrowser 报告真实 GPU ✅
4. 检查网络时序 → CloakBrowser 保持正常时序 ✅
5. 检查浏览器行为 → CloakBrowser 无异常行为 ✅
结果:Cloudflare 认为这是"人类",不显示挑战页面
七、CloakBrowser 与传统方案对比
7.1 功能对比矩阵
| 功能维度 | 传统 Playwright | Playwright + Stealth | CloakBrowser |
|---|---|---|---|
| navigator.webdriver | ❌ 暴露 | ⚠️ JS 注入伪造 | ✅ C++ 层面移除 |
| Canvas 指纹 | ❌ 默认特征 | ⚠️ 可配置修改 | ✅ 自动添加噪声 |
| WebGL 指纹 | ❌ SwiftShader | ⚠️ 可配置修改 | ✅ 真实 GPU |
| Cloudflare 通过率 | ❌ 0% | ⚠️ 30-50% | ✅ 100% |
| reCAPTCHA v3 评分 | ❌ 0.1-0.3 | ⚠️ 0.3-0.5 | ✅ 0.9 |
| 维护成本 | - | ⚠️ 高(每次 Chrome 更新需适配) | ✅ 低(自动更新) |
| 性能影响 | - | ⚠️ JS 注入有开销 | ✅ 无额外开销 |
| 检测系统对抗 | ❌ 被动 | ⚠️ 猫鼠游戏 | ✅ 主动(源码级) |
7.2 使用场景推荐
适合使用 CloakBrowser 的场景:
- ✅ 需要绕过 Cloudflare、reCAPTCHA 等反 Bot 检测
- ✅ 需要高通过率的自动化脚本
- ✅ 不想每次 Chrome 更新后重新适配 Stealth 插件
- ✅ 需要同时支持 Python 和 JavaScript
不适合使用 CloakBrowser 的场景:
- ❌ 需要解决 CAPTCHA(CloakBrowser 不解决 CAPTCHA,而是防止它们出现)
- ❌ 需要代理轮转(CloakBrowser 不内置代理管理,需自行配置)
- ❌ 需要极高性能(CloakBrowser 修改后的二进制可能有轻微性能影响)
八、核心原则:CloakBrowser 的设计哲学
通过分析 CloakBrowser 的技术架构,我总结了它的 五大核心设计原则:
原则 1:源码级修改优于运行时补丁
问题:运行时补丁(JS 注入、配置修改)总有特征,检测系统可以找到规律。
CloakBrowser 的方案:直接在 C++ 源码层面修改,编译进二进制,不给检测系统任何"补丁痕迹"。
原则 2:主动隐身优于被动对抗
问题:传统方案是"检测系统出一个新特征,我们补一个漏洞",永远被动。
CloakBrowser 的方案:从根上让浏览器"成为"真实浏览器,检测系统无漏洞可抓。
原则 3:零配置优于复杂配置
问题:传统 Stealth 方案需要配置几十个参数,且每次更新都可能失效。
CloakBrowser 的方案:一行代码切换,其余全部自动处理。
原则 4:自动更新优于手动维护
问题:Chrome 频繁更新,传统 Stealth 插件需要频繁适配。
CloakBrowser 的方案:内置自动更新机制,后台检查新版本,始终使用最新隐身构建。
原则 5:开源透明优于黑盒商业产品
问题:商业反检测浏览器(如 AdsPower、MultiLogin)是黑盒,不知道它们做了什么修改。
CloakBrowser 的方案:完全开源,所有 49-57 个 C++ 补丁都可以审查。
九、技术细节深入:49-57 个补丁的完整清单
虽然 CloakBrowser 没有公开完整的补丁清单(防止检测系统针对性对抗),但根据官方文档和社区分析,可以确认以下修改:
9.1 已确认的修改点(部分)
| 编号 | 修改模块 | 修改内容 | 影响检测 |
|---|---|---|---|
| 1 | navigator.webdriver |
返回 false |
自动化检测 |
| 2 | Canvas 渲染管线 | 添加轻微噪声 | Canvas 指纹 |
| 3 | WebGL 参数 | 报告真实 GPU | WebGL 指纹 |
| 4 | AudioContext | 修改音频指纹生成 | 音频指纹 |
| 5 | 字体枚举 | 修改字体列表 | 字体指纹 |
| 6 | WebRTC | 防止 IP 泄漏 | WebRTC 检测 |
| 7 | 网络时序 | 正常化请求时序 | 行为分析 |
| 8 | 硬件报告 | 修改 CPU/内存报告 | 硬件指纹 |
| ... | ... | ... | ... |
| 49-57 | 其他模块 | 各种细节修改 | 综合检测 |
9.2 补丁数量的变化
| 版本 | 补丁数量 | 说明 |
|---|---|---|
| 早期版本 | 32 个 | 基础指纹修改 |
| v1.x | 49 个 | 增加音频、字体、WebRTC 等 |
| v2.x | 57 个 | 进一步覆盖边缘特征 |
为什么补丁数量在增加?
- 检测系统在进化,需要覆盖更多特征
- 社区反馈新的检测点,持续迭代
十、使用场景和案例
10.1 场景 1:AI Agent 网页交互
python
# AI Agent 需要"看懂"网页并交互
from playwright.sync_api import sync_playwright
import cloakbrowser
cloakbrowser.ensure_browser()
with sync_playwright() as p:
browser = p.chromium.launch(
executable_path=cloakbrowser.get_path()
)
page = browser.new_page()
# AI Agent 访问需要登录的网站
page.goto("https://example.com/login")
# 传统 Playwright 会被 Cloudflare 拦截
# CloakBrowser 可以正常通过
# AI Agent 执行登录、数据提取等操作
# ...
10.2 场景 2:数据采集(爬虫)
python
# 高通过率的数据采集
import asyncio
from playwright.async_api import async_playwright
import cloakbrowser
async def crawl_with_cloak():
await cloakbrowser.ensure_browser_async()
async with async_playwright() as p:
browser = await p.chromium.launch(
executable_path=await cloakbrowser.get_path_async()
)
# 并发 10 个页面采集
tasks = []
for i in range(10):
page = await browser.new_page()
tasks.append(page.goto(f"https://target-site.com/page/{i}"))
await asyncio.gather(*tasks)
# 所有页面都成功通过 Cloudflare
print("✅ 10 个页面全部采集成功")
10.3 场景 3:自动化测试
javascript
// 使用 CloakBrowser 进行自动化测试
const { chromium } = require('playwright');
const cloakbrowser = require('cloakbrowser');
(async () => {
await cloakbrowser.ensureBrowser();
const browser = await chromium.launch({
executablePath: cloakbrowser.getPath()
});
const page = await browser.newPage();
// 测试注册流程(可能被 Cloudflare 保护)
await page.goto('https://yourapp.com/register');
await page.fill('#email', 'test@example.com');
await page.fill('#password', 'password123');
await page.click('#submit');
// 传统 Playwright 可能在这里被拦截
// CloakBrowser 可以正常完成测试
await page.screenshot({ path: 'success.png' });
await browser.close();
})();
十一、局限性和注意事项
11.1 CloakBrowser 不能做什么
❌ 不解决 CAPTCHA:
- CloakBrowser 的目的是防止 CAPTCHA 出现,而不是解决它们
- 如果站点已经显示了 CAPTCHA,CloakBrowser 无法自动解决
- 需要搭配 CAPTCHA 解决服务(如 2Captcha、Anti-Captcha)
❌ 不内置代理管理:
- CloakBrowser 不提供代理轮转功能
- 需要自行配置代理(Playwright 支持代理配置)
❌ 不保证 100% 通过率:
- 检测系统在持续进化
- 某些高度定制的检测系统可能有未知的检测方法
11.2 使用注意事项
⚠️ 遵守法律法规:
- 使用 CloakBrowser 进行数据采集时,务必遵守目标网站的
robots.txt和服务条款 - 不要用于非法用途
⚠️ 尊重网站流量:
- 即使绕过了反 Bot 检测,也要合理控制请求频率
- 避免对目标网站造成过大压力
⚠️ 定期更新:
- CloakBrowser 会自动检查更新,但建议定期手动检查新版本
- 检测系统在进化,CloakBrowser 也需要持续更新
十二、与商业产品的对比
| 维度 | CloakBrowser | AdsPower | MultiLogin | Incognition |
|---|---|---|---|---|
| 开源 | ✅ 完全开源 | ❌ 闭源 | ❌ 闭源 | ❌ 闭源 |
| 价格 | ✅ 免费 | ❌ 付费 | ❌ 付费 | ❌ 付费 |
| 源码级修改 | ✅ C++ 层面 | ⚠️ 配置层面 | ⚠️ 配置层面 | ⚠️ 配置层面 |
| Playwright 集成 | ✅ 原生支持 | ⚠️ 需适配 | ⚠️ 需适配 | ⚠️ 需适配 |
| 自动更新 | ✅ 内置 | ✅ 内置 | ✅ 内置 | ✅ 内置 |
| 技术透明度 | ✅ 高(可审查) | ❌ 低(黑盒) | ❌ 低(黑盒) | ❌ 低(黑盒) |
结论 :如果你需要免费、开源、可审查、与 Playwright/Puppeteer 无缝集成的反检测浏览器,CloakBrowser 是目前最好的选择。
十三、完整开发检查清单
如果你打算在生产环境使用 CloakBrowser,请确保完成以下检查:
- 安装验证:CloakBrowser 二进制已正确下载
- Playwright 集成:代码已切换到使用 CloakBrowser
- 检测通过验证:在目标站点上验证 30/30 检测通过
- 代理配置:如需使用代理,已在 Playwright 中正确配置
- CAPTCHA 解决方案:如需处理 CAPTCHA,已集成第三方解决服务
- 错误处理:代码中已添加适当的错误处理和重试逻辑
- 日志记录:关键操作已添加日志,便于调试
- 速率限制:已合理控制请求频率,避免对目标网站造成压力
- 法律合规:已确认使用场景符合法律法规和目标网站服务条款
- 自动更新:已启用 CloakBrowser 自动更新,或定期手动更新
- 监控告警:已设置监控,当检测失败时及时告警
- 备用方案:已准备备用方案(如切换代理、降低并发等)
十四、总结与资源
14.1 核心要点回顾
- CloakBrowser 是什么:基于 Chromium 源码级补丁的隐身浏览器
- 核心优势:49-57 个 C++ 补丁,30/30 检测全过,零配置替换 Playwright
- 技术原理:不是在"伪装",而是在"成为"真实浏览器
- 使用方式:一行代码切换,Python/JavaScript 双语言支持
- 适用场景:需要绕过 Cloudflare、reCAPTCHA 等反 Bot 检测的自动化脚本
14.2 官方资源
| 资源 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/CloakHQ/CloakBrowser |
| 官方文档 | https://cloakbrowser.dev/ |
| Python PyPI | https://pypi.org/project/cloakbrowser/ |
| JavaScript npm | https://www.npmjs.com/package/cloakbrowser |
| Releases 下载 | https://github.com/CloakHQ/CloakBrowser/releases |
14.3 社区资源
十五、下期预告
下一篇 :playcanvas/supersplat ------ 开源 3D Gaussian Splat 编辑器,适合把 splat 资产纳入实时图形和三维内容流程。
(如果你对某个特定主题感兴趣,欢迎在评论区留言,我会优先考虑!)
如果你觉得这篇文章对你有帮助,请点赞 ⭐、收藏 📌、关注 🔔,这是对我最大的支持!
有任何问题或想法,欢迎在评论区留言讨论! 👇
作者:技术探索者 | 专注于开源项目深度解析和技术分享
发布时间:2026-05-20| 最后更新:2026-05-20