x-brand-operator
v1.0.0Automate X/Twitter brand account operations using OpenClaw native tools (xurl + browser fallback + cron). Use when setting up or managing automated posting, keyword engagement, weekly reporting, or Substack content generation for a brand account. Triggers on: "set up X posting for [brand]", "automat...
Installation
X Brand Operator
End-to-end X/Twitter brand account automation using xurl (X API v2) with browser fallback. No extra API keys beyond xurl app config.
Core Tools
xurl --app <app>— Post, reply, like, follow, search via X API v2browser— Fallback for posting/replying when xurl fails (profile: user)cron— Schedule recurring tasks (post, engage, report)message— Send Telegram alerts on failures or completions
Posting a Tweet
Primary (xurl):
xurl --app <app> post "<tweet text>"
Fallback (browser, only if xurl fails):
1. browser open → https://x.com/compose/post (profile: user)
2. Wait 4 seconds
3. browser snapshot → find text input ref
4. browser act → click input, type tweet
5. browser snapshot → find Post button ref
6. browser act → click Post
7. browser snapshot → confirm success
Rule: Try each method once only. On failure → notify via Telegram, include draft text, then exit. Never loop.
Replying to a Tweet
Primary: xurl --app <app> reply <tweet_id> "<reply text>"
Fallback: Open tweet URL in browser → snapshot → click Reply → type → submit.
Content Quality Standard (score before posting)
| Criterion | Weight |
|---|---|
| Hook strength | 25 pts |
| Value density | 25 pts |
| Platform fit | 20 pts |
| CTA clarity | 15 pts |
| Conciseness | 15 pts |
Minimum score: 70/100. Rewrite once if below threshold; do not post if still failing.
Format rules: Single paragraph, no line breaks, ≤ 280 chars, 1–2 hashtags, end with brand URL.
Content Pillar Rotation (daily posting)
Rotate through pillars by day of week. See references/content-strategy.md for pillar definitions, templates, and tone guide. Adapt pillars to the brand's positioning.
Keyword Engagement (weekly)
Search target keywords → filter genuine posts (skip bots/ads) → like + reply + follow author.
Reply quality rules: - Acknowledge the person's pain point first - Add 2–4 sentences of genuine value - Naturally mention the brand (no hard sell) - Never use "Great post!" / "So true!" filler
See references/engagement-playbook.md for keyword lists and reply templates.
Cron Job Setup
See references/cron-config.md for recommended schedules and full agentTurn prompt templates for:
- Morning post (UTC 14:00 daily)
- Evening post (UTC 20:00 daily)
- Weekly keyword engagement (Monday UTC 10:00)
- Weekly Substack draft (Wednesday UTC 13:00)
- Weekly report (Sunday UTC 21:00)
Failure Handling
| Situation | Action |
|---|---|
| xurl fails | Switch to browser fallback immediately |
| Browser also fails | Send Telegram alert with draft text, exit |
| Any step in engagement fails | Skip that item, continue to next |
| Always | Send Telegram summary at end of engagement/report runs |
Never retry more than once per method. Never loop.