x-compose-post
Compose and send posts on X (Twitter) through ai-chrome-pilot.
Skill by shinshin86
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/shinshin86-x-compose-post
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
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/x-compose-post
What's inside
- Skill name
x-compose-post- Description
- Compose and send posts on X (Twitter) through ai-chrome-pilot. Use when the user wants to create a normal post, reply, quote post, or scheduled post, optionally with images, while choosing the correct mode from explicit inputs and verifying the result after submission.
- License
- MIT
- Instructions
- 248 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# X Compose Post
Use ai-chrome-pilot to create X posts from one unified workflow, then branch into `post`, `reply`, `quote`, or `schedule` mode.
Prefer this skill for broad post-creation tasks. Use `x-schedule-post` when a schedule-only flow is explicitly needed, and use `x-quote-post` when the user already knows the exact post they want to quote.
Keep the skill profile-agnostic. Use `default` unless the user explicitly requested another profile.
## Prerequisites
- ai-chrome-pilot server is available in the current repo
- Google Chrome is installed
- The user is already logged in to X in the chosen Chrome profile
- Prefer `HEADLESS=0` for real submission flows so the visible composer state can be inspected
- The UI is expected to be Japanese; match labels such as `ポストする`, `返信`, `引用する`, `ポストを予約`, `確認する`, and `予約設定`
If X shows a login screen, stop and use `x-login` first.
## Inputs To Resolve
Resolve these before acting:
- `profile_name`: default to `default` if unspecified
- `mode`: one of `post`, `reply`, `quote`, `schedule`
- `post_text`: required in all modes
- `target`: required for `reply` and `quote`
- accept URL, actor/date/text tuple, or another explicit locator
- `schedule`: required for `schedule`
- year, month, day, hour, minute
- `image`: optional attachment path when the user provided one
Default resolution rules:
- If `profile_name` is unspecified, use `default` without asking
- If the request is a normal post and includes `post_text`, execute directly
- If the request is a scheduled post and includes `post_text` plus the full schedule, execute directly
- If the request is `reply` or `quote`, ask only when the target post is not specific enough to identify safely
If the target post is not specific enough for `reply` or `quote`, stop and ask for clarification or first use a read-only skill to identify the exact target.
## Mode Selection
- `post`
- Create a normal post from X home or the post composer
- `reply`
- Open the target post and use the inline reply composer or reply modal
- `quote`
- Open the target post, open the repost menu, and choose `引用する`
- `schedule`
- Start from a normal post composer, then open the schedule dialog and finalize via `予約設定`
## Common Workflow
### 1. Ensure the server is running
Check health:
```bash
curl -s http://127.0.0.1:3333/health
```
If not running, start it with the requested profile:
```bash
HEADLESS=0 PROFILE_NAME=<profile_name> npx tsx src/index.ts
```
### 2. Open the right page
- `post` or `schedule`
- navigate to `https://x.com`
- `reply` or `quote`
- navigate directly to the target post URL when available
- otherwise find the target post first and only continue when the target is unambiguous
After navigation:
```bash
sleep 2
curl -s http://127.0.0.1:3333/screenshot -o /tmp/x_compose_check.png
```
### 3. Always take a fresh snapshot before acting
Use:
```bash
curl -s http://127.0.0.1:3333/snapshot
```
Refs change after navigation, dialog open/close, scrolling, and submission. Never reuse stale refs.
### 4. Enter the post text safely
Find the active `textbox "ポスト本文"` and focus it, but do not assume that `/act type` alone is enough for X.
Observed failure mode:
- `/act type` can make the submit button look enabled while the actual X composer state is still out of sync
- the visible page may appear filled, but `[data-testid="tweetTextarea_0"]` can still be empty or mismatched
Use this approach for real submission flows:
1. Use `/snapshot` and `/act click` to focus the correct composer
2. Prefer `Playwright over CDP` to connect to the already-open Chrome instance on `http://127.0.0.1:9222`
3. Enter text with `page.keyboard.type()` instead of relying on `/act type`
4. Verify the DOM text exactly matches the intended post before clicking any submit button
Minimal pattern:
```bash
curl -s -X POST http://127.0.0.1:3333/act \
-H 'Content-Type: application/json' \
-d '{"ref":"<textbox_ref>","action":"click"}'
```
```bash
node -e "const { chromium } = require('playwright-core'); (async () => {
const expected = '<post_text>';From shinshin86/ai-chrome-pilot, MIT.
More from shinshin86/ai-chrome-pilot
- 0.474score
x-get-scheduled-posts
shinshin86
Inspect the scheduled posts list on X (Twitter) through ai-chrome-pilot without creating or modifying posts.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-post
shinshin86
Schedule a post on X (Twitter) and verify it was successfully scheduled.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-get-notifications
shinshin86
Inspect notifications on X (Twitter) through ai-chrome-pilot and extract replies or quote reposts without performing likes or other engagement actions.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-like-notifications
shinshin86
Like selected unliked notifications on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-quote-post
shinshin86
Quote a specific post on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-image-post
shinshin86
Schedule a post with an image and AI-generated content label on X (Twitter).
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-act-on-notifications
shinshin86
Perform selected actions on X (Twitter) notifications through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.466score
x-login
shinshin86
Log in to X (Twitter) via browser.
SkillDFreshness: D★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Mar 28, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/shinshin86/ai-chrome-pilot
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from shinshin86
- 0.474score
x-get-scheduled-posts
shinshin86
Inspect the scheduled posts list on X (Twitter) through ai-chrome-pilot without creating or modifying posts.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-post
shinshin86
Schedule a post on X (Twitter) and verify it was successfully scheduled.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-get-notifications
shinshin86
Inspect notifications on X (Twitter) through ai-chrome-pilot and extract replies or quote reposts without performing likes or other engagement actions.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-like-notifications
shinshin86
Like selected unliked notifications on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-quote-post
shinshin86
Quote a specific post on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-image-post
shinshin86
Schedule a post with an image and AI-generated content label on X (Twitter).
SkillDFreshness: D★ 7Claude Code +9
Cite this page
x-compose-post skill. Agent Mart. https://agentmart.dev/skills/shinshin86-x-compose-post (last updated 2026-10-24)