| name | autocli-web-scraping |
| description | Blazing fast Rust CLI tool to fetch data from 55+ websites (Twitter, Reddit, YouTube, Bilibili, etc.) with single commands |
| triggers | ["fetch twitter trending topics","scrape reddit posts from subreddit","get bilibili hot videos","search xiaohongshu content","download youtube video transcript","extract data from any website","use autocli to get social media data","generate web scraper adapter with AI"] |
AutoCLI Web Scraping Skill
Skill by ara.so — Devtools Skills collection.
AutoCLI is a blazing fast, memory-safe command-line tool written in Rust that fetches information from 55+ websites with a single command. It covers Twitter/X, Reddit, YouTube, HackerNews, Bilibili, Zhihu, Xiaohongshu, and more, with support for browser session reuse, AI-powered adapter generation, and multi-format output.
Key Features:
- 55 sites, 333 commands built-in
- Browser session reuse (no token management needed)
- AI-powered adapter generation via autocli.ai
- Declarative YAML pipeline for custom adapters
- Single 4.7MB binary, zero runtime dependencies
- Up to 12x faster and 10x less memory than Node.js alternatives
Installation
One-line Install (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/nashsu/autocli/main/scripts/install.sh | sh
Manual Installation
Download the appropriate binary from GitHub Releases:
- macOS (Apple Silicon):
autocli-aarch64-apple-darwin.tar.gz
- macOS (Intel):
autocli-x86_64-apple-darwin.tar.gz
- Linux (x86_64):
autocli-x86_64-unknown-linux-musl.tar.gz
- Windows (x64):
autocli-x86_64-pc-windows-msvc.zip
Extract and place in your PATH:
tar -xzf autocli-*.tar.gz
sudo mv autocli /usr/local/bin/
Chrome Extension (Required for Browser Commands)
- Download
autocli-chrome-extension.zip from releases
- Extract to any directory
- Open
chrome://extensions
- Enable "Developer mode"
- Click "Load unpacked" and select the extracted folder
Public API commands (hackernews, devto, etc.) work without the extension.
Basic Usage
Discovery Commands
autocli --help
autocli twitter --help
autocli bilibili --help
autocli doctor
autocli list
Public API Commands (No Browser Required)
autocli hackernews top --limit 10
autocli hackernews search "rust" --limit 5
autocli devto top --limit 10
autocli lobsters hot --limit 10
autocli stackoverflow hot --limit 10
autocli arxiv search "machine learning" --limit 5
autocli wikipedia search "rust programming"
autocli linux-do hot --limit 10
Browser-Based Commands (Requires Extension + Login)
autocli twitter trending
autocli twitter search "rust lang" --limit 10
autocli twitter timeline --limit 20
autocli reddit frontpage --limit 10
autocli reddit subreddit rust --limit 15
autocli bilibili hot --limit 20
autocli bilibili search "rust programming" --limit 10
autocli xiaohongshu search "travel" --limit 10
autocli zhihu hot --limit 10
autocli youtube search "rust tutorial" --limit 5
autocli weibo hot --limit 10
Output Formats
AutoCLI supports multiple output formats for easy integration with other tools:
autocli hackernews top --limit 5
autocli hackernews top --limit 5 --format json
autocli hackernews top --limit 5 --format yaml
autocli hackernews top --limit 5 --format csv
autocli hackernews top --limit 5 --format markdown
JSON Processing with jq
autocli hackernews top --limit 5 --format json | jq '.[].title'
autocli hackernews top --limit 20 --format json | jq '.[] | select(.score > 100)'
autocli reddit frontpage --limit 50 --format json | jq 'length'
AI-Powered Features
AutoCLI integrates with autocli.ai for AI-powered adapter generation and sharing.
Authentication
autocli auth
This opens your browser to get an API token and saves it to ~/.autocli/config.json.
Generate Adapters with AI
Use the Chrome extension to visually select data elements:
- Navigate to any website in Chrome
- Click the AutoCLI extension icon
- Use the selector tool to pick data elements
- Click "Generate" to let AI create the adapter
- The adapter is saved locally and synced to autocli.ai
Search Community Adapters
autocli search https://news.ycombinator.com
autocli search producthunt.com
Searches autocli.ai for community-shared adapters. Select one to download and use immediately.
Environment Variables
export AUTOCLI_API_BASE=https://custom-server.com
Advanced Usage
Download Media
autocli youtube download "https://youtube.com/watch?v=..."
autocli bilibili download "https://www.bilibili.com/video/..."
autocli xiaohongshu download "https://www.xiaohongshu.com/..."
Social Media Interactions
autocli twitter post "Hello from AutoCLI!"
autocli twitter reply TWEET_ID "Great post!"
autocli twitter like TWEET_ID
autocli twitter bookmark TWEET_ID
autocli twitter follow USERNAME
autocli twitter bookmarks --limit 10
autocli reddit upvote POST_ID
autocli reddit comment POST_ID "Interesting discussion"
autocli reddit subscribe SUBREDDIT_NAME
autocli reddit saved --limit 10
autocli xiaohongshu publish --title "My Post" --content "Content here" --images "image1.jpg,image2.jpg"
Job Search (BOSS Zhipin)
autocli boss search "Rust developer" --city "Beijing"
autocli boss greet JOB_ID "Hello, I'm interested in this position"
autocli boss batchgreet JOB_ID1,JOB_ID2,JOB_ID3 "Hello, I'm interested"
autocli boss chatlist
autocli boss chatmsg BOSS_ID
Shell Completion
Generate shell completions for better autocomplete experience:
autocli completion bash >> ~/.bashrc
autocli completion zsh >> ~/.zshrc
autocli completion fish > ~/.config/fish/completions/autocli.fish
autocli completion powershell >> $PROFILE
Configuration
AutoCLI stores configuration in ~/.autocli/config.json:
{
"api_token": "your-autocli-ai-token",
"browser_ws_endpoint": "ws://localhost:9222",
"default_format": "table",
"adapters_dir": "~/.autocli/adapters"
}
Creating Custom Adapters
AutoCLI uses declarative YAML pipelines for custom adapters. Adapters are stored in ~/.autocli/adapters/.
Example Adapter Structure
name: example-site
description: Example site adapter
version: 1.0.0
author: Your Name
commands:
- name: hot
description: Get hot posts
mode: public
pipeline:
- step: fetch
url: https://api.example.com/hot
method: GET
- step: extract
selector: $.data[*]
fields:
- name: title
path: $.title
- name: url
path: $.url
- name: score
path: $.score
- step: output
format: table
Adapter Modes
- public: Uses public APIs, no authentication needed
- browser: Requires Chrome extension and browser session
Pipeline Steps
- fetch: HTTP request to target URL
- extract: Extract data using JSON path or CSS selectors
- transform: Modify/filter extracted data
- output: Format and display results
Integration with AI Agents
Register in Agent Configuration
Add to .cursorrules or AGENT.md:
autocli list
autocli hackernews top --limit 10 --format json
autocli twitter search "topic" --format json
Register Local CLI Tools
autocli register gh
autocli register docker
autocli register kubectl
Common Patterns
Pipeline Data from Multiple Sites
autocli hackernews top --limit 5 --format json > hn.json
autocli lobsters hot --limit 5 --format json > lobsters.json
autocli devto top --limit 5 --format json > devto.json
jq -s 'add' hn.json lobsters.json devto.json > combined.json
Monitor Topics Across Platforms
#!/bin/bash
TOPIC="rust"
echo "=== Hacker News ==="
autocli hackernews search "$TOPIC" --limit 3
echo "=== Reddit ==="
autocli reddit search "$TOPIC" --limit 3
echo "=== Twitter ==="
autocli twitter search "$TOPIC" --limit 3
echo "=== Dev.to ==="
autocli devto tag "$TOPIC" --limit 3
Archive Bookmarks
autocli twitter bookmarks --limit 100 --format json > bookmarks_$(date +%Y%m%d).json
autocli reddit saved --limit 100 --format json > reddit_saved_$(date +%Y%m%d).json
Troubleshooting
Browser Connection Issues
autocli doctor
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
google-chrome --remote-debugging-port=9222
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
Authentication Errors
autocli auth
cat ~/.autocli/config.json | jq '.api_token'
rm ~/.autocli/config.json
autocli auth
Command Not Found
which autocli
autocli --help
curl -fsSL https://raw.githubusercontent.com/nashsu/autocli/main/scripts/install.sh | sh
Rate Limiting
Some sites may rate-limit requests. Use --limit to reduce request size:
autocli twitter search "topic" --limit 5
autocli twitter timeline --limit 10 --delay 1000
Extension Not Connecting
- Ensure Chrome extension is enabled
- Check extension has permissions for target sites
- Verify autocli daemon is running
- Restart browser and extension
Performance Tips
- Use
--format json for processing with other tools
- Limit results with
--limit for faster responses
- Public API commands are faster than browser commands
- Browser commands reuse logged-in sessions (no token refresh)
- Use
--quiet flag to suppress progress output in scripts
Resources