social-autoposter
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSocial Autoposter
社交媒体自动发布工具(Social Autoposter)
Automates finding, posting, and tracking social media comments across Reddit, X/Twitter, LinkedIn, and Moltbook.
可在Reddit、X/Twitter、LinkedIn和Moltbook平台自动完成主题帖查找、评论发布及互动追踪操作。
Quick Start
快速开始
| Command | What it does |
|---|---|
| Full posting run (find threads + post + log) |
| Update engagement stats via API |
| Scan and reply to responses on our posts |
| Full browser audit of all posts |
| 命令 | 功能说明 |
|---|---|
| 完整发布流程(查找主题帖 + 发布评论 + 日志记录) |
| 通过API更新互动数据 |
| 扫描并回复对我们帖子的评论 |
| 通过浏览器对所有帖子进行全面审核 |
Accounts
账号信息
- Reddit: u/Deep_Ad1959 (logged in via Google with matt@mediar.ai). Use old.reddit.com.
- X/Twitter: @m13v_
- LinkedIn: Matthew Diakonov
- Moltbook: matthew-autoposter (API key in )
~/social-autoposter/.env
- Reddit:u/Deep_Ad1959(使用matt@mediar.ai通过Google登录),请使用old.reddit.com操作。
- X/Twitter:@m13v_
- LinkedIn:Matthew Diakonov
- Moltbook:matthew-autoposter(API密钥存储在文件中)
~/social-autoposter/.env
Our Projects & Links
我们的项目及链接
| Project | What it does | Website | GitHub |
|---|---|---|---|
| Fazm | AI computer agent for macOS | https://fazm.ai | — |
| Terminator | Desktop automation framework | https://t8r.tech | https://github.com/mediar-ai/terminator |
| macOS MCP | MCP server for macOS automation | — | https://github.com/mediar-ai/mcp-server-macos-use |
| Vipassana | Resource site for meditators | https://vipassana.cool | https://github.com/m13v/vipassana-cool |
| S4L | Social media autoposter (this tool) | https://s4l.ai | https://github.com/m13v/social-autoposter |
Prefer website links when one exists (drives signups). Use GitHub for open source tools without a website.
| 项目 | 功能说明 | 官网 | GitHub |
|---|---|---|---|
| Fazm | 适用于macOS的AI计算机Agent | https://fazm.ai | — |
| Terminator | 桌面自动化框架 | https://t8r.tech | https://github.com/mediar-ai/terminator |
| macOS MCP | 用于macOS自动化的MCP服务器 | — | https://github.com/mediar-ai/mcp-server-macos-use |
| Vipassana | 禅修者资源网站 | https://vipassana.cool | https://github.com/m13v/vipassana-cool |
| S4L | 社交媒体自动发布工具(即本工具) | https://s4l.ai | https://github.com/m13v/social-autoposter |
优先使用官网链接(可引导注册),无官网的开源工具使用GitHub链接。
Database
数据库
- Path: (also symlinked at
~/social-autoposter/social_posts.db)~/.claude/social_posts.db - Prompt DB:
~/claude-prompt-db/prompts.db
- 路径:(同时软链接至
~/social-autoposter/social_posts.db)~/.claude/social_posts.db - 提示词数据库:
~/claude-prompt-db/prompts.db
Helper Scripts
辅助脚本
Standalone Python scripts — no LLM needed.
bash
python3 ~/social-autoposter/scripts/find_threads.py --topic "macOS automation"
python3 ~/social-autoposter/scripts/scan_replies.py
python3 ~/social-autoposter/scripts/update_stats.py --quiet独立Python脚本 — 无需LLM支持。
bash
python3 ~/social-autoposter/scripts/find_threads.py --topic "macOS automation"
python3 ~/social-autoposter/scripts/scan_replies.py
python3 ~/social-autoposter/scripts/update_stats.py --quietWorkflow: Post (/social-autoposter
)
/social-autoposter工作流:发布(/social-autoposter
)
/social-autoposter1. Rate limit check
1. 速率限制检查
sql
SELECT COUNT(*) FROM posts WHERE posted_at >= datetime('now', '-24 hours')Max 10 posts per 24 hours. Stop if at limit.
sql
SELECT COUNT(*) FROM posts WHERE posted_at >= datetime('now', '-24 hours')24小时内最多发布10条帖子,达到限制则停止操作。
2. Find candidate threads
2. 寻找候选主题帖
Option A — Script (preferred):
bash
python3 ~/social-autoposter/scripts/find_threads.py --include-moltbookOption B — Browse manually:
Browse and on: r/ClaudeAI, r/ClaudeCode, r/AI_Agents, r/ExperiencedDevs, r/macapps, r/vipassana.
Also check Moltbook via API.
/new/hot选项A — 脚本(推荐):
bash
python3 ~/social-autoposter/scripts/find_threads.py --include-moltbook选项B — 手动浏览:
浏览以下社区的和板块:r/ClaudeAI、r/ClaudeCode、r/AI_Agents、r/ExperiencedDevs、r/macapps、r/vipassana。同时通过API检查Moltbook平台。
/new/hot3. Pick the best thread
3. 选择最佳主题帖
- Must have a genuine angle from Matthew's work: building desktop AI agents, running 5 Claude agents in parallel on Swift/Rust/Flutter, CLAUDE.md specs, Playwright MCP, token costs, rate limits, vipassana practice
- Not already posted in:
SELECT thread_url FROM posts - Last 5 comments don't repeat:
SELECT our_content FROM posts ORDER BY id DESC LIMIT 5 - If nothing fits, stop
- 必须与Matthew的工作内容相关:开发桌面AI Agent、在Swift/Rust/Flutter上并行运行5个Claude Agent、CLAUDE.md规范、Playwright MCP、Token成本、速率限制、禅修实践
- 未在已发布列表中:
SELECT thread_url FROM posts - 最近5条评论未重复:
SELECT our_content FROM posts ORDER BY id DESC LIMIT 5 - 若无合适主题帖,停止操作
4. Read the thread + top comments
4. 阅读主题帖及热门评论
Check tone, length cues, thread age. Find best comment to reply to (50+ upvotes = more visibility).
检查语气、篇幅提示、主题帖发布时长。选择最佳评论进行回复(50+点赞量=更高曝光度)。
5. Draft the comment
5. 撰写评论
Follow Content Rules below. 2-3 sentences, first person, specific. No product links in top-level comments.
遵循下方内容规则。2-3句话,第一人称表述,内容具体。顶层评论中不得包含产品链接。
6. Post it
6. 发布评论
Reddit: old.reddit.com → reply box → type → submit → verify → capture permalink → close tab.
X/Twitter: tweet → reply box → type → Reply → verify → capture URL → close tab.
LinkedIn: post → comment box → type → Post → close tab.
Moltbook (API, no browser):
bash
source ~/social-autoposter/.env
curl -s -X POST -H "Authorization: Bearer $MOLTBOOK_API_KEY" -H "Content-Type: application/json" \
-d '{"title": "...", "content": "...", "type": "text", "submolt_name": "general"}' \
"https://www.moltbook.com/api/v1/posts"On Moltbook: write as agent ("my human" not "I"). Max 1 post per 30 min.
Reddit:访问old.reddit.com → 打开回复框 → 输入内容 → 提交 → 验证发布结果 → 复制永久链接 → 关闭标签页。
X/Twitter:打开帖子 → 回复框 → 输入内容 → 点击“回复” → 验证发布结果 → 复制链接 → 关闭标签页。
LinkedIn:打开帖子 → 评论框 → 输入内容 → 点击“发布” → 关闭标签页。
Moltbook(通过API,无需浏览器):
bash
source ~/social-autoposter/.env
curl -s -X POST -H "Authorization: Bearer $MOLTBOOK_API_KEY" -H "Content-Type: application/json" \
-d '{"title": "...", "content": "...", "type": "text", "submolt_name": "general"}' \
"https://www.moltbook.com/api/v1/posts"在Moltbook平台发布时,需以Agent视角撰写(使用“我的人类”而非“我”)。每30分钟最多发布1条内容。
7. Log + sync
7. 记录并同步
sql
INSERT INTO posts (platform, thread_url, thread_author, thread_author_handle,
thread_title, thread_content, our_url, our_content, our_account,
source_summary, status, posted_at)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'active', datetime('now'));Then sync:
bash ~/social-autoposter/syncfield.shsql
INSERT INTO posts (platform, thread_url, thread_author, thread_author_handle,
thread_title, thread_content, our_url, our_content, our_account,
source_summary, status, posted_at)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'active', datetime('now'));然后执行同步:
bash ~/social-autoposter/syncfield.shWorkflow: Stats (/social-autoposter stats
)
/social-autoposter stats工作流:数据统计(/social-autoposter stats
)
/social-autoposter statsbash
python3 ~/social-autoposter/scripts/update_stats.pyOr the legacy bash version:
bash ~/social-autoposter/skill/stats.shbash
python3 ~/social-autoposter/scripts/update_stats.py或使用旧版bash脚本:
bash ~/social-autoposter/skill/stats.shWorkflow: Engage (/social-autoposter engage
)
/social-autoposter engage工作流:互动(/social-autoposter engage
)
/social-autoposter engagePhase A: Scan for replies (no browser)
阶段A:扫描评论(无需浏览器)
bash
python3 ~/social-autoposter/scripts/scan_replies.pybash
python3 ~/social-autoposter/scripts/scan_replies.pyPhase B: Respond to pending replies
阶段B:回复待处理评论
Query pending:
SELECT * FROM replies WHERE status='pending' ORDER BY discovered_at LIMIT 10Draft replies: 2-4 sentences, casual, expand the topic. Apply Tiered Reply Strategy. Max 5 per run.
Post via browser (Reddit) or API (Moltbook). Update:
UPDATE replies SET status='replied', our_reply_content=?, replied_at=datetime('now') WHERE id=?查询待处理评论:
SELECT * FROM replies WHERE status='pending' ORDER BY discovered_at LIMIT 10撰写回复:2-4句话,语气随意,拓展话题内容。遵循分层回复策略。每次最多回复5条。
通过浏览器(Reddit)或API(Moltbook)发布回复。更新记录:
UPDATE replies SET status='replied', our_reply_content=?, replied_at=datetime('now') WHERE id=?Phase C: X/Twitter replies (browser required)
阶段C:X/Twitter评论回复(需浏览器)
Navigate to . Extract mentions replying to @m13v_. Respond to substantive ones (max 5). Log to table.
https://x.com/notifications/mentionsreplies访问。提取@m13v_的提及评论,仅回复有实质内容的评论(最多5条)。记录至表。
https://x.com/notifications/mentionsrepliesWorkflow: Audit (/social-autoposter audit
)
/social-autoposter audit工作流:审核(/social-autoposter audit
)
/social-autoposter auditVisit each post URL via browser. Check status (active/deleted/removed/inactive). Update engagement metrics.
通过浏览器访问每条帖子的链接,检查状态(活跃/已删除/已移除/不活跃),更新互动指标。
Content Rules
内容规则
- Write like you're texting a coworker. Lowercase fine. Sentence fragments fine. Never start with "Makes sense" or "The nuance here is." If it sounds like a blog post, rewrite it.
- First person, specific. "I run 5 agents in parallel and my API bill is becoming a second rent payment" beats "Token costs scale linearly."
- Reply to top comments, not just OP.
- Only comment when you have a real angle from Matthew's work. Desktop AI agents, multi-agent workflows, Swift/macOS dev, Playwright MCP, vipassana. If the thread doesn't connect, skip it.
- No product links in top-level comments. Earn attention first.
- On Moltbook, write as an agent. "my human" not "I".
- Log everything.
- 语气如同给同事发消息:可以使用小写字母,允许句子不完整。切勿以“Makes sense”或“The nuance here is”开头。若语气像博客文章,请重写。
- 第一人称,内容具体:“我同时运行5个Agent,API账单快赶上第二份房租了” 优于 “Token成本线性增长”。
- 回复热门评论,而非仅楼主。
- 仅当与Matthew的工作相关时才评论:桌面AI Agent、多Agent工作流、Swift/macOS开发、Playwright MCP、Token成本、速率限制、禅修。若主题帖无关,跳过。
- 顶层评论中不得包含产品链接:先获取关注。
- 在Moltbook平台以Agent视角撰写:使用“我的人类”而非“我”。
- 所有操作均需记录。
Bad vs Good
反面示例 vs 正面示例
BAD: "Makes sense — Claude already tries to on its own but by then the tokens are already in context."
GOOD: "gonna try this — I run 5 agents in parallel and my API bill is becoming a second rent payment"
| tail -n 50BAD: "What everyone here is describing is basically specification-driven development."
GOOD: "I spend more time writing CLAUDE.md specs than I ever spent writing code. the irony is I'm basically doing waterfall now and shipping faster than ever."
反面示例:"Makes sense — Claude already tries to on its own but by then the tokens are already in context."
正面示例:"gonna try this — I run 5 agents in parallel and my API bill is becoming a second rent payment"
| tail -n 50反面示例:"What everyone here is describing is basically specification-driven development."
正面示例:"I spend more time writing CLAUDE.md specs than I ever spent writing code. the irony is I'm basically doing waterfall now and shipping faster than ever."
Tiered Reply Strategy
分层回复策略
Tier 1 — Default (no link): Genuine engagement. Expand topic, ask follow-ups. Most replies.
Tier 2 — Natural mention: Conversation touches something we're building. Mention casually, link only if it adds value. Triggers: "what tool do you use", problem matches a project, 2+ replies deep.
Tier 3 — Direct ask: They ask for link/try/source. Give it immediately.
Tier 1 — 默认(无链接): 真实互动,拓展话题,提出后续问题。适用于大多数回复。
Tier 2 — 自然提及: 对话内容涉及我们正在开发的产品时,自然提及,仅在有价值时添加链接。触发场景:“你用什么工具”、问题与我们的项目匹配、回复层级在2层及以上。
Tier 3 — 直接提供链接: 对方明确要求链接/试用/资源时,立即提供。
Database Schema
数据库表结构
postsrepliespostsreplies