Controlling X/Twitter with the OpenClaw browser tool. A browser-based alternative to the bird CLI.
Prerequisites
Environment Requirements
- OpenClaw with browser tool enabled
openclawbrowser profile- Logged in to an X/Twitter account
For a Headless Server
Xvfb virtual display required (see Prerequisites in the spool skill)
Login (only once)
browser action=start profile=openclaw
browser action=open profile=openclaw targetUrl="https://x.com/login"
# 사용자에게 수동 로그인 요청
Usage
1. Reading the Timeline
browser action=open profile=openclaw targetUrl="https://x.com/home"
browser action=snapshot profile=openclaw compact=true
In each article, you can check the author, content, and like/retweet/reply counts.
2. Composing a Tweet
Step 1: Find the textbox on the home page
browser action=open profile=openclaw targetUrl="https://x.com/home"
browser action=snapshot profile=openclaw compact=true
→ textbox "Post text" find ref
Step 2: Enter the content
browser action=act profile=openclaw request={"kind":"click","ref":"<textbox-ref>"}
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"트윗 내용"}
Step 3: Click the Post button
browser action=snapshot profile=openclaw compact=true
→ button "Post" find ref (the one that is not disabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<post-ref>"}
3. Liking
In the timeline, within an article, button "Like" or button "X Likes. Like" find the ref and then:
browser action=act profile=openclaw request={"kind":"click","ref":"<like-ref>"}
4. Retweeting
button "Repost" or button "X reposts. Repost" find the ref and then:
browser action=act profile=openclaw request={"kind":"click","ref":"<repost-ref>"}
browser action=snapshot profile=openclaw compact=true
# "Repost" 옵션 선택
browser action=act profile=openclaw request={"kind":"click","ref":"<repost-option-ref>"}
5. Replying
Method 1: From the timeline
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
browser action=snapshot profile=openclaw compact=true
# 답글 입력창에 텍스트 입력 후 Reply 버튼 클릭
Method 2: From the tweet page
browser action=open profile=openclaw targetUrl="https://x.com/username/status/1234567890"
browser action=snapshot profile=openclaw compact=true
# 답글 입력창 찾아서 입력
6. Viewing a Profile
browser action=open profile=openclaw targetUrl="https://x.com/username"
browser action=snapshot profile=openclaw compact=true
7. Search
browser action=open profile=openclaw targetUrl="https://x.com/search?q=검색어&src=typed_query"
browser action=snapshot profile=openclaw compact=true
8. Follow
On the profile page, button "Follow" find the ref and then:
browser action=act profile=openclaw request={"kind":"click","ref":"<follow-ref>"}
Key Points
- snapshot first - check the current state before any action
- ref changes every time - always find it anew from the snapshot
- compact=true - saves tokens
- article structure - each tweet is an article element, containing the author/content/buttons inside
- confirm before tweeting - get the content confirmed by the user
Troubleshooting
| Problem | Solution |
|---|---|
| browser 안 됨 | Check Xvfb, DISPLAY=:99, restart the Gateway |
| Not logged in | /logingo to and log in manually |
| Post button disabled | Check the text input |
| Rate limit | Wait a moment and retry |
vs bird CLI
| Feature | bird CLI | chirp (browser) |
|---|---|---|
| Installation | requires brew | only needs Xvfb |
| Authentication | cookie extraction | browser session |
| Stability | API-based | UI-dependent (subject to change) |
| Speed | fast | slightly slow |