mirror of
https://github.com/JimLiu/baoyu-skills.git
synced 2026-07-30 21:59:47 +08:00
163 lines
6.8 KiB
Markdown
163 lines
6.8 KiB
Markdown
---
|
|
name: baoyu-post-to-x
|
|
description: Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation. Use when user asks to "post to X", "tweet", "publish to Twitter", or "share on X".
|
|
---
|
|
|
|
# Post to X (Twitter)
|
|
|
|
Posts text, images, videos, and long-form articles to X via real Chrome browser (bypasses anti-bot detection).
|
|
|
|
## Script Directory
|
|
|
|
**Important**: All scripts are located in the `scripts/` subdirectory of this skill.
|
|
|
|
**Agent Execution Instructions**:
|
|
1. Determine this SKILL.md file's directory path as `SKILL_DIR`
|
|
2. Script path = `${SKILL_DIR}/scripts/<script-name>.ts`
|
|
3. Replace all `${SKILL_DIR}` in this document with the actual path
|
|
|
|
**Script Reference**:
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `scripts/x-browser.ts` | Regular posts (text + images) |
|
|
| `scripts/x-video.ts` | Video posts (text + video) |
|
|
| `scripts/x-quote.ts` | Quote tweet with comment |
|
|
| `scripts/x-article.ts` | Long-form article publishing (Markdown) |
|
|
| `scripts/md-to-html.ts` | Markdown → HTML conversion |
|
|
| `scripts/copy-to-clipboard.ts` | Copy content to clipboard |
|
|
| `scripts/paste-from-clipboard.ts` | Send real paste keystroke |
|
|
|
|
## Preferences (EXTEND.md)
|
|
|
|
Use Bash to check EXTEND.md existence (priority order):
|
|
|
|
```bash
|
|
# Check project-level first
|
|
test -f .baoyu-skills/baoyu-post-to-x/EXTEND.md && echo "project"
|
|
|
|
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
|
|
test -f "$HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md" && echo "user"
|
|
```
|
|
|
|
┌──────────────────────────────────────────────────┬───────────────────┐
|
|
│ Path │ Location │
|
|
├──────────────────────────────────────────────────┼───────────────────┤
|
|
│ .baoyu-skills/baoyu-post-to-x/EXTEND.md │ Project directory │
|
|
├──────────────────────────────────────────────────┼───────────────────┤
|
|
│ $HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md │ User home │
|
|
└──────────────────────────────────────────────────┴───────────────────┘
|
|
|
|
┌───────────┬───────────────────────────────────────────────────────────────────────────┐
|
|
│ Result │ Action │
|
|
├───────────┼───────────────────────────────────────────────────────────────────────────┤
|
|
│ Found │ Read, parse, apply settings │
|
|
├───────────┼───────────────────────────────────────────────────────────────────────────┤
|
|
│ Not found │ Use defaults │
|
|
└───────────┴───────────────────────────────────────────────────────────────────────────┘
|
|
|
|
**EXTEND.md Supports**: Default Chrome profile | Auto-submit preference
|
|
|
|
## Prerequisites
|
|
|
|
- Google Chrome or Chromium
|
|
- `bun` runtime
|
|
- First run: log in to X manually (session saved)
|
|
|
|
## References
|
|
|
|
- **Regular Posts**: See `references/regular-posts.md` for manual workflow, troubleshooting, and technical details
|
|
- **X Articles**: See `references/articles.md` for long-form article publishing guide
|
|
|
|
---
|
|
|
|
## Regular Posts
|
|
|
|
Text + up to 4 images.
|
|
|
|
```bash
|
|
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png # Preview
|
|
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png --submit # Post
|
|
```
|
|
|
|
**Parameters**:
|
|
| Parameter | Description |
|
|
|-----------|-------------|
|
|
| `<text>` | Post content (positional) |
|
|
| `--image <path>` | Image file (repeatable, max 4) |
|
|
| `--submit` | Post (default: preview) |
|
|
| `--profile <dir>` | Custom Chrome profile |
|
|
|
|
---
|
|
|
|
## Video Posts
|
|
|
|
Text + video file.
|
|
|
|
```bash
|
|
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Check this out!" --video ./clip.mp4 # Preview
|
|
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Amazing content" --video ./demo.mp4 --submit # Post
|
|
```
|
|
|
|
**Parameters**:
|
|
| Parameter | Description |
|
|
|-----------|-------------|
|
|
| `<text>` | Post content (positional) |
|
|
| `--video <path>` | Video file (MP4, MOV, WebM) |
|
|
| `--submit` | Post (default: preview) |
|
|
| `--profile <dir>` | Custom Chrome profile |
|
|
|
|
**Limits**: Regular 140s max, Premium 60min. Processing: 30-60s.
|
|
|
|
---
|
|
|
|
## Quote Tweets
|
|
|
|
Quote an existing tweet with comment.
|
|
|
|
```bash
|
|
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!" # Preview
|
|
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "I agree!" --submit # Post
|
|
```
|
|
|
|
**Parameters**:
|
|
| Parameter | Description |
|
|
|-----------|-------------|
|
|
| `<tweet-url>` | URL to quote (positional) |
|
|
| `<comment>` | Comment text (positional, optional) |
|
|
| `--submit` | Post (default: preview) |
|
|
| `--profile <dir>` | Custom Chrome profile |
|
|
|
|
---
|
|
|
|
## X Articles
|
|
|
|
Long-form Markdown articles (requires X Premium).
|
|
|
|
```bash
|
|
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md # Preview
|
|
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpg # With cover
|
|
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --submit # Publish
|
|
```
|
|
|
|
**Parameters**:
|
|
| Parameter | Description |
|
|
|-----------|-------------|
|
|
| `<markdown>` | Markdown file (positional) |
|
|
| `--cover <path>` | Cover image |
|
|
| `--title <text>` | Override title |
|
|
| `--submit` | Publish (default: preview) |
|
|
|
|
**Frontmatter**: `title`, `cover_image` supported in YAML front matter.
|
|
|
|
---
|
|
|
|
## Notes
|
|
|
|
- First run: manual login required (session persists)
|
|
- Always preview before `--submit`
|
|
- Cross-platform: macOS, Linux, Windows
|
|
|
|
## Extension Support
|
|
|
|
Custom configurations via EXTEND.md. See **Preferences** section for paths and supported options.
|