--- name: chirp description: "X/Twitter CLI using OpenClaw browser tool. Use when the user wants to interact with X/Twitter: reading timeline, posting tweets, liking, retweeting, replying, or searching. Alternative to bird CLI for environments without Homebrew." homepage: https://github.com/zizi-cat/chirp metadata: {"clawdhub":{"emoji":"๐Ÿฆ"}} --- # chirp OpenClaw browser ๋„๊ตฌ๋กœ X/Twitter ์กฐ์ž‘ํ•˜๊ธฐ. bird CLI์˜ browser ๊ธฐ๋ฐ˜ ๋Œ€์•ˆ. ## Prerequisites ### ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ - OpenClaw with browser tool enabled - `openclaw` browser profile - X/Twitter ๊ณ„์ • ๋กœ๊ทธ์ธ ์™„๋ฃŒ ### Headless ์„œ๋ฒ„์ธ ๊ฒฝ์šฐ Xvfb ๊ฐ€์ƒ ๋””์Šคํ”Œ๋ ˆ์ด ํ•„์š” (spool ์Šคํ‚ฌ์˜ Prerequisites ์ฐธ๊ณ ) ### ๋กœ๊ทธ์ธ (์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ) ``` browser action=start profile=openclaw browser action=open profile=openclaw targetUrl="https://x.com/login" # ์‚ฌ์šฉ์ž์—๊ฒŒ ์ˆ˜๋™ ๋กœ๊ทธ์ธ ์š”์ฒญ ``` --- ## ์‚ฌ์šฉ๋ฒ• ### 1. ํƒ€์ž„๋ผ์ธ ์ฝ๊ธฐ ``` browser action=open profile=openclaw targetUrl="https://x.com/home" browser action=snapshot profile=openclaw compact=true ``` ๊ฐ article์—์„œ ์ž‘์„ฑ์ž, ๋‚ด์šฉ, ์ข‹์•„์š”/๋ฆฌํŠธ์œ—/๋‹ต๊ธ€ ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ. ### 2. ํŠธ์œ— ์ž‘์„ฑ **Step 1: ํ™ˆ์—์„œ ํ…์ŠคํŠธ๋ฐ•์Šค ์ฐพ๊ธฐ** ``` browser action=open profile=openclaw targetUrl="https://x.com/home" browser action=snapshot profile=openclaw compact=true ``` โ†’ `textbox "Post text"` ref ์ฐพ๊ธฐ **Step 2: ๋‚ด์šฉ ์ž…๋ ฅ** ``` browser action=act profile=openclaw request={"kind":"click","ref":""} browser action=act profile=openclaw request={"kind":"type","ref":"","text":"ํŠธ์œ— ๋‚ด์šฉ"} ``` **Step 3: Post ๋ฒ„ํŠผ ํด๋ฆญ** ``` browser action=snapshot profile=openclaw compact=true ``` โ†’ `button "Post"` ref ์ฐพ๊ธฐ (disabled ์•„๋‹Œ ๊ฒƒ) ``` browser action=act profile=openclaw request={"kind":"click","ref":""} ``` ### 3. ์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ ํƒ€์ž„๋ผ์ธ์—์„œ article ๋‚ด `button "Like"` ๋˜๋Š” `button "X Likes. Like"` ref ์ฐพ์•„์„œ: ``` browser action=act profile=openclaw request={"kind":"click","ref":""} ``` ### 4. ๋ฆฌํŠธ์œ— `button "Repost"` ๋˜๋Š” `button "X reposts. Repost"` ref ์ฐพ์•„์„œ: ``` browser action=act profile=openclaw request={"kind":"click","ref":""} browser action=snapshot profile=openclaw compact=true # "Repost" ์˜ต์…˜ ์„ ํƒ browser action=act profile=openclaw request={"kind":"click","ref":""} ``` ### 5. ๋‹ต๊ธ€ ๋‹ฌ๊ธฐ **๋ฐฉ๋ฒ• 1: ํƒ€์ž„๋ผ์ธ์—์„œ** ``` browser action=act profile=openclaw request={"kind":"click","ref":""} browser action=snapshot profile=openclaw compact=true # ๋‹ต๊ธ€ ์ž…๋ ฅ์ฐฝ์— ํ…์ŠคํŠธ ์ž…๋ ฅ ํ›„ Reply ๋ฒ„ํŠผ ํด๋ฆญ ``` **๋ฐฉ๋ฒ• 2: ํŠธ์œ— ํŽ˜์ด์ง€์—์„œ** ``` browser action=open profile=openclaw targetUrl="https://x.com/username/status/1234567890" browser action=snapshot profile=openclaw compact=true # ๋‹ต๊ธ€ ์ž…๋ ฅ์ฐฝ ์ฐพ์•„์„œ ์ž…๋ ฅ ``` ### 6. ํ”„๋กœํ•„ ๋ณด๊ธฐ ``` browser action=open profile=openclaw targetUrl="https://x.com/username" browser action=snapshot profile=openclaw compact=true ``` ### 7. ๊ฒ€์ƒ‰ ``` browser action=open profile=openclaw targetUrl="https://x.com/search?q=๊ฒ€์ƒ‰์–ด&src=typed_query" browser action=snapshot profile=openclaw compact=true ``` ### 8. ํŒ”๋กœ์šฐ ํ”„๋กœํ•„ ํŽ˜์ด์ง€์—์„œ `button "Follow"` ref ์ฐพ์•„์„œ: ``` browser action=act profile=openclaw request={"kind":"click","ref":""} ``` --- ## ํ•ต์‹ฌ ํฌ์ธํŠธ 1. **snapshot ๋จผ์ €** - ๋ชจ๋“  ์ž‘์—… ์ „์— ํ˜„์žฌ ์ƒํƒœ ํ™•์ธ 2. **ref๋Š” ๋งค๋ฒˆ ๋‹ฌ๋ผ์ง** - snapshot์—์„œ ํ•ญ์ƒ ์ƒˆ๋กœ ์ฐพ๊ธฐ 3. **compact=true** - ํ† ํฐ ์ ˆ์•ฝ 4. **article ๊ตฌ์กฐ** - ๊ฐ ํŠธ์œ—์€ article ์š”์†Œ, ๋‚ด๋ถ€์— ์ž‘์„ฑ์ž/๋‚ด์šฉ/๋ฒ„ํŠผ๋“ค 5. **ํŠธ์œ— ์ „ ํ™•์ธ** - ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‚ด์šฉ ํ™•์ธ๋ฐ›๊ธฐ --- ## ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… | ๋ฌธ์ œ | ํ•ด๊ฒฐ | |------|------| | browser ์•ˆ ๋จ | Xvfb ํ™•์ธ, DISPLAY=:99, Gateway ์žฌ์‹œ์ž‘ | | ๋กœ๊ทธ์ธ ์•ˆ ๋จ | `/login`์œผ๋กœ ์ด๋™ ํ›„ ์ˆ˜๋™ ๋กœ๊ทธ์ธ | | Post ๋ฒ„ํŠผ disabled | ํ…์ŠคํŠธ ์ž…๋ ฅ ํ™•์ธ | | Rate limit | ์ž ์‹œ ๋Œ€๊ธฐ ํ›„ ์žฌ์‹œ๋„ | --- ## vs bird CLI | ๊ธฐ๋Šฅ | bird CLI | chirp (browser) | |------|----------|-----------------| | ์„ค์น˜ | brew ํ•„์š” | Xvfb๋งŒ ์žˆ์œผ๋ฉด ๋จ | | ์ธ์ฆ | ์ฟ ํ‚ค ์ถ”์ถœ | ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ | | ์•ˆ์ •์„ฑ | API ๊ธฐ๋ฐ˜ | UI ์˜์กด (๋ณ€๊ฒฝ ๊ฐ€๋Šฅ) | | ์†๋„ | ๋น ๋ฆ„ | ์•ฝ๊ฐ„ ๋А๋ฆผ |