Chalk Labs
Need help deploying baoyu-post-to-x?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/guanyang-baoyu-post-to-x
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, writing, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill 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). In Codex, honor explicit requests for the Codex Chrome plugin/@chrome by using the Chrome Extension workflow; otherwise use Chrome Computer Use when available and fall back to real Chrome CDP scripts only when allowed. Use when user asks to "post to X", "tweet", "publish to Twitter", or "share on X".
- License
- MIT
- Instructions
- 324 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (16)
- SKILL.md
- articles.md · references/
- regular-posts.md · references/
- bun.lock · scripts/
- check-paste-permissions.ts · scripts/
- copy-to-clipboard.ts · scripts/
- md-to-html.test.ts · scripts/
- md-to-html.ts · scripts/
- package.json · scripts/
- paste-from-clipboard.ts · scripts/
- x-article.ts · scripts/
- x-browser.ts · scripts/
- x-quote.ts · scripts/
- x-utils.test.ts · scripts/
- x-utils.ts · scripts/
- x-video.ts · scripts/
SKILL.md (first lines)
# Post to X (Twitter)
Posts text, images, videos, and long-form articles to X via a real Chrome browser.
In Codex, three distinct browser paths — do not conflate them:
- **Codex Chrome plugin / `@chrome` / Chrome Extension**: the bundled `chrome:Chrome` skill and its Node REPL browser client. Required whenever the user says "Codex Chrome plugin", "Codex 自带的 Chrome 插件", `@chrome`, or similar.
- **Chrome Computer Use**: `mcp__computer_use__.*` against the visible Google Chrome UI.
- **CDP script mode**: the bundled scripts; fallback only.
## Script Directory
`{baseDir}` = this SKILL.md's directory; scripts are at `{baseDir}/scripts/<script-name>.ts`. Resolve `${BUN_X}`: `bun` if installed → else `npx -y bun` → else suggest installing bun.
| Script | Purpose |
|--------|---------|
| `scripts/x-browser.ts` | Regular posts (text + images), CDP fallback |
| `scripts/x-video.ts` | Video posts (text + video), CDP fallback |
| `scripts/x-quote.ts` | Quote tweet with comment, CDP fallback |
| `scripts/x-article.ts` | Long-form article publishing (Markdown), CDP fallback |
| `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 |
| `scripts/check-paste-permissions.ts` | Verify environment & permissions |
## Execution Mode Selection (Required)
Choose exactly one mode before interacting with X:
1. User asks for the Codex Chrome plugin, `@chrome`, the Chrome extension, or "Codex 自带的 Chrome 插件" → **Codex Chrome Plugin Mode**. Do not call Computer Use first.
2. User asks for Chrome Computer Use → **Chrome Computer Use Mode**. Do not fall back to CDP, Playwright, the in-app Browser, or the Chrome plugin without telling the user and getting approval.
3. User asks for CDP/script mode → **CDP Script Mode**.
4. Otherwise prefer **Chrome Computer Use Mode** (if available). For Markdown X Articles with local content images, use the toolbar image flow (`Insert` → `Media` → `Add photos or video`) in "X Articles (UI Modes)". Use CDP Script Mode only when the selected browser-control mode is unavailable or the UI upload/selection flow is unreliable.
Never use the in-app Browser for X publishing. Never switch away from an explicitly requested mode without explaining the blocker and getting approval.
**Publish gate (all modes)**: never click `Publish`, `Post`, or any externally visible submit action, and never pass `--submit`, without explicit final confirmation from the user in the current conversation.
In Codex Chrome Plugin Mode and Chrome Computer Use Mode, use the user's existing Chrome session (profile, cookies, X login); do not launch a separate CDP profile.
## Preferences (EXTEND.md)
First found wins:
| Priority | Path | Scope |
|----------|------|-------|
| 1 | `.baoyu-skills/baoyu-post-to-x/EXTEND.md` | Project |
| 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-x/EXTEND.md` | XDG |
| 3 | `$HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md` | User home |
None found → use defaults. Supported: default Chrome profile.
## Prerequisites
Google Chrome or Chromium; `bun`. First run: user logs in to X manually (session persists). Works on macOS, Linux, Windows.
## Pre-flight Check (Optional)
Before first use, suggest (user can skip):
```bash
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
```
| Check fails | Fix |
|-------|-----|
| Chrome | Install Chrome or set `X_BROWSER_CHROME_PATH` env var |
| Profile dir | Shared profile at `baoyu-skills/chrome-profile` (see CLAUDE.md Chrome Profile section) |
| Bun runtime | `brew install oven-sh/bun/bun` (macOS) or `npm install -g bun` |
| Accessibility (macOS) | System Settings → Privacy & Security → Accessibility → enable terminal app |
| Clipboard copy | Ensure Swift/AppKit available (macOS Xcode CLI tools: `xcode-select --install`) |
| Paste keystroke (macOS) | Same as Accessibility fix above |
| Paste keystroke (Linux) | Install `xdotool` (X11) or `ydotool` (Wayland) |
## Post Type Selection
Unless the user specifies:
- **Plain text** within 10,000 characters → **Regular Post** (Premium: up to 10,000 characters; non-Premium: 280)
- **Markdown file** (.md) → **X Article** (requires X Premium)
---
## Codex Chrome Plugin Mode
Uses the user's real Chrome profile and X login through the bundled Chrome plugin — not Computer Use, not CDP.
**Setup**
1. Load the `chrome:Chrome` skill before browser work.
2. Use `tool_search` for `node_repl js` if the Node REPL `js` tool is not visible.
3. Initialize the browser client exactly as the Chrome skill specifies, then verify the extension with a lightweight call such as `browser.user.openTabs()`.
4. If that fails, wait 2 seconds and retry once; then follow the Chrome skill's extension checks and recovery steps. If checks pass but communication still fails, ask the user before opening a new Chrome window. Do not switch to Computer Use or CDP silently.
**Rules**
- Use the plugin's `browser.tabs.*`, `tab.playwright.*`, `tab.cua.*`, and file chooser APIs for X UI actions.
- Shell commands are allowed for Markdown preprocessing and rich-HTML clipboard preparation. For X Article body images, do not rely on image clipboard paste; use the `Insert` → `Media` upload flow.
- Upload fails with `Not allowed` → tell the user: `To enable file upload, go to chrome://extensions in Chrome, click Details under the Codex extension, and enable "Allow access to file URLs." See https://developers.openai.com/codex/app/chrome-extension#upload-files for details.`
- `native pipe is closed` → retry the lightweight browser call once after 2 seconds, then run the Chrome skill health checks. If Chrome is running, the extension is enabled, and the native host manifest is correct, ask permission to open a new Chrome window and retry. Do not keep sending actions through the broken pipe.
## Chrome Computer Use Mode
Uses the user's existing Chrome window, cookies, login, extensions, and X session.
**Rules**
- Start each assistant turn that controls Chrome by calling `get_app_state` for `Google Chrome`.
- Prefer element-index actions; use coordinates only for editor text selection or drag selection.
- Do not use the in-app Browser, the Chrome plugin, Playwright, or CDP for X UI actions in this mode unless the user approves a mode change.
- If selection, toolbar upload, or file-picker control becomes unreliable, stop and report the blocker instead of switching to the Chrome plugin or CDP silently.
**Regular posts**
1. Open `https://x.com/compose/post`; type the post text into the composer.
2. For each image: `${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png`, then paste (`super+v` macOS, `control+v` Windows/Linux) and wait until X finishes uploading.
3. Ask for confirmation before clicking `Post`.
**Video posts**: open `https://x.com/compose/post` → type text → attach the video via the visible media upload/file picker UI → wait for upload and processing → ask before clicking `Post`.
**Quote tweets**: open the tweet URL → choose Quote in the visible quote/repost UI → type the comment → ask before clicking `Post`.
## X Articles (UI Modes)
Shared by Codex Chrome Plugin Mode and Chrome Computer Use Mode. Paste keys: plugin `Meta+V` (macOS) / `Control+V`; Computer Use `super+v` (macOS) / `control+v`. File upload: plugin file chooser API; Computer Use native file picker.From guanyang/open-agent-hub, MIT.
More from guanyang/open-agent-hub
- 0.700score
notebooklm
guanyang
Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini.
SkillBFreshness: B★ 980Claude Code +9 - 0.691score
claude-academy-guide
guanyang
Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials…
SkillBFreshness: B★ 980Claude Code +9 - 0.648score
baoyu-image-cards
guanyang
Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes.
SkillCFreshness: C★ 980Claude Code +9 - 0.644score
baoyu-imagine
guanyang
AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream and Replicate APIs.
SkillCFreshness: C★ 980Claude Code +9 - 0.639score
remotion-best-practices
guanyang
Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4).
SkillCFreshness: C★ 980Claude Code +9 - 0.629score
mediabunny
guanyang
Multimedia handling with the Mediabunny library
SkillCFreshness: C★ 980Claude Code +9 - 0.541score
mcp-builder
guanyang
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools.
SkillCFreshness: C★ 980Claude Code +9 - 0.541score
skill-creator
guanyang
Create new skills, modify and improve existing skills, and measure skill performance.
SkillCFreshness: C★ 980Claude Code +9 - 0.537score
algorithmic-art
guanyang
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration.
SkillCFreshness: C★ 980Claude Code +9 - 0.537score
brand-guidelines
guanyang
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel.
SkillCFreshness: C★ 980Claude Code +9 - 0.537score
pdf
guanyang
Use this skill whenever the user wants to do anything with PDF files.
SkillCFreshness: C★ 980Claude Code +9 - 0.537score
canvas-design
guanyang
Create beautiful visual art in .png and .pdf documents using design philosophy.
SkillCFreshness: C★ 980Claude Code +9
Signals
- Stars
- 980
- Forks
- 165
- Open issues
- 4
- Last commit (this folder)
- Jun 29, 2026 (4 months ago)
- Last release
- Jun 24, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/guanyang/open-agent-hub
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from guanyang
- 0.700score
notebooklm
guanyang
Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini.
SkillBFreshness: B★ 980Claude Code +9 - 0.691score
claude-academy-guide
guanyang
Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials…
SkillBFreshness: B★ 980Claude Code +9 - 0.648score
baoyu-image-cards
guanyang
Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes.
SkillCFreshness: C★ 980Claude Code +9 - 0.644score
baoyu-imagine
guanyang
AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream and Replicate APIs.
SkillCFreshness: C★ 980Claude Code +9 - 0.639score
remotion-best-practices
guanyang
Best practices and domain knowledge for building videos programmatically with Remotion (videos in React/TypeScript, rendered to MP4).
SkillCFreshness: C★ 980Claude Code +9 - 0.629score
mediabunny
guanyang
Multimedia handling with the Mediabunny library
SkillCFreshness: C★ 980Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get baoyu-post-to-x running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
baoyu-post-to-x skill. Agent Mart. https://agentmart.dev/skills/guanyang-baoyu-post-to-x (last updated 2026-10-24)