Agent Browser CLI
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
Manages AdsPower browser profiles, groups, proxies and the AdsPower client itself through the adspower-browser command line or its shorter aliases.
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AdsPower/adspower-browser adspower-browser --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/adspower-browser .claude/skills/adspower-browser && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .claude/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browserType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AdsPower/adspower-browser adspower-browser --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/adspower-browser .agents/skills/adspower-browser && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .agents/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AdsPower/adspower-browser adspower-browser --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/adspower-browser .cursor/skills/adspower-browser && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .cursor/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AdsPower/adspower-browser.git --path skills/adspower-browser--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AdsPower/adspower-browser adspower-browser --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/adspower-browser .gemini/skills/adspower-browser && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .gemini/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AdsPower/adspower-browser adspower-browserInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/adspower-browser .github/skills/adspower-browser && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .github/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AdsPower/adspower-browser --skill adspower-browser -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AdsPower/adspower-browser adspower-browser --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AdsPower/adspower-browser.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/adspower-browser .opencode/skills/adspower-browser && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "adspower-browser" agent skill from https://github.com/AdsPower/adspower-browser/tree/main/skills/adspower-browser into .opencode/skills/adspower-browser/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adspower-browser", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adspower-browserManages AdsPower browser profiles, groups, proxies and the AdsPower client itself through the adspower-browser command line or its shorter aliases.
The CLI, also callable under two shorter alias names, is a package-manager-style tool for AdsPower's local API, covering creating, updating, deleting and listing browser profiles plus their groups, tags and proxies, downloading and listing browser kernels, patching the client, and checking API status. It is triggered by requests to open, launch or configure an AdsPower environment or profile, and a reference file maps common phrasings, including Chinese ones for opening an existing environment, to the matching command.
The CLI assumes AdsPower is running on its default port, with port and API-key flags or an environment variable supplying credentials, and it can also start the AdsPower client itself through an API key, including in headless mode on Windows or macOS. Commands follow a fixed form of a command name, an optional argument, and the port and key flags, and profile-related commands such as opening or closing a browser or reading its cookies take a single profile id or number. Reference files cover application, kernel, tag, group and proxy management, fingerprint configuration, and TLS cipher and user-agent details in more depth.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 06dc59d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
adspower.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ADS_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AdsPower Browser Profiles loads about 3.5k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 84 tokens; SKILL.md has 866 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from AdsPower/adspower-browser at commit 06dc59d, republished under its MIT licence (© AdsPower). 866 words, ~3,502 tokens.
.claude/skills/adspower-browser/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.The Skills CLI (npx adspower-browser) is the package manager for operate AdsPower browser profiles, groups, proxies, and application/category lists via the adspower-browser CLI. For more infomation about out product and services, visit AdsPower Official Website.
npm install -g adspower-browserAfter installation, you can use any of these equivalent commands:
adspower-browser
adspower
adsadspower-browser is the original command name. adspower and ads are aliases that point to the same CLI entry.
Apply when the user:
open-browser(CLI 或 MCP);完整说法与工具映射见 references/tool-intent-map.mdEnsure AdsPower is running (default port 50325). Pass --port / --api-key when needed, or set the ADS_API_KEY environment variable before running start.
The CLI itself supports launching the AdsPower application via API key. If the AdsPower client is installed, AdsPower headless mode can also be launched via API key.
The examples below use ads for brevity, but adspower-browser and adspower work the same way.
ads start -k <KEY>If the ADS_API_KEY environment variable is set, you can start the CLI directly with:
ads startGeneral command form:
ads <command> [<arg>] [--port PORT] [--api-key KEY]AdsPower client headless mode:
AdsPower Global:
Windows设备下: "AdsPower Global.exe" --headless=true --api-key=your_api_key --api-port=50325
MacOS设备下:"/Applications/AdsPower Global.app/Contents/MacOS/AdsPower Global" --args --headless=true --api-key=your_api_key --api-port=50325
Linux设备下:adspower_global --headless=true --api-key=your_api_key --api-port=50325Two forms for <arg>:
Single value (shorthand) — for profile-related commands, pass one profile ID or number:
ads open-browser <profile_id>ads close-browser <profile_id>ads get-profile-cookies <profile_id>ads get-browser-active <profile_id>ads get-profile-ua <profile_id> (single ID; a numeric token is treated as profile_no)ads new-fingerprint <profile_id> (single ID; a numeric token is treated as profile_no)JSON string — full parameters for any command (see Command Reference below):
ads open-browser '{"profile_id":"abc123","launch_args":"..."}'<arg> or use '{}'.You can use ads -h or ads <command> -h to view the specific parameters.
ads start -k <KEY> # Start the adspower runtime
ads stop # Stop the adspower runtime
ads restart # Restart the adspower runtime
ads status # Get the status of the adspower runtimeads open-browser <profile_id> # Or JSON: profile_id, profile_no?, ip_tab?, launch_args?, headless?, last_opened_tabs?, proxy_detection?, password_filling?, password_saving?, cdp_mask?, delete_cache?, device_scale?
ads close-browser <profile_id> # Or JSON: profile_id? | profile_no? (one required)ads create-browser '{"group_id":"0","user_proxy_config":{"proxy_soft":"no_proxy"},...}' # group_id required: always include it; use "0" for Ungrouped; if given a group name, call get-group-list first; include either proxyid or user_proxy_config
ads update-browser '{"profile_id":"...",...}' # profile_id required
ads delete-browser '{"profile_id":["..."]}' # profile_id required
ads get-browser-list '{}' # CLI defaults to page=1,limit=200 (Local API itself returns only 1). Or group_id?, limit?, page?, profile_id[]?, profile_no[]?, sort_type?, sort_order?, tag_ids?, tags_filter?, name?, name_filter?
ads get-opened-browser # No paramsListing all environments: get-browser-list returns total_count / total_pages. The CLI sends page=1,limit=200 by default, so one call covers up to 200 profiles. If total_pages > 1, keep calling with the same filters and page + 1 until every page is collected. For "operate on all environments in a group" tasks, gather all pages first, then act on every returned profile_id — never just the first.
ads move-browser '{"group_id":"1","user_ids":["..."]}' # group_id + user_ids required
ads get-profile-cookies <profile_id> # Or JSON: profile_id? | profile_no?
ads get-profile-ua <profile_id> # Or JSON: profile_id[]? | profile_no[]? (up to 10); numeric shorthand maps to profile_no[]
ads close-all-profiles # No params
ads new-fingerprint <profile_id> # Or JSON: profile_id[]? | profile_no[]? (up to 10); numeric shorthand maps to profile_no[]
ads delete-cache-v2 '{"profile_id":["..."],"type":["cookie","history"]}' # type: local_storage|indexeddb|extension_cache|cookie|history|image_file
ads share-profile '{"profile_id":["..."],"receiver":"email@example.com"}' # receiver required; share_type?, content?
ads get-browser-active <profile_id> # Or JSON: profile_id? | profile_no?
ads get-cloud-active '{"user_ids":"id1,id2"}' # user_ids comma-separated, max 100ads download-kernel '{"kernel_type":"Chrome","kernel_version":"141"}'
ads get-kernel-list '{}' # kernel_type?: Chrome | Firefox (omit to get all)ads update-patch '{}' # version_type?: stable | beta (default stable)ads get-tag-list '{}' # ids?, limit?, page?
ads create-tag '{"tags":[{"name":"My tag","color":"blue"}]}' # name required per item; color optional
ads update-tag '{"tags":[{"id":"1","name":"Renamed"}]}' # id required per item; name?, color?
ads delete-tag '{"ids":["tagId1","tagId2"]}' # ids requiredads create-group '{"group_name":"My Group","remark":"..."}' # group_name required
ads update-group '{"group_id":"1","group_name":"New Name"}' # group_id + group_name required; remark? (null to clear)
ads get-group-list '{}' # group_name?, page_size?, page?ads check-status # No params – API availability
ads get-application-list '{"category_id":"123","page":1,"limit":20}'ads create-proxy '[{"type":"http","host":"127.0.0.1","port":"8080"}]' # top-level array; type, host, port required per item
ads update-proxy '{"proxy_id":"proxy-1","proxy_url":"https://refresh.example.com"}'
ads get-proxy-list '{}' # limit?, page?, proxy_id[]?
ads delete-proxy '{"proxy_id":["..."]}' # proxy_id required, max 100See references/browser-profile-management.md for open-browser, close-browser, create-browser, update-browser, delete-browser, get-browser-list, get-opened-browser, move-browser, get-profile-cookies, get-profile-ua, close-all-profiles, new-fingerprint, delete-cache-v2, share-profile, get-browser-active, get-cloud-active and their parameters.
See references/group-management.md for create-group, update-group, and get-group-list parameters.
See references/application-management.md for check-status and get-application-list parameters.
See references/proxy-management.md for create-proxy, update-proxy, get-proxy-list, and delete-proxy parameters.
See references/browser-tag-management.md for get-tag-list, create-tag, update-tag, and delete-tag parameters.
See references/browser-kernel-management.md for download-kernel and get-kernel-list parameters.
See references/client-patch-management.md for update-patch parameters.
See references/user-proxy-config.md for all fields (proxy_soft, proxy_type, proxy_host, proxy_port, etc.) and example. For create-browser, include either proxyid or user_proxy_config. If the user does not specify a proxy when creating a browser profile, set user_proxy_config to {"proxy_soft":"no_proxy"}. For update-browser, include proxyid or user_proxy_config only when changing the profile proxy.
See references/fingerprint-config.md for all fields (timezone, language, WebRTC, browser_kernel_config, random_ua, TLS, etc.) and example.
Commands such as navigate, click-element, fill-input, screenshot depend on a persistent browser connection and are not exposed by this CLI. Use the local-api-mcp MCP server for automation.
Reference docs with full enum values and field lists:
| Reference | Description | When to use |
|---|---|---|
| references/tool-intent-map.md | MCP/CLI 工具名与中英 intent、triggers 对照表(与 toolIntentMetadata.ts 同源)。 | 根据用户自然语言选择对应 CLI 命令或 MCP 工具(尤其 open-browser)。 |
| references/browser-profile-management.md | open-browser, close-browser, create-browser, update-browser, delete-browser, get-browser-list, get-opened-browser, move-browser, get-profile-cookies, get-profile-ua, close-all-profiles, new-fingerprint, delete-cache-v2, share-profile, get-browser-active, get-cloud-active parameters. | Any browser profile operation (open, create, update, delete, list, move, cookies, UA, cache, share, status). |
| references/group-management.md | create-group, update-group, get-group-list parameters. | Creating, updating, or listing browser groups. |
| references/application-management.md | check-status, get-application-list parameters. | Checking API availability or listing applications (categories). |
| references/proxy-management.md | create-proxy, update-proxy, get-proxy-list, delete-proxy parameters and enums. | Creating, updating, listing, or deleting proxies. |
| references/browser-tag-management.md | get-tag-list, create-tag, update-tag, delete-tag parameters. | Listing, creating, updating, or deleting browser tags. |
| references/browser-kernel-management.md | download-kernel, get-kernel-list parameters. | Downloading a specific kernel and querying supported kernel versions. |
| references/client-patch-management.md | update-patch parameters. | Updating AdsPower client to latest patch channel (stable/beta). |
| references/user-proxy-config.md | Full user_proxy_config field list (proxy_soft, proxy_type, proxy_host, proxy_port, etc.) and example. | Building inline proxy config for create-browser / update-browser when not using proxyid. |
| references/fingerprint-config.md | Full fingerprint_config field list (timezone, language, WebRTC, browser_kernel_config, random_ua, TLS, etc.) and example. | Building or editing fingerprint config for create-browser / update-browser. |
| references/browser-kernel-config.md | type and version for fingerprint_config.browser_kernel_config. Version must match type (Chrome vs Firefox). | Pinning or choosing a specific browser kernel (Chrome/Firefox and version) when creating or updating a browser. |
| references/browser-kernel-download-management.md | download-kernel parameters (kernel_type, kernel_version). | Downloading or updating a specific browser kernel version and polling progress/status. |
| references/ua-system-version.md | ua_system_version enum for fingerprint_config.random_ua: specific OS versions, generic “any version” per system, and omit behavior. | Constraining or randomizing UA by OS (e.g. Android only, or “any macOS version”) when creating or updating a browser. |
Use these when you need the exact allowed values or semantics; the main skill text above only summarizes.
© AdsPower, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 15 other files (references) in skills/adspower-browser of AdsPower/adspower-browser.
Open the folder on GitHubat commit 06dc59d
AdsPower Browser Profiles next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AdsPower Browser Profiles this skillAdsPower/adspower-browser | 142 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Agent Browserquran/quran.com-frontend-next | 1.9k | 42 repos | ~3.3k | Automated safety check: Pass | None | |
| Web Access via Browser CDPeze-is/web-access | 9.1k | 4 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Dev Browser AutomationMemTensor/MemOS | 12k | 3 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Browser Control with Omowrightcode-yeongyu/oh-my-openagent | 70k | 1 repos | ~2.2k | Automated safety check: Pass | Custom licence |
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
quran/quran.com-frontend-next
Automates browser interactions for web testing, form filling, screenshots, and data extraction.
eze-is/web-access
Routes every web task, from searching to logged-in browsing, through a tiered choice of search, fetch, curl or a real Chrome or Edge session driven over CDP.
MemTensor/MemOS
Automates a real browser through short TypeScript scripts that keep page state between runs, for navigating, filling forms, taking screenshots and extracting data.
code-yeongyu/oh-my-openagent
Drives a real browser through the omowright library, either the user's own signed-in browser or a separate browser the code launches, for forms, QA, screenshots and scraping.
vercel-labs/agent-browser
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
Categories
Manages AdsPower browser profiles, groups, proxies and the AdsPower client itself through the adspower-browser command line or its shorter aliases. The CLI, also callable under two shorter alias names, is a package-manager-style tool for AdsPower's local API, covering creating, updating, deleting and listing browser profiles plus their groups, tags and proxies, downloading and listing browser kernels, patching the client, and checking API status. It is triggered by requests to open, launch or configure an AdsPower environment or profile, and a reference file maps common phrasings, including Chinese ones for opening an existing environment, to the matching command.
AdsPower Browser Profiles fits situations like: opening or closing an AdsPower browser profile from the command line; creating, updating or listing AdsPower profiles, groups or tags; configuring a profile's proxy or fingerprint settings; checking AdsPower's API status or downloading a browser kernel.
Run `npx skills add AdsPower/adspower-browser --skill adspower-browser -a claude-code`. Or copy the skill folder (skills/adspower-browser in AdsPower/adspower-browser) into .claude/skills/adspower-browser in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AdsPower/adspower-browser --skill adspower-browser -a codex`. Or copy the skill folder (skills/adspower-browser in AdsPower/adspower-browser) into .agents/skills/adspower-browser in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AdsPower/adspower-browser --skill adspower-browser -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adspower-browser, .gemini/skills/adspower-browser, .github/skills/adspower-browser and .opencode/skills/adspower-browser in your project.
Going by SKILL.md and its folder, AdsPower Browser Profiles needs the command-line tools its instructions call (npm) and credentials named ADS_API_KEY. Our summary lists: Node.js and npm, to install the CLI; The AdsPower client running locally; An AdsPower API key.
SKILL.md names 1 domain. As links in the text: adspower.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AdsPower Browser Profiles is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with AdsPower Browser Profiles: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Agent Browser (quran/quran.com-frontend-next, 1.9k stars), Web Access via Browser CDP (eze-is/web-access, 9.1k stars) and Dev Browser Automation (MemTensor/MemOS, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AdsPower (a GitHub user) maintains it in AdsPower/adspower-browser, which has 142 GitHub stars. The repository was last updated on July 20, 2026.
Source: AdsPower/adspower-browser on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.