en un clic
threads-scraper
// Scrape posts from Threads (threads.com) profiles. Handles login, infinite scroll, and post extraction. Use when the user wants to fetch posts from a Threads profile.
// Scrape posts from Threads (threads.com) profiles. Handles login, infinite scroll, and post extraction. Use when the user wants to fetch posts from a Threads profile.
| name | threads-scraper |
| description | Scrape posts from Threads (threads.com) profiles. Handles login, infinite scroll, and post extraction. Use when the user wants to fetch posts from a Threads profile. |
| allowed-tools | Bash(robot:*), AskUserQuestion, Read |
robotThreads requires Instagram login to view all posts on a profile. Without login, only the 2 most recent posts are visible.
robot CLI must be installed and on PATH (~/go/bin/robot)export PATH="$HOME/go/bin:$PATH"export PATH="$HOME/go/bin:$PATH"
# Clean up stale state if needed
rm -f /tmp/robot.pid
robot start
If "daemon already running" error occurs:
robot stop
# If stop fails with "no such process":
rm -f /tmp/robot.pid
robot start
IMPORTANT: Always ask the user for credentials using AskUserQuestion. Never hardcode or store credentials.
# 1. Navigate to login page
robot navigate "https://www.threads.com/login"
# Wait for page load
sleep 2
# 2. Enter credentials (ask user first via AskUserQuestion)
robot type "input[autocomplete='username']" "<USERNAME>"
robot type "input[autocomplete='current-password']" "<PASSWORD>"
sleep 1
# 3. Click login button (use form div[role='button'], NOT button[type='submit'])
robot click "form div[role='button']"
# 4. Wait for redirect (login causes HTTP 500 briefly, this is normal)
sleep 8
HTTP 500 after login: Threads often returns a server error page immediately after login. This is expected. Simply navigate away:
robot navigate "https://www.threads.com/"
sleep 3
The session/cookies are still valid despite the error.
QR code popup: If you click the wrong element, a QR code popup ("Get the app") may appear. If this happens, re-navigate to the login page instead of trying to close it.
Verify login success: After login, navigate to home and check for logged-in indicators:
robot navigate "https://www.threads.com/"
sleep 3
robot screenshot
# Read the screenshot - look for "What's new?" input and "Post" button
# If "Log in" button is shown at top-right, login failed
Own profile check: When viewing your own profile while logged in, the page shows "Edit profile" button instead of "Follow".
robot navigate "https://www.threads.com/@USERNAME"
sleep 3
robot text
robot does not have a built-in scroll command. To load more posts on infinite-scroll pages:
robot click on elements near the bottom of the visible area to trigger scroll behavior.Extract text after each scroll attempt:
robot text
robot stop
| Element | Selector |
|---|---|
| Username input | input[autocomplete='username'] |
| Password input | input[autocomplete='current-password'] |
| Login button | form div[role='button'] |
| Profile tabs | Text-based: Threads, Replies, Media, Reposts |
Present extracted posts in a structured format:
### Post N (timestamp) - Topic
[Post content]
- Likes: N, Comments: N, Shares: N
form div[role='button'] not button[type='submit'] - Threads uses custom div-based buttons.text over screenshot: Text extraction is token-efficient. Only screenshot when debugging layout issues.robot stop when finished.Automates browser interactions for web browsing, scraping, form filling, screenshots, and UI interaction. Use when the user needs to visit a webpage, check a live site, scrape content, fill forms, take screenshots, or interact with a web UI.
Automates browser interactions for web browsing, scraping, form filling, screenshots, and UI interaction. Use when the user needs to visit a webpage, check a live site, scrape content, fill forms, take screenshots, or interact with a web UI.