octop-browser Browser Automation
SkillWeb & browsingAI browser automation via CDP. Use when you need to control a browser, navigate pages, click elements, fill forms, extract content, or take screenshots.
Use octop-browser Browser Automation in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add octop-browser Browser Automation and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the octop-browser Browser Automation skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by tencentcloud/octop-browser in skills/octop-browser/SKILL.md and read by Ahel’s review.
You drive a real Chrome browser via the Chrome DevTools Protocol (CDP) by
running the octop-browser CLI through the Bash tool. Each invocation
attaches to the same Chrome process per profile, so a sequence of commands
shares one persistent session.
Core Rules
- Always run
dom-treebeforeclick— refs expire on navigation. - Default to
--level interactive(~200-500 tokens) to get clickable/typeable elements. - Use
--level minimal(~50 tokens) only to confirm page state or URL. - Use
--level full(~1000-3000 tokens) only when reading page content. - Use
--level structuredwhen you need JSON for programmatic processing. - Never hardcode coordinates — always pass
--reffromdom-tree. - Use named profiles to persist login state across runs:
--profile work,--profile github. - On CDP error: run
dom-tree --level minimalto check state, then retry. - Tear down with
close-session --profile <name>when finished — Chrome itself keeps running so you can reattach later.
Standard Workflow
# 1. Navigate
octop-browser navigate "https://example.com" --profile default
# 2. Get interactive elements with refs
octop-browser dom-tree --profile default
# Output:
# [ref=inp_1] input[text] placeholder="Search"
# [ref=btn_2] button "Search"
# 3. Act using refs — never coordinates
octop-browser click --ref inp_1 --profile default
octop-browser type "hello" --profile default
octop-browser click --ref btn_2 --profile default
# 4. (optional) capture proof
octop-browser screenshot --path /tmp/result.png --profile default
Add --json to any command when you want the full structured ToolResult
(success / content / metrics / metadata / error) instead of the human-readable
default.
Commands Reference
| Command | Required args | Common options |
|---|---|---|
navigate <url> | url | --profile, --json |
dom-tree | — | --level {minimal,interactive,full,structured} |
screenshot | — | --full-page, --element-ref REF, --path PATH |
click | one of --ref REF / --selector CSS / --xy X Y | |
type <text> | text | --ref REF (click before typing) |
scroll | — | --direction {up,down,left,right}, --amount N |
hover <ref> | ref | |
eval-js <expression> | expression | |
go-back / go-forward / reload | — | |
list-tabs | — | |
new-tab | — | --url URL |
switch-tab <tab_id> | tab_id | |
close-tab | — | --tab-id ID |
close-session | — | (only --profile) |
All action commands accept --profile, --json, and one of
--auto / --headed / --headless (the launch-mode flag is only honoured
on the first call per profile — Chrome is reused after that).
Screenshots
screenshot writes a PNG to disk and prints its path (not base64).
With --json, the response also includes metadata carrying
url / title / width / height / size_kb / full_page.
- Default path:
BROWSER_USE_SCREENSHOTS_DIR/octop-<timestamp>.png(default~/.octop-browser/screenshots/) --full-page— capture the entire scrollable page in one call--element-ref btn_2— crop to a specific element (mutually exclusive with--full-page; element wins)--path /tmp/latest.png— pin the file path; every call overwrites it
Configuration (environment variables)
All knobs are env-driven; no code changes between dev / CI / prod.
| Variable | Default | Use |
|---|---|---|
BROWSER_USE_MODE | auto | auto / headed / headless (auto picks based on DISPLAY) |
BROWSER_USE_PROFILES_DIR | ~/.octop-browser/profiles | Where Chrome user-data-dirs live |
BROWSER_USE_SCREENSHOTS_DIR | ~/.octop-browser/screenshots | Default screenshot output directory |
BROWSER_USE_CHROME_BIN | auto-detect | Path to Chrome (also auto-detects Playwright's bundled Chromium) |
BROWSER_USE_CDP_HOST | localhost | Remote/Docker Chrome host |
BROWSER_USE_CDP_WS_URL | — | Bypass launcher; connect directly to a WS URL |
Login State Reuse
Profile data lives in ~/.octop-browser/profiles/<name>/. Reusing the same
profile name in future sessions reuses Chrome cookies — no re-authentication
needed.
# First run: log in manually (needs a desktop / headed mode)
octop-browser navigate "https://github.com/login" --profile github --headed
# ... complete login in browser ...
# All future runs: login reused automatically
octop-browser navigate "https://github.com" --profile github
Installation
pip install octop-browser
# Chrome or Chromium required:
# Ubuntu: sudo apt install chromium-browser
# macOS: brew install --cask google-chrome
# Or, no system browser: octop-browser install-browser
# (auto-installs `playwright` then downloads a Chromium binary; set
# OCTOP_SKIP_PLAYWRIGHT_PIP=1 to skip the pip step)
Python API (alternative)
If you'd rather embed octop-browser in a Python script instead of shelling
out, the same actions are available as from octop_browser import browser_tool
returning a ToolResult. The CLI is the recommended path for skill / agent
use — it's stateless from the caller's perspective and round-trips through
the shell cleanly.
Repository
Signals
- GitHub stars
- 29
- Forks
- 9
- Last commit
- Oct 2026
Ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
octop-browser- Source
- github.com/tencentcloud/octop-browser
github.com/tencentcloud/octop-browser
Related picks
Skill · leoyeai
The pick for Data Extractionagent-browser
Skill · 101-skills
The pick for Data Extractionbrowser-type
Skill · openakita
The pick for Form Fillingcompare-screenshots
Skill · dzhng
The pick for Screenshotsagent-first-screenshots
Skill · devin-axis
The pick for Screenshotsbrowser-use
Skill · browser-use
More in Web & browsing