adspower-browser
v2.0.2
Published
AdsPower Local API CLI and Cursor/agent skill for browser profiles, groups, proxies.
Downloads
1,108
Maintainers
Readme
adspower-browser
AdsPower browser automation CLI for AI agents.
Install CLI (npm)
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.
Install as Cursor / Agent Skill
Skills live at the repo root. Install with:
npx skills add AdsPower/adspower-browser- Project scope (default): skill goes to
.cursor/skills/adspower-browser/(or your agent’s skills dir). - Global: add
-g(e.g.~/.cursor/skills/for Cursor).
Usage with AI Agents
Use the CLI in terminal or let the agent run it; the installed skill gives the agent context on when and how to call adspower-browser (profiles, groups, proxies, etc.).
How to Run
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 the following command.
ads startTwo 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 asprofile_no)ads new-fingerprint <profile_id>(single ID; a numeric token is treated asprofile_no)
JSON string — full parameters for any command (see Command Reference below):
ads open-browser '{"profile_id":"abc123","launch_args":"..."}'- Commands with no params: omit
<arg>or use'{}'.
Essential Commands With CLI
You can use ads -h or ads <command> -h to view the specific parameters.
Start and stop CLI
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 runtimeBrowser profile – open/close
ads 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)Browser profile – create/update/delete/list
ads create-browser '{"group_id":"0","user_proxy_config":{"proxy_soft":"no_proxy"},...}' # group_id + account field required; proxy optional (defaults to no_proxy; proxyid takes priority over user_proxy_config when both given)
ads update-browser '{"profile_id":"...",...}' # profile_id required
ads delete-browser '{"profile_id":["..."]}' # profile_id required
ads get-browser-list '{}' # 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 paramsBrowser profile – move/cookies/UA/fingerprint/cache/share/active
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 protected]"}' # 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 100Group
ads 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?Application (categories)
ads check-status # No params – API availability
ads get-application-list '{"category_id":"123","page":1,"limit":20}'Proxy
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 100Tag
ads get-tag-list '{}' # limit?, page?, ids?
ads create-tag '{"tags":[{"name":"test","color":"darkBlue"}]}' # name required, color?: darkBlue|blue|purple|red|yellow|orange|green|lightGreen
ads update-tag '{"tags":[{"id":"...","name":"test2","color":"yellow"}]}' # id required,name?, color?: darkBlue|blue|purple|red|yellow|orange|green|lightGreen
ads delete-tag '{"ids":["..."]}' # ids required, max 100Kernel
ads get-kernel-list '{"kernel_type":"Chrome"}' # kernel_type?:Chrome|Firefox
ads download-kernel '{"kernel_type":"Chrome","kernel_version":"..."}' # kernel_type:Chrome|Firefox required,kernel_version requiredUpdate Patch
ads update-patch '{"version_type":"stable"}' # version_type?:stable|beta