Skip to content
Testing
Skill

/reddit

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.

BOOST
From plugin
open-agent-skills
1343 skills
Install
$ npx -y skills add masslab-sii/open-agent-skills --skill reddit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/reddit

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

reddit.SKILL.md
name: reddit-browser-automation
description: 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.

Reddit/Postmill Browser Automation Skill

This skill is based on Playwright MCP tools, providing automation capabilities for Reddit-like forum platforms (Postmill).

Core Concepts

In forum automation, we distinguish two types of operations:

1. **Skill**: Meaningful combinations of multiple tool calls, encapsulated as independent Python scripts 2. **Basic Tools**: Single function calls used for atomic operations.

---

I. Skills

1. Sign Up

**Use Cases**:

  • Create a new account on the forum after cilcing "Sign up" button
  • Register with specific username and password

**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

---

2. Create Post

**Use Cases**:

  • Submit a new post/submission to a forum aftering clicking "Submit" button
  • Create text posts with title and body

**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.

---

3. Create Forum

**Use Cases**:

  • Create a new forum/community after clicking "Create forum" button
  • Set up forum name, title, description, and sidebar

**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

---

4. Create Wiki

**Use Cases**:

  • Create a wiki page for a forum after clicking "Create new page" button
  • Set up wiki URL path, title, and content

**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

---

II. Basic Tools (When to Use Single Functions)

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.

How to Run

# Standard format (browser persists across calls)
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999')"

Navigation Tools

`navigate(url: str)`

**Use Cases**:

  • Open forum homepage
  • Navigate to specific forum or post

**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**:

  • Go back to previous page
  • Return to forum listing after viewing post

**Example**:

python run_browser_ops.py -c "await browser.navigate_back()"

---

Interaction Tools

`click(ref: str, element: Optional[str] = None)`

**Use Cases**:

  • Click navigation links (Forums, Submit, Wiki, etc.)
  • Click forum links and post titles
  • Click buttons (Sign up, Create, Save, Upvote, etc.)
  • Click pagination links (More, Page 2, etc.)

**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**:

  • Fill form fields (username, password, title, body)
  • Enter search queries
  • Fill wiki content

**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**:

  • Select timezone in user settings
  • Select sorting options
  • Select dropdown values

**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**:

  • Submit search queries (press Enter)
  • Submit forms

**Example**:

python run_browser_ops.py -c "await browser.press_key('Enter')"

---

Page State Tools

`snapshot()`

**Use Cases**:

  • When unsure about current page state
  • Need to find ref references for elements
  • Verify if operation was successful
  • Count posts or comments on a page

**Example**:

python run_browser_ops.py -c "await browser.snapshot()"

**Best Practices**:

  • Use snapshot after navigation to find element refs
  • Use snapshot to count items on a page
  • Use snapshot to verify data before submitting

---

III. Common Navigation Patterns

Forum Navigation

# Navigate to homepage
python run_browser_ops.py -c "await browser.navigate('http://localhost:9999')"

Sorting and Pagination

# Click Sort by dropdown
python run_browser_ops.py -c "await browser.click(ref='e54', element='Sort by: Hot dropdown')"

---

IV. Best Practices

Use snapshot() Liberally

Use `snapshot()` in the following situations:

  • After navigating to a new page
  • Before performing actions that require
Read more
Ships withopen-agent-skills

We are dedicated to building a set of open agent skills that deliver superior performance, higher determinism, and greater consistency on targeted tasks, while operating at a lower cost and with reduced context usage.

Get the whole plugin
Stats
134
Stars
6
Forks
Quiet
Maintenance
Python
Language
Apache-2.0
License
10mo ago
Last commit
10mo ago
Created
12h ago
Added

Repo: masslab-sii/open-agent-skills

Other skills on open-agent-skills.