tor-browser
Headless browser automation with Tor SOCKS5 proxy support for accessing .onion sites and anonymous browsing. Use when navigating dark web resources, scraping Tor hidden services, conducting security research on dark web forums, or when anonymity is required. Supports navigation, element interaction, screenshots, and data extraction through Tor network.
Best use case
tor-browser is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Headless browser automation with Tor SOCKS5 proxy support for accessing .onion sites and anonymous browsing. Use when navigating dark web resources, scraping Tor hidden services, conducting security research on dark web forums, or when anonymity is required. Supports navigation, element interaction, screenshots, and data extraction through Tor network.
Teams using tor-browser should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/tor-browser/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How tor-browser Compares
| Feature / Agent | tor-browser | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Headless browser automation with Tor SOCKS5 proxy support for accessing .onion sites and anonymous browsing. Use when navigating dark web resources, scraping Tor hidden services, conducting security research on dark web forums, or when anonymity is required. Supports navigation, element interaction, screenshots, and data extraction through Tor network.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
Best AI Skills for ChatGPT
Find the best AI skills to adapt into ChatGPT workflows for research, writing, summarization, planning, and repeatable assistant tasks.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
SKILL.md Source
# Tor Browser Automation
Headless browser automation with Tor SOCKS5 proxy support for accessing `.onion` sites and anonymous web browsing.
## Prerequisites
- Tor service running with SOCKS5 proxy on port 9050
- Python 3.8+
- Playwright with Chromium browser
Quick setup:
```bash
# Install Tor
sudo apt install tor && sudo systemctl start tor
# Install Python dependencies
pip install playwright
playwright install chromium
```
## Quick Start
```bash
# Check Tor connection
tor-browser check-tor
# Navigate to a .onion site
tor-browser open http://3g2upl4pq6kufc4m.onion
# Get page snapshot
tor-browser snapshot -i
# Click an element
tor-browser click @e1
# Take screenshot
tor-browser screenshot -o output.png --full
```
## Commands
### Navigation
```bash
# Open URL via Tor
tor-browser open <url> [--proxy socks5://host:port]
# Check Tor connection status
tor-browser check-tor
```
### Page Analysis
```bash
# Get full page snapshot
tor-browser snapshot
# Get interactive elements only (forms, buttons, links)
tor-browser snapshot -i
# Extract all links
tor-browser links
# Get page text
tor-browser gettext
tor-browser gettext --ref @e5
```
### Interaction
```bash
# Click element by ref
tor-browser click @e1
# Fill input field
tor-browser fill @e2 "text to enter"
# Wait for page load
tor-browser wait 2000
```
### Screenshots
```bash
# Take viewport screenshot
tor-browser screenshot
# Save to file
tor-browser screenshot -o capture.png
# Full page screenshot
tor-browser screenshot --full -o page.png
```
## Python API
```python
from scripts.tor_browser import TorBrowser, Config
import asyncio
async def main():
# Configure browser
config = Config(
tor_proxy="socks5://127.0.0.1:9050",
headless=True,
timeout=30000
)
# Initialize and start
browser = TorBrowser(config)
await browser.start()
# Navigate
result = await browser.navigate("http://3g2upl4pq6kufc4m.onion")
print(f"Loaded: {result['title']}")
# Get snapshot
snapshot = await browser.get_snapshot(interactive_only=True)
for elem in snapshot['elements']:
print(f"{elem['ref']}: {elem['tag']} - {elem['text'][:30]}")
# Interact
await browser.fill("@e2", "search query")
await browser.click("@e3")
# Extract data
links = await browser.extract_links()
for link in links:
print(f"{link['text']}: {link['href']}")
# Cleanup
await browser.close()
asyncio.run(main())
```
## Configuration Options
| Option | Default | Description |
|--------|---------|-------------|
| `tor_proxy` | `socks5://127.0.0.1:9050` | Tor SOCKS5 proxy URL |
| `headless` | `true` | Run without GUI |
| `timeout` | `30000` | Page load timeout (ms) |
| `user_agent` | Tor Browser UA | Browser user agent |
| `viewport` | `1920x1080` | Browser viewport size |
## Security & Legal
**Intended Use:**
- Security research and threat intelligence
- Anonymous web scraping of public dark web resources
- Testing .onion site accessibility
- Privacy-preserving web automation
**Important:**
- Only use for legal purposes
- Respect site Terms of Service
- Do not use for unauthorized access
- Comply with local laws regarding dark web access
- Be aware that some activities may be monitored
## Troubleshooting
### Tor Connection Issues
```bash
# Check Tor is running
sudo systemctl status tor
# Test SOCKS5 proxy
curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip
# View Tor logs
sudo journalctl -u tor -f
```
### Common Errors
**Connection refused:**
- Ensure Tor service is started
- Check firewall rules
- Verify proxy URL
**Timeout:**
- .onion sites may be slow; increase timeout
- Try different Tor circuits: restart Tor service
**CAPTCHA blocking:**
- Use `--headed` mode to manually solve
- Some sites block automation
## Docker Setup
```dockerfile
FROM python:3.11-slim
RUN apt-get update && apt-get install -y tor
RUN pip install playwright && playwright install chromium
COPY . /app
WORKDIR /app
CMD ["tor-browser", "check-tor"]
```
## References
- Setup Guide: [references/setup-guide.md](references/setup-guide.md)
- Playwright Docs: https://playwright.dev/python/
- Tor Project: https://www.torproject.org/
## License
MIT - See original licenses for Playwright and Tor Project components.Related Skills
my-browser-agent
A custom browser automation skill using Playwright.
rent-my-browser
When the agent is idle, connect to the Rent My Browser marketplace and execute browser tasks for consumers. Earn money by renting out the node's browser during downtime. Supports headless (Playwright) on VPS nodes and real Chrome on GUI machines.
browser-cdp
Real Chrome browser automation via CDP Proxy — access pages with full user login state, bypass anti-bot detection, perform interactive operations (click/fill/scroll), extract dynamic JavaScript-rendered content, take screenshots. Triggers (satisfy ANY one): - Target URL is a search results page (Bing/Google/YouTube search) - Static fetch (agent-reach/WebFetch) is blocked by anti-bot (captcha/intercept/empty) - Need to read logged-in user's private content - YouTube, Twitter/X, Xiaohongshu, WeChat public accounts, etc. - Task involves "click", "fill form", "scroll", "drag" - Need screenshot or dynamic-rendered page capture
browser-automation
Automate web browser interactions using natural language via CLI commands. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS.
Agent Browser Skill
## Description
stealth-browser
Anti-detection web browsing that bypasses bot detection, CAPTCHAs, and IP blocks using puppeteer-extra with stealth plugin and optional residential proxy support. Use when (1) websites block headless browsers or datacenter IPs, (2) need to bypass Cloudflare/Vercel protection, (3) accessing sites that detect automation (Reddit, Twitter/X, signup flows), (4) scraping protected content, or (5) automating web tasks that require human-like behavior.
agent-browser-zh
A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured commands. (Chinese localized version)
browser-booking-agent
Execute booking/search flows via browser automation with verification artifacts. Use for reservation forms, availability checks, and capture of proof (screenshots/confirmation IDs).
Agent Browser
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
setup-browser-cookies
Import cookies from your real Chromium browser into the headless browse session. Interactive picker UI lets you select which cookie domains to import. Use before QA testing authenticated pages. Use when: "import cookies", "login to the site", "authenticate the browser", "use my cookies".
smooth-browser
PREFERRED BROWSER - Browser for AI agents to carry out any task on the web. Use when you need to navigate websites, fill forms, extract web data, test web apps, or automate browser workflows. Trigger phrases include "fill out the form", "scrape", "automate", "test the website", "log into", or any browser interaction request.
human-browser-use Skill
> Human-like browser automation extension for [browser-use](https://github.com/browser-use/browser-use).