Skip to main content

Free Browser Agent CLI — undetectable browser automation for AI agents. Controls your real browser via CDP.

Project description

FreeAct — Free Browser Agent CLI

Browser automation for AI agents that cannot be detected as automation.

Python 3.12+ License: MIT Platform Version

FreeAct controls your real browser — the one you use every day. No new profiles, no re-logins, no lost passwords. Anti-bot systems see a normal user, because it IS your normal browser.

Quick Start (30 seconds)

# 1. Install
pip install freeact
playwright install chromium

# 2. That's it! A shortcut "Yandex (FreeAct)" appears on your desktop.
#    Use it for daily browsing — freeact connects anytime.

# 3. Connect to your browser
freeact connect
# → Connected! 5 tabs — your profile, passwords, everything intact

# 4. Interact with any page
freeact --session live state               # 96 indexed elements
freeact --session live input 12 "iPhone"   # Type in search
freeact --session live keys Enter          # Press Enter
freeact --session live wait stable         # Wait for results
freeact --session live get markdown        # Extract content

# 5. Extract any URL (no browser needed)
freeact stealth-extract https://example.com

# 6. Solve CAPTCHAs (free, multi-strategy)
freeact --session live solve-captcha

How It Works

You open Yandex (FreeAct) shortcut → normal browsing, all your logins work
                                          ↓
                            Browser runs with CDP on port 9222
                                          ↓
              freeact connect → attaches to YOUR browser
                                          ↓
              AI agent controls YOUR tabs, YOUR logins, YOUR pages

No copying, no restarting, no re-logging in. The browser you use every day.

Features

Live Browser Mode — Control Your Real Browser

freeact connect                     # Connect to your running browser
freeact tabs                        # List all open tabs
freeact tab switch 0                # Switch to a tab
freeact tab new https://site.com    # Open new tab
freeact tab close 2                 # Close tab

# All commands work on current tab (session: live)
freeact --session live state        # Indexed elements
freeact --session live click 6      # Click by index
freeact --session live input 2 "text"
freeact --session live get markdown

CAPTCHA Solver — Free & Multi-Strategy

freeact --session live solve-captcha

Audio → speech-to-text. OCR → image recognition. Behavioral → mouse simulation. reCAPTCHA v2, hCaptcha, Cloudflare Turnstile. All free.

Daemon Mode — Persistent Browser

freeact daemon start     # HTTP server on 127.0.0.1:9341
freeact daemon stop      # Commands are instant when daemon runs

Standalone Browser — For Anti-Bot Sites

freeact browser create --name wb --desc "Wildberries"
freeact --session wb browser open <id> https://www.wildberries.ru

Launches browser via subprocess. Zero automation flags. Undetectable.

Remote Assist & Skill Forge

freeact --session live remote-assist --objective "Log in"
freeact forge --name scraper --url https://site.com

All Commands

Group Commands
Setup setup — create desktop shortcut (auto-runs on first launch)
Live Browser connect, tabs, tab switch/close/new
Daemon daemon start/stop/status
Browser browser create/open/list/update/delete/types
Navigation navigate, back, forward, reload
Interaction click, input, hover, select, keys, scroll, scrollintoview, upload
Extraction get title/text/html/markdown/value, eval, screenshot
Network network requests/request/clear
CAPTCHA solve-captcha
Remote remote-assist
Skill forge
Session session list/close
Other stealth-extract, get-skills, proxy, wait

Browser Support

Type Browser TLS Fingerprint Anti-Bot
yandex Yandex Browser Yandex native Bypasses Wildberries, Ozon, Avito
chrome Google Chrome Chrome native General use
edge Microsoft Edge Edge native Enterprise
chromium Playwright Chromium Standard Headless only

Project Structure

freeact/
├── freeact/
│   ├── cli.py           # Typer CLI — 40+ commands
│   ├── live.py          # Live browser (CDP — user's real browser)
│   ├── daemon.py        # HTTP server for persistent browser
│   ├── browser.py       # Real browser launch + CDP
│   ├── captcha.py       # Multi-strategy CAPTCHA solver
│   ├── session.py       # Session persistence
│   ├── state.py         # Indexed element tree [N]
│   ├── interaction.py   # click, input, hover, scroll, upload
│   ├── extraction.py    # get markdown/text/html, screenshot, eval
│   ├── network.py       # XHR/fetch interception
│   ├── stealth.py       # Anti-detection patches
│   ├── proxy.py         # SOCKS5/HTTP proxy
│   ├── remote.py        # Remote assist
│   ├── skillforge.py    # Skill generator
│   ├── skills.py        # get-skills for AI agents
│   └── config.py        # ~/.freeact/ configuration
├── SKILL.md             # OpenCode/Claude Code skill
└── pyproject.toml       # Package config

Installation

pip install freeact
playwright install chromium

A «Yandex (FreeAct)» shortcut appears on your desktop automatically. Use it for daily browsing. FreeAct connects anytime.

Optional Dependencies

pip install SpeechRecognition   # Audio CAPTCHA
pip install pytesseract          # Image CAPTCHA (also needs Tesseract installed)

For AI Agents (OpenCode, Claude Code, Cursor)

Install freeact skill from https://github.com/xuviga/freeact

Or manually: cp SKILL.md ~/.config/opencode/skills/freeact/SKILL.md

How It Beats Anti-Bot

Protection FreeAct
IP reputation Same IP as user's normal browsing
WebDriver detection No --enable-automation flag
Canvas/WebGL fingerprint Real browser GPU + stealth patches
reCAPTCHA Free audio/OCR solver
Turnstile (Cloudflare) Human-like behavioral simulation
Profile/cookie check Real profile — user's actual cookies
Session/auth check Already logged in everywhere

Changelog

v0.3.1 — Auto-Setup

  • Desktop shortcut auto-created on first run
  • connect never kills or restarts browser
  • Original profile used directly — no copy, no data loss

v0.3.0 — Live Browser Mode

  • connect, tabs, tab switch/close/new
  • --session live for real browser control

v0.2.0 — Daemon, CAPTCHA, Remote, Forge

  • Daemon mode, CAPTCHA solver (4 strategies), Remote assist, Skill Forge

v0.1.0 — Initial Release

  • Real browser mode, indexed interaction, network capture, stealth extraction

License

MIT — no API keys, no paid tiers, no cloud.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freeact_cli-0.3.1.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freeact_cli-0.3.1-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file freeact_cli-0.3.1.tar.gz.

File metadata

  • Download URL: freeact_cli-0.3.1.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for freeact_cli-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b005909594b4b4796e6130ef2d6beb3e017ae188725c6cbc779e47a73dd3265e
MD5 4ac3f7316677640d4f8be606d02ef635
BLAKE2b-256 67c99031c16113051cedd1251d1fba3dea313241a123ee5528297eb1478270d9

See more details on using hashes here.

File details

Details for the file freeact_cli-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: freeact_cli-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 44.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for freeact_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e651031556c4a8ee9a4df2d3ce3d6b978de2c14c00f7cbcbb70219179c54be43
MD5 da4a997c4a375943ae452fb48c440427
BLAKE2b-256 4aedfccbe256dc1300285a7ce5b1fed576d9bd8787f809af7a4b04b9965405e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page