masslab-sii/reddit-browser-automation
This skill provides tools and techniques for Postmill/Reddit-like forum automation. Includes account creation, posting, forum creation and wiki management. Suitable for tasks requiring complex operations on forum platforms.
npx skills add https://github.com/MassLab-SII/open-agent-skills --skill reddit-browser-automation
This skill is based on Playwright MCP tools, providing automation capabilities for Reddit-like forum platforms (Postmill).
In forum automation, we distinguish two types of operations:
Use Cases:
Usage:
# Usage:
# python sign_up.py <username> <password> <username_ref> <password_ref> <password_repeat_ref> <submit_ref>
# Example:
python sign_up.py "AIDataAnalyst2025" "SecurePass123!" e35 e43 e44 e54
Use Cases:
Usage:
# Usage:
# python create_post.py <title> <body> <title_ref> <body_ref> <create_btn_ref>
# Example:
python create_post.py "My Post Title" "Post body content here" e58 e63 e82
Note: The body text can contain multiple lines. Each line should start with a dash (-) for proper formatting.
Use Cases:
Usage:
# Usage:
# python create_forum.py <name> <title> <description> <sidebar> <name_ref> <title_ref> <desc_ref> <sidebar_ref> <create_btn_ref>
# Example:
python create_forum.py "BudgetEuropeTravel" "Budget Travel Europe" "Community for sharing money-saving tips" "Share your best deals!" e51 e56 e61 e69 e83
Use Cases:
Usage:
# Usage:
# python create_wiki.py <url_path> <title> <body> <url_ref> <title_ref> <body_ref> <save_btn_ref>
# Example:
python create_wiki.py "europe-travel-guide" "Complete Budget Travel Guide" "Wiki content here" e51 e56 e62 e69
Below are the basic tool functions and their use cases. These are atomic operations for flexible combination.
Note: Code should be written without line breaks.
# Standard format (browser persists across calls)
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999')"
navigate(url: str)Use Cases:
Example:
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999')"
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999/f/MachineLearning')"
navigate_back()Use Cases:
Example:
python run_browser_ops.py -c "await browser.navigate_back()"
click(ref: str, element: Optional[str] = None)Use Cases:
Example:
# Click Forums link
python run_browser_ops.py -c "await browser.click(ref='e22', element='Forums link')"
# Click a post title
python run_browser_ops.py -c "await browser.click(ref='e77', element='Post title link')"
# Click Upvote button
python run_browser_ops.py -c "await browser.click(ref='e94', element='Upvote button')"
type_text(ref: str, text: str, element: Optional[str] = None)Use Cases:
Example:
# Enter username
python run_browser_ops.py -c "await browser.type_text(ref='e35', text='MyUsername', element='Username field')"
# Enter post body
python run_browser_ops.py -c "await browser.type_text(ref='e63', text='Post content here', element='Body textbox')"
select_option(ref: str, element_desc: str, value: str)Use Cases:
Example:
# Select timezone
python run_browser_ops.py -c "await browser.select_option(ref='e56', element_desc='Time zone combobox', value='Europe / Amsterdam')"
press_key(key: str)Use Cases:
Example:
python run_browser_ops.py -c "await browser.press_key('Enter')"
snapshot()Use Cases:
Example:
python run_browser_ops.py -c "await browser.snapshot()"
Best Practices:
# Navigate to homepage
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999')"
# Click Sort by dropdown
python run_browser_ops.py -c "await browser.click(ref='e54', element='Sort by: Hot dropdown')"
Use snapshot() in the following situations:
http://localhost:9999Take masslab-sii/reddit-browser-automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.