From e3d2f5d03f29a5da0129ff02d05fbbaddf17a803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jim=20Liu=20=E5=AE=9D=E7=8E=89?= Date: Thu, 15 Jan 2026 15:38:03 -0600 Subject: [PATCH] Add clipboard paste functionality and documentation for X Articles and regular posts - Implemented `paste-from-clipboard.ts` script to send real paste keystrokes across macOS, Linux, and Windows. - Created detailed guides for publishing articles to X Articles and posting regular content, including usage examples and troubleshooting tips. - Added support for Markdown formatting and image handling in X Articles. - Documented manual workflows for image pasting and browser interactions using Playwright MCP. --- .claude-plugin/marketplace.json | 2 +- README.md | 19 + README.zh.md | 19 + screenshots/update-plugins.png | Bin 0 -> 116044 bytes skills/baoyu-post-to-wechat/SKILL.md | 26 +- .../scripts/paste-from-clipboard.ts | 194 ++++++++++ skills/baoyu-post-to-x/SKILL.md | 342 +++--------------- skills/baoyu-post-to-x/references/articles.md | 176 +++++++++ .../references/regular-posts.md | 100 +++++ skills/baoyu-post-to-x/scripts/md-to-html.ts | 11 +- .../scripts/paste-from-clipboard.ts | 194 ++++++++++ skills/baoyu-post-to-x/scripts/x-article.ts | 68 ++-- skills/baoyu-post-to-x/scripts/x-browser.ts | 71 ++-- 13 files changed, 863 insertions(+), 359 deletions(-) create mode 100644 screenshots/update-plugins.png create mode 100644 skills/baoyu-post-to-wechat/scripts/paste-from-clipboard.ts create mode 100644 skills/baoyu-post-to-x/references/articles.md create mode 100644 skills/baoyu-post-to-x/references/regular-posts.md create mode 100644 skills/baoyu-post-to-x/scripts/paste-from-clipboard.ts diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 9ca2763..523ea03 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Skills shared by Baoyu for improving daily work efficiency", - "version": "0.4.0" + "version": "0.4.1" }, "plugins": [ { diff --git a/README.md b/README.md index b3145b1..2a7f1f1 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,25 @@ Run the following command in Claude Code: /plugin install content-skills@baoyu-skills ``` +**Option 3: Ask the Agent** + +Simply tell Claude Code: + +> Please install Skills from github.com/JimLiu/baoyu-skills + +## Update Skills + +To update skills to the latest version: + +1. Run `/plugin` in Claude Code +2. Switch to **Marketplaces** tab (use arrow keys or Tab) +3. Select **baoyu-skills** +4. Choose **Update marketplace** + +You can also **Enable auto-update** to get the latest versions automatically. + +![Update Skills](./screenshots/update-plugins.png) + ## Available Skills ### gemini-web diff --git a/README.zh.md b/README.zh.md index 4b2e493..b67564e 100644 --- a/README.zh.md +++ b/README.zh.md @@ -34,6 +34,25 @@ /plugin install content-skills@baoyu-skills ``` +**方式三:告诉 Agent** + +直接告诉 Claude Code: + +> 请帮我安装 github.com/JimLiu/baoyu-skills 中的 Skills + +## 更新技能 + +更新技能到最新版本: + +1. 在 Claude Code 中运行 `/plugin` +2. 切换到 **Marketplaces** 标签页(使用方向键或 Tab) +3. 选择 **baoyu-skills** +4. 选择 **Update marketplace** + +也可以选择 **Enable auto-update** 启用自动更新,每次启动时自动获取最新版本。 + +![更新技能](./screenshots/update-plugins.png) + ## 可用技能 ### gemini-web diff --git a/screenshots/update-plugins.png b/screenshots/update-plugins.png new file mode 100644 index 0000000000000000000000000000000000000000..73b7f2b3a2d78d82cc0486ccd4d8439cb004650f GIT binary patch literal 116044 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
n5T2d}A|D?mr!()$#Vt(DJUIl_@GtM-AI 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 literal 0 HcmV?d00001 diff --git a/skills/baoyu-post-to-wechat/SKILL.md b/skills/baoyu-post-to-wechat/SKILL.md index 7f53de4..c35d3d8 100644 --- a/skills/baoyu-post-to-wechat/SKILL.md +++ b/skills/baoyu-post-to-wechat/SKILL.md @@ -7,25 +7,45 @@ description: Post content to WeChat Official Account (微信公众号). Supports Post content to WeChat Official Account using Chrome CDP automation. +## 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/.ts` +3. Replace all `${SKILL_DIR}` in this document with the actual path + +**Script Reference**: +| Script | Purpose | +|--------|---------| +| `scripts/wechat-browser.ts` | Image-text posts (图文) | +| `scripts/wechat-article.ts` | Full article posting (文章) | +| `scripts/md-to-wechat.ts` | Markdown → WeChat HTML conversion | +| `scripts/copy-to-clipboard.ts` | Copy content to clipboard | +| `scripts/paste-from-clipboard.ts` | Send real paste keystroke | + ## Quick Usage ### Image-Text (图文) - Multiple images with title/content ```bash # From markdown file and image directory -npx -y bun ./scripts/wechat-browser.ts --markdown article.md --images ./images/ +npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/ # With explicit parameters -npx -y bun ./scripts/wechat-browser.ts --title "标题" --content "内容" --image img1.png --image img2.png --submit +npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img1.png --image img2.png --submit ``` ### Article (文章) - Full markdown with formatting ```bash # Post markdown article -npx -y bun ./scripts/wechat-article.ts --markdown article.md --theme grace +npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --theme grace ``` +> **Note**: `${SKILL_DIR}` represents this skill's installation directory. Agent replaces with actual path at runtime. + ## References - **Image-Text Posting**: See `references/image-text-posting.md` for detailed image-text posting guide diff --git a/skills/baoyu-post-to-wechat/scripts/paste-from-clipboard.ts b/skills/baoyu-post-to-wechat/scripts/paste-from-clipboard.ts new file mode 100644 index 0000000..8466c08 --- /dev/null +++ b/skills/baoyu-post-to-wechat/scripts/paste-from-clipboard.ts @@ -0,0 +1,194 @@ +import { spawnSync } from 'node:child_process'; +import process from 'node:process'; + +function printUsage(exitCode = 0): never { + console.log(`Send real paste keystroke (Cmd+V / Ctrl+V) to the frontmost application + +This bypasses CDP's synthetic events which websites can detect and ignore. + +Usage: + npx -y bun paste-from-clipboard.ts [options] + +Options: + --retries Number of retry attempts (default: 3) + --delay Delay between retries in ms (default: 500) + --app Target application to activate first (macOS only) + --help Show this help + +Examples: + # Simple paste + npx -y bun paste-from-clipboard.ts + + # Paste to Chrome with retries + npx -y bun paste-from-clipboard.ts --app "Google Chrome" --retries 5 + + # Quick paste with shorter delay + npx -y bun paste-from-clipboard.ts --delay 200 +`); + process.exit(exitCode); +} + +function sleepSync(ms: number): void { + Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms); +} + +function activateApp(appName: string): boolean { + if (process.platform !== 'darwin') return false; + + // Activate and wait for app to be frontmost + const script = ` + tell application "${appName}" + activate + delay 0.5 + end tell + + -- Verify app is frontmost + tell application "System Events" + set frontApp to name of first application process whose frontmost is true + if frontApp is not "${appName}" then + tell application "${appName}" to activate + delay 0.3 + end if + end tell + `; + const result = spawnSync('osascript', ['-e', script], { stdio: 'pipe' }); + return result.status === 0; +} + +function pasteMac(retries: number, delayMs: number, targetApp?: string): boolean { + for (let i = 0; i < retries; i++) { + // Build script that activates app (if specified) and sends keystroke in one atomic operation + const script = targetApp + ? ` + tell application "${targetApp}" + activate + end tell + delay 0.3 + tell application "System Events" + keystroke "v" using command down + end tell + ` + : ` + tell application "System Events" + keystroke "v" using command down + end tell + `; + + const result = spawnSync('osascript', ['-e', script], { stdio: 'pipe' }); + if (result.status === 0) { + return true; + } + + const stderr = result.stderr?.toString().trim(); + if (stderr) { + console.error(`[paste] osascript error: ${stderr}`); + } + + if (i < retries - 1) { + console.error(`[paste] Attempt ${i + 1}/${retries} failed, retrying in ${delayMs}ms...`); + sleepSync(delayMs); + } + } + return false; +} + +function pasteLinux(retries: number, delayMs: number): boolean { + // Try xdotool first (X11), then ydotool (Wayland) + const tools = [ + { cmd: 'xdotool', args: ['key', 'ctrl+v'] }, + { cmd: 'ydotool', args: ['key', '29:1', '47:1', '47:0', '29:0'] }, // Ctrl down, V down, V up, Ctrl up + ]; + + for (const tool of tools) { + const which = spawnSync('which', [tool.cmd], { stdio: 'pipe' }); + if (which.status !== 0) continue; + + for (let i = 0; i < retries; i++) { + const result = spawnSync(tool.cmd, tool.args, { stdio: 'pipe' }); + if (result.status === 0) { + return true; + } + if (i < retries - 1) { + console.error(`[paste] Attempt ${i + 1}/${retries} failed, retrying in ${delayMs}ms...`); + sleepSync(delayMs); + } + } + return false; + } + + console.error('[paste] No supported tool found. Install xdotool (X11) or ydotool (Wayland).'); + return false; +} + +function pasteWindows(retries: number, delayMs: number): boolean { + const ps = ` + Add-Type -AssemblyName System.Windows.Forms + [System.Windows.Forms.SendKeys]::SendWait("^v") + `; + + for (let i = 0; i < retries; i++) { + const result = spawnSync('powershell.exe', ['-NoProfile', '-Command', ps], { stdio: 'pipe' }); + if (result.status === 0) { + return true; + } + if (i < retries - 1) { + console.error(`[paste] Attempt ${i + 1}/${retries} failed, retrying in ${delayMs}ms...`); + sleepSync(delayMs); + } + } + return false; +} + +function paste(retries: number, delayMs: number, targetApp?: string): boolean { + switch (process.platform) { + case 'darwin': + return pasteMac(retries, delayMs, targetApp); + case 'linux': + return pasteLinux(retries, delayMs); + case 'win32': + return pasteWindows(retries, delayMs); + default: + console.error(`[paste] Unsupported platform: ${process.platform}`); + return false; + } +} + +async function main(): Promise { + const args = process.argv.slice(2); + + let retries = 3; + let delayMs = 500; + let targetApp: string | undefined; + + for (let i = 0; i < args.length; i++) { + const arg = args[i] ?? ''; + if (arg === '--help' || arg === '-h') { + printUsage(0); + } + if (arg === '--retries' && args[i + 1]) { + retries = parseInt(args[++i]!, 10) || 3; + } else if (arg === '--delay' && args[i + 1]) { + delayMs = parseInt(args[++i]!, 10) || 500; + } else if (arg === '--app' && args[i + 1]) { + targetApp = args[++i]; + } else if (arg.startsWith('-')) { + console.error(`Unknown option: ${arg}`); + printUsage(1); + } + } + + if (targetApp) { + console.log(`[paste] Target app: ${targetApp}`); + } + console.log(`[paste] Sending paste keystroke (retries=${retries}, delay=${delayMs}ms)...`); + const success = paste(retries, delayMs, targetApp); + + if (success) { + console.log('[paste] Paste keystroke sent successfully'); + } else { + console.error('[paste] Failed to send paste keystroke'); + process.exit(1); + } +} + +await main(); diff --git a/skills/baoyu-post-to-x/SKILL.md b/skills/baoyu-post-to-x/SKILL.md index 4c24faf..ba2e79a 100644 --- a/skills/baoyu-post-to-x/SKILL.md +++ b/skills/baoyu-post-to-x/SKILL.md @@ -7,26 +7,23 @@ description: Post content and articles to X (Twitter). Supports regular posts wi Post content, images, and long-form articles to X using real Chrome browser (bypasses anti-bot detection). -## Features +## Script Directory -- **Regular Posts**: Text + up to 4 images -- **X Articles**: Publish Markdown files with rich formatting and images (requires X Premium) +**Important**: All scripts are located in the `scripts/` subdirectory of this skill. -## Usage +**Agent Execution Instructions**: +1. Determine this SKILL.md file's directory path as `SKILL_DIR` +2. Script path = `${SKILL_DIR}/scripts/.ts` +3. Replace all `${SKILL_DIR}` in this document with the actual path -```bash -# Post text only -/baoyu-post-to-x "Your post content here" - -# Post with image -/baoyu-post-to-x "Your post content" --image /path/to/image.png - -# Post with multiple images (up to 4) -/baoyu-post-to-x "Your post content" --image img1.png --image img2.png - -# Actually submit the post -/baoyu-post-to-x "Your post content" --submit -``` +**Script Reference**: +| Script | Purpose | +|--------|---------| +| `scripts/x-browser.ts` | Regular posts (text + images) | +| `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 | ## Prerequisites @@ -34,58 +31,28 @@ Post content, images, and long-form articles to X using real Chrome browser (byp - `bun` installed (for running scripts) - First run: log in to X in the opened browser window -## Quick Start (Recommended) +## References -Use the `x-browser.ts` script directly: +- **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 # Preview mode (doesn't post) -npx -y bun ./scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png +npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png # Actually post -npx -y bun ./scripts/x-browser.ts "Hello!" --image ./photo.png --submit +npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png --submit ``` -The script: -1. Launches real Chrome with anti-detection disabled -2. Uses persistent profile (only need to log in once) -3. Types text and pastes images via CDP -4. Waits 30s for preview (or posts immediately with `--submit`) - -## Manual Workflow - -If you prefer step-by-step control: - -### Step 1: Copy Image to Clipboard - -```bash -npx -y bun ./scripts/copy-to-clipboard.ts image /path/to/image.png -``` - -### Step 2: Use Playwright MCP (if Chrome session available) - -```bash -# Navigate -mcp__playwright__browser_navigate url="https://x.com/compose/post" - -# Get element refs -mcp__playwright__browser_snapshot - -# Type text -mcp__playwright__browser_click element="editor" ref="" -mcp__playwright__browser_type element="editor" ref="" text="Your content" - -# Paste image (after copying to clipboard) -mcp__playwright__browser_press_key key="Meta+v" # macOS -# or -mcp__playwright__browser_press_key key="Control+v" # Windows/Linux - -# Screenshot to verify -mcp__playwright__browser_take_screenshot filename="preview.png" -``` - -## Parameters +> **Note**: `${SKILL_DIR}` represents this skill's installation directory. Agent replaces with actual path at runtime. +**Parameters**: | Parameter | Description | |-----------|-------------| | `` | Post content (positional argument) | @@ -93,42 +60,40 @@ mcp__playwright__browser_take_screenshot filename="preview.png" | `--submit` | Actually post (default: preview only) | | `--profile ` | Custom Chrome profile directory | -## Image Support +--- -- Formats: PNG, JPEG, GIF, WebP -- Max 4 images per post -- Images copied to system clipboard, then pasted via keyboard shortcut +## X Articles -## Example Session +Long-form Markdown articles (requires X Premium). -``` -User: /baoyu-post-to-x "Hello from Claude!" --image ./screenshot.png +```bash +# Preview mode +npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md -Claude: -1. Runs: npx -y bun ./scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png -2. Chrome opens with X compose page -3. Text is typed into editor -4. Image is copied to clipboard and pasted -5. Browser stays open 30s for preview -6. Reports: "Post composed. Use --submit to post." +# With cover image +npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpg + +# Publish +npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --submit ``` -## Troubleshooting +**Parameters**: +| Parameter | Description | +|-----------|-------------| +| `` | Markdown file path (positional argument) | +| `--cover ` | Cover image path | +| `--title ` | Override article title | +| `--submit` | Actually publish (default: preview only) | -- **Chrome not found**: Set `X_BROWSER_CHROME_PATH` environment variable -- **Not logged in**: First run opens Chrome - log in manually, cookies are saved -- **Image paste fails**: Verify clipboard script: `npx -y bun ./scripts/copy-to-clipboard.ts image ` -- **Rate limited**: Wait a few minutes before retrying +**Frontmatter** (optional): +```yaml +--- +title: My Article Title +cover_image: /path/to/cover.jpg +--- +``` -## How It Works - -The `x-browser.ts` script uses Chrome DevTools Protocol (CDP) to: -1. Launch real Chrome (not Playwright) with `--disable-blink-features=AutomationControlled` -2. Use persistent profile directory for saved login sessions -3. Interact with X via CDP commands (Runtime.evaluate, Input.dispatchKeyEvent) -4. Paste images from system clipboard - -This approach bypasses X's anti-automation detection that blocks Playwright/Puppeteer. +--- ## Notes @@ -136,204 +101,3 @@ This approach bypasses X's anti-automation detection that blocks Playwright/Pupp - Always preview before using `--submit` - Browser closes automatically after operation - Supports macOS, Linux, and Windows - ---- - -# X Articles (Long-form Publishing) - -Publish Markdown articles to X Articles editor with rich text formatting and images. - -## X Article Usage - -```bash -# Publish markdown article (preview mode) -/baoyu-post-to-x article /path/to/article.md - -# With custom cover image -/baoyu-post-to-x article article.md --cover ./hero.png - -# With custom title -/baoyu-post-to-x article article.md --title "My Custom Title" - -# Actually publish (not just draft) -/baoyu-post-to-x article article.md --submit -``` - -## Prerequisites for Articles - -- X Premium subscription (required for Articles) -- Google Chrome installed -- `bun` installed - -## Article Script - -Use `x-article.ts` directly: - -```bash -npx -y bun ./scripts/x-article.ts article.md -npx -y bun ./scripts/x-article.ts article.md --cover ./cover.jpg -npx -y bun ./scripts/x-article.ts article.md --submit -``` - -## Markdown Format - -```markdown ---- -title: My Article Title -cover_image: /path/to/cover.jpg ---- - -# Title (becomes article title) - -Regular paragraph text with **bold** and *italic*. - -## Section Header - -More content here. - -![Image alt text](./image.png) - -- List item 1 -- List item 2 - -1. Numbered item -2. Another item - -> Blockquote text - -[Link text](https://example.com) - -\`\`\` -Code blocks become blockquotes (X doesn't support code) -\`\`\` -``` - -## Frontmatter Fields - -| Field | Description | -|-------|-------------| -| `title` | Article title (or uses first H1) | -| `cover_image` | Cover image path or URL | -| `cover` | Alias for cover_image | -| `image` | Alias for cover_image | - -## Image Handling - -1. **Cover Image**: First image or `cover_image` from frontmatter -2. **Remote Images**: Automatically downloaded to temp directory -3. **Placeholders**: Images in content use `[[IMAGE_PLACEHOLDER_N]]` format -4. **Insertion**: Placeholders are found, selected, and replaced with actual images - -## Markdown to HTML Script - -Convert markdown and inspect structure: - -```bash -# Get JSON with all metadata -npx -y bun ./scripts/md-to-html.ts article.md - -# Output HTML only -npx -y bun ./scripts/md-to-html.ts article.md --html-only - -# Save HTML to file -npx -y bun ./scripts/md-to-html.ts article.md --save-html /tmp/article.html -``` - -JSON output: -```json -{ - "title": "Article Title", - "coverImage": "/path/to/cover.jpg", - "contentImages": [ - { - "placeholder": "[[IMAGE_PLACEHOLDER_1]]", - "localPath": "/tmp/x-article-images/img.png", - "blockIndex": 5 - } - ], - "html": "

Content...

", - "totalBlocks": 20 -} -``` - -## Supported Formatting - -| Markdown | HTML Output | -|----------|-------------| -| `# H1` | Title only (not in body) | -| `## H2` - `###### H6` | `

` | -| `**bold**` | `` | -| `*italic*` | `` | -| `[text](url)` | `` | -| `> quote` | `
` | -| `` `code` `` | `` | -| ```` ``` ```` | `
` (X limitation) | -| `- item` | `