English | 简体中文
A desktop browser management tool for multi-account isolation, proxy binding, and local environment control. Supports Windows, Linux, and unsigned macOS builds.
Ant Browser currently recommends using browser cores from the open-source fingerprint-chromium project.
If you need downloadable and maintainable fingerprint Chromium builds, start with its Releases page:
This project provides a practical upstream source for preparing browser cores used by Ant Browser. Thanks to the original project for making these builds available.
Ant Browser has a focused goal: help users manage multiple isolated browser instances on one desktop device, with proxy pools, browser core management, and quick launch workflows for daily operations and testing.
- Overview
- Recent Updates
- Changelog
- Source Branches
- Features
- Screenshots
- Quick Start
- Common Tasks
- FAQ
- Roadmap
- Contributing
- Support and Feedback
- License
Ant Browser is suitable for:
- Multi-account environment isolation
- Cross-border ecommerce and social media account operations
- Local testing that needs independent proxy exits
- Teams that need centralized browser core and instance configuration management
The core value of this project is:
- Assign an isolated browser instance to each account
- Bind a dedicated proxy to each instance
- Manage browser cores, tags, keywords, and quick launch codes in one place
- Store configuration and runtime data locally for better control and backup
- 自动化增强:完善自动化脚本导入、运行、目标实例选择和执行记录管理,提升多实例自动化编排能力
- 插件管理:新增插件包管理能力,支持插件安装、导入、启停、删除、实例限制和单实例插件配置
- VPN 优化:优化代理/VPN 连接链路,完善 Xray、sing-box、Mihomo 等连接栈的启动、测速、检测和预热能力
- 实例迁移:支持实例导入导出,可将实例配置和完整浏览器用户数据目录打包迁移到新环境
- 代理适配:实例导入时按代理名称匹配本地同名代理,匹配不到或同名不唯一时自动清空代理
- 界面优化:优化实例列表、关键字展示、操作菜单和导入导出入口,减少页面拥挤和无效信息
- Major Launch API upgrade: added instance CRUD, launch by code or selector, runtime session / status / stop, and a unified CDP entry point for external integrations
- Improved automation API flow: script execution supports selector / params overrides and
timeoutMs; dual-instance runtime flows support timeout cancellation and structured errors - Enhanced proxy pool: added chained proxy import, edit, and preview support for HTTP / SOCKS5 two-hop chains, plus improved direct proxy bulk import
- Improved proxy checks: added speed test targets, IP health targets, and bridge startup timeout settings; chained proxies can also participate in latency and health checks
- Improved instance launch behavior: when proxy startup fails, the instance can launch directly for the current run without changing its saved proxy configuration; the default proxy pool only keeps direct nodes
- Upgraded bookmarks: added default IP check bookmarks, launch-time auto-open settings, and sync support for existing stopped instances
- Improved Linux support: completed the development, packaging, installation, startup, and runtime flow, with continued fixes for installed build stability
- Added unsigned macOS internal build flow: native macOS hosts can build
.app/.zipartifacts, with user state stored under~/Library/Application Support/ant-browser - Added experimental SOCKS proxy testing support; stability and compatibility will continue to be verified
- Added experimental API-triggered browser launch support for future automation workflows
See CHANGELOG.md for the full release history.
master: clean developer baseline. It does not commitdata/app.db, instance directories, or other user data. A fresh empty database is initialized on first launch.user_data: adds a test snapshot ofdata/app.dbon top ofmasterfor demos, integration testing, and issue reproduction.- Proxy runtimes
bin/xray.exeandbin/sing-box.exeare included in the repository. Development and release packaging do not require downloading these runtime files separately.
- Instance isolation management: create, edit, start, stop, restart, clone, and delete browser instances
- Proxy pool configuration: maintain proxy nodes centrally and assign them to specific instances
- Multi-protocol support: supports common proxy configurations and Clash import
- Browser core management: maintain multiple Chrome core versions and set a default core
- Quick launch: open target instances quickly by instance code or
Ctrl + K - Tags and search: filter by tag, keyword, status, proxy, core, and group
- Automation scripts: import and run scripts, select target instances, review run history, and invoke external APIs
- Extension management: install, import, enable/disable, and remove extensions, with per-instance extension configuration
- Instance migration: export a profile and its browser user-data directory as a ZIP and import it as a new instance
- VPN / proxy diagnostics: connection-stack warmup, speed tests, IP health checks, and proxy error handling
- Local storage: configuration and instance data are stored locally for long-term use and backup
Main capabilities:
- View total instances, running instances, proxy node count, and browser core versions
- Jump from the dashboard to
Browser Instances,Proxy Pool,Core Management, andSettings - Check client version, runtime environment, storage engine, and current running state
Main capabilities:
- View and manage all browser instances in one place
- Filter instances by status, proxy, core, group, and keyword
- Create new profiles, start, stop, restart, configure, clone, and delete instances
- Assign quick launch codes for direct startup later
Main capabilities:
- Manage proxy nodes centrally
- Filter proxies by protocol and group
- Maintain proxies manually or import Clash configurations
- Check latency and IP health to choose available nodes
Proxy connection-stack rules:
default_connector_typehas two connection stacks:xrayandmihomo.xrayis the Xray + sing-box combined stack: Xray handles vmess/vless/trojan/shadowsocks/chained proxies, while sing-box handles hysteria2/tuic/anytls and similar protocols.mihomois the standalone Mihomo stack: any proxy that requires a bridge goes through mihomo.- Instance launch, proxy speed tests, real connectivity checks, IP health, warmup, and extension-download proxies must all follow the active connection stack; do not mix the
xraycombined stack and themihomostack automatically. - See
docs/proxy-connector-stacks.mdfor the full constraints.
Main capabilities:
- Visit an IP check site after starting an instance to verify that the proxy is active
- Check IP region, ASN, ISP, and risk values
- Confirm whether the instance is using the expected proxy exit
- Operating systems:
- Windows 10 / 11 (64-bit)
- Linux (amd64 / arm64)
- macOS (amd64 / arm64, currently unsigned internal builds)
- Recommended memory: 8 GB or more
- Recommended disk space: 2 GB or more
- Download the latest release from https://github.com/black-ant/Ant-Browser/releases.
- For the Windows installer, run
AntBrowser-Setup-*.exe. - For the portable Windows package, extract it and run
ant-chrome.exe. - For Linux, install
ant-browser_<version>_<arch>.deb, or extract thetar.gzpackage and runant-chrome. - For unsigned macOS packages, extract and run
AntBrowser.app. If macOS says the app is damaged, cannot be opened, or is blocked by Gatekeeper after copying it to/Applications, runsudo xattr -dr com.apple.quarantine /Applications/AntBrowser.appand open it again.
- Use the
masterbranch for development by default. It does not include test user data and is intended as the daily development baseline. - If you need a demo environment with a test database, switch to the
user_databranch. - On Windows, run
bat\dev.bat. It starts in stable mode by default. Usebat\dev.bat livefor frontend HMR, orbat\dev.bat limitedto reproduce constrained-memory behavior. - Windows uses
bin/xray.exeandbin/sing-box.exe; Linux usesbin/linux-<arch>/xrayandbin/linux-<arch>/sing-box; macOS usesbin/darwin-<arch>/xrayandbin/darwin-<arch>/sing-box. - Runtime files are pinned in the repository and verified by hash. The hash manifest is
publish/runtime-manifest.json, and the pinned source manifest ispublish/runtime-sources.json. - To refresh Linux / macOS runtimes, run
python3 tools/runtime/sync-runtime.py --target <target>. The script downloads from pinned sources, verifies archives, and updates the manifest.
Development modes:
bat\dev.bat: stable mode. Buildsfrontend/distfirst, then starts Wails with static assets and no external Vite dev server dependency.bat\dev.bat live: starts the Vite watcher explicitly and connects it to the desktop shell through-frontenddevserverurl.bat\dev.bat limited: based onlive, with Windows Job Object memory limits applied to the watcher and child processes.- To configure a proxy for dependency downloads, set
DEV_PROXY_URL,DEV_NO_PROXY, andDEV_GOPROXYbefore startup.
Automation scripts are split into two layers:
- The committable demo script library in the repository:
backend/internal/automation/demo-library/ - Local runtime / user-defined scripts:
data/automation/scripts/
Rules:
- Only scripts in the demo script library are committed to git.
- Runtime scripts under
data/automation/scripts/are ignored and not committed to git. - By default only three demos are synced:
dual-instance-runtime-switch,news-query-txt,web-image-generate-download.
A script package uses a portable "one script, one directory" structure:
<script-id>/
├── automation.script.json
├── index.cjs
└── other helper files
Where:
automation.script.json: script metadata and default parameters.index.cjs: entry script;entryFilecan also point to a relative path such asscripts/index.cjs.- Other helper files: local modules, templates, and static resources the script depends on.
The on-disk runtime layout differs from the distribution layout. The app writes scripts to:
data/automation/scripts/<script-id>/
├── config
├── index.cjs
└── other helper files
Here config is the app's internal persistence format; copying, importing, and script-library management always use the automation.script.json package structure.
The Windows release script keeps the default NSIS installer behavior, but can also produce a portable ZIP, or both at once:
bat\publish.bat zip
bat\publish.bat both
bat\publish.bat -Target WINDOWS -WindowsFormat INSTALLER
bat\publish.bat -Target WINDOWS -WindowsFormat PORTABLE
bat\publish.bat -Target WINDOWS -WindowsFormat BOTHOmitting -WindowsFormat is equivalent to INSTALLER. The zip shortcut produces only the portable ZIP, while both produces both the installer and the portable ZIP. The installer and portable ZIP are written to publish\output\.
Linux release scripts are under publish/linux/.
bash publish/linux/publish-linux.sh --arch amd64
bash publish/linux/publish-linux.sh --arch arm64See publish/linux/README.md for details.
macOS release scripts are under publish/mac/. They must run on a native macOS host, and the target architecture must match the host architecture.
bash publish/mac/publish-mac.sh --arch amd64
bash publish/mac/publish-mac.sh --arch arm64The scripts generate unsigned .app and .zip artifacts for PR verification and internal testing. See publish/mac/README.md for details.
Proxy runtimes are already included in the repository. You only need to prepare a browser core.
- Open the app and go to
Fingerprint Browser > Core Management. - Prefer the in-app download flow to prepare a core.
- If you prepare a core manually, make sure the directory contains
chrome.exe.
Suggested directory layout:
chrome/
chrom-142/
chrome.exe
...
- Import or add available proxy nodes in
Proxy Pool. - Click
New ProfileinBrowser Instances. - Choose the instance name, core, proxy, tags, and required launch arguments.
- Return to the instance list and click the start button.
- Open an IP check site and confirm that the proxy result matches expectations.
| Goal | Entry | Notes |
|---|---|---|
| Create a browser instance | Browser Instances > New Profile |
Create a new isolated browser environment |
| Configure proxy pool | Proxy Pool |
Maintain proxy nodes and check latency / health |
| Bind proxy to instance | Instance Edit Page |
Assign a target proxy node to an instance |
| Start an instance | Browser Instances |
Click the start button to run the target instance |
| Quick launch an instance | Ctrl + K |
Search by code, instance name, tag, or keyword |
| Manage browser cores | Core Management |
Add, edit, delete, and set the default core |
| Validate proxy result | Visit an IP check site after launching an instance | Check IP, region, ASN, and risk values |
First check whether the browser core path is valid and whether the target directory contains chrome.exe.
First verify that the proxy node itself is available, then confirm that the instance is bound to the correct proxy. After launch, visit an IP check site to verify the current exit IP.
If the local client shows many available proxy nodes but Ant Browser lists far fewer as available, first confirm that the current default_connector_type matches the local client. Ant Browser does not automatically mix the xray combined stack and the mihomo stack; after switching connection stacks you must re-run speed tests.
Use filters in Browser Instances by status, proxy, core, group, and keyword. You can also use Ctrl + K to quick launch by instance code or name.
Use one account per instance and one stable proxy per instance. Avoid mixing browser environments or frequently switching the exit IP of the same instance.
The current macOS package is an unsigned build. After copying it to /Applications, Gatekeeper may mark it as quarantined. Run this command to remove the quarantine flag and open it again:
sudo xattr -dr com.apple.quarantine /Applications/AntBrowser.app- Improve automation module capabilities
- Continue adding user guides and API documentation
- Improve instance templates, batch management, and search experience
Issues and pull requests are welcome.
- Bug reports: include the app version, OS version, reproduction steps, and screenshots
- Feature requests: describe the business scenario, expected behavior, and current limitation
- Documentation improvements: README, tutorials, and screenshot updates are welcome
For larger changes, please open an issue first to align on the requirements before submitting a PR.
- Releases: https://github.com/black-ant/Ant-Browser/releases
- Issues: https://github.com/black-ant/Ant-Browser/issues
- Thanks to the community for support: https://linux.do/
This repository does not currently include a standalone LICENSE file. It will be added later.



