Automate a 30-day Reddit marketing campaign through your Chrome browser. No Reddit API keys needed.
A Chrome extension + kimi AI handles karma building, seeding comments, and posting — all through your actual logged-in browser session.
┌──────────────┐ WebSocket ┌─────────────────┐ Chrome ┌────────┐ │ Python CLI │◄──(port 9877)──►│ Chrome Extension │◄── CDP/DOM ──►│ Reddit │ │ main.py │ │ background.js │ │ │ └──────┬───────┘ └────────┬────────┘ └────────┘ │ │ campaign.toml Your login session SQLite DB (no API keys) - Configure your product, target subreddits, and tone in
campaign.toml - A 30-day schedule is auto-generated in 4 phases
- kimi AI writes contextual comments/posts based on existing discussions
- The Chrome extension automates browser actions via Chrome DevTools Protocol
- Everything is tracked in a local SQLite database
- Python 3.11+
- Google Chrome
- Reddit account (logged in via Chrome)
- kimi CLI — AI-powered comment and post generation
# Clone git clone https://github.com/user/reddit-campaign-cli.git cd reddit-campaign-cli # Install Python dependencies python3 -m venv .venv source .venv/bin/activate pip install click rich websockets # Install Chrome extension # 1. Open chrome://extensions # 2. Enable "Developer mode" (top right) # 3. Click "Load unpacked" → select the extension/ folder # Log into Reddit in Chrome # Create your campaign config cp campaign.example.toml campaign.toml # Edit campaign.toml with your product info# Interactive setup (creates campaign.toml) python main.py campaign init # Or copy and edit the example cp campaign.example.toml campaign.tomlEdit campaign.toml with your product info:
[product] name = "My App" url = "https://github.com/user/my-app" tagline = "A short description of your app" category = "developer_tool" # developer_tool, saas, app, service, community [reddit] username = "my_reddit_account" [targets] # Subreddits for karma building (NO product mentions) karma_subs = [ {sub = "programming", keywords = ["developer tools", "productivity"]}, {sub = "webdev", keywords = ["frontend", "dev experience"]}, ] # Subreddits for seeding (naturally mention your product) seed_subs = [ {sub = "SideProject", keywords = ["side project", "indie dev"]}, ] # Subreddits for direct posts (ordered small → large) post_subs = [ {sub = "SideProject", title_hint = "Sharing my project"}, {sub = "programming", title_hint = "Developer tool introduction"}, ] [content] karma_tone = "helpful_expert" # helpful_expert, friendly_user, curious_learner seed_tone = "casual_mention" # casual_mention, experience_share, comparison [limits] karma_comments_per_day = 4 seed_comments_per_day = 2 posts_per_day = 1 min_delay_seconds = 90 max_delay_seconds = 180# See the full 30-day schedule python main.py browser --schedule # Dry run — shows what would happen without posting anything python main.py browser --dry-run # Preview generated comments for a specific day python main.py campaign preview 5# Run the next incomplete day python main.py browser # Start from a specific day python main.py browser --day 5 # Run all remaining days in sequence python main.py browser --all # Adjust delay between days (default 30s) python main.py browser --all --delay 60When you run python main.py browser, it:
- Starts a WebSocket server on port 9877
- Waits for the Chrome extension to connect
- Verifies you're logged into Reddit
- Executes the day's tasks (karma comments, seeding, posts)
- Saves results to
data/campaign.db
# Campaign progress overview python main.py browser --status # Detailed activity history python main.py campaign history # Daily strategy report python main.py report # Terminal dashboard python main.py dashboard # Web dashboard (opens localhost:8090) python main.py web# View full 30-day plan with task details python main.py campaign plan # View a specific day's plan python main.py campaign day 10 # Customize a day's tasks python main.py campaign edit-day 5 \ --clear-tasks \ --add-karma commandline:terminal,cli \ --add-seed webdev:developer tools # Reset a day to re-run it python main.py campaign reset 5 # Revert a day to auto-generated schedule python main.py campaign edit-day 5 --revertThe campaign runs in 4 phases, automatically generated from your campaign.toml:
| Phase | Days | Activity | Goal |
|---|---|---|---|
| 1 | 1–8 | Karma building only | Build account credibility |
| 2 | 9–15 | Karma + light seeding | Start natural product mentions |
| 3 | 16–22 | Seeding + first posts | Begin content posting |
| 4 | 23–30 | Full campaign | Posts + seeding + monitoring |
| Task | Description |
|---|---|
| KARMA | Helpful comments on target subs (no product mention) |
| SEED | Naturally mention your product in relevant discussions |
| POST | Submit a post to a subreddit |
| MONITOR | Check existing posts for new comments |
| REST | No activity |
| REVIEW | Collect metrics + review performance |
- Pre-flight checks — Account health, daily limits, and timing grade before every action
- Daily limits — Configurable max posts and comments per day
- Random delays — 90–180s between actions to avoid bot detection
- Timing blocks — Automatically avoids low-traffic hours (EST night)
- Duplicate prevention — Skips already-commented posts and already-posted subreddits
- 3-level comment fallback — JS injection → CDP retry → full page reload retry
├── extension/ # Chrome extension │ ├── manifest.json │ ├── background.js # Service Worker (WebSocket + CDP) │ ├── popup.html/js # Extension popup UI │ └── record-content.js # Content script ├── src/ │ ├── cli.py # Click CLI │ ├── autopilot_browser.py # Browser automation orchestrator │ ├── pi_browser_client.py # WebSocket server (extension communication) │ ├── pi_browser.py # Reddit browser actions │ ├── marketing/engine.py # Marketing engine (safety checks/limits) │ ├── schedule.py # 30-day schedule generator │ ├── comment_generator.py # AI comment generation (kimi CLI) │ ├── state.py # SQLite state management │ └── display.py # Rich terminal UI ├── main.py # Entry point ├── campaign.example.toml # Campaign config template └── pyproject.toml # Dependencies - Usage Guide — Detailed setup and command reference
- Architecture — Module structure, data flow, DB schema
This tool is for educational and personal marketing purposes. Use responsibly and in compliance with Reddit's Terms of Service. The authors are not responsible for any account actions resulting from use of this tool.