Skip to content
Agentmart
Submit a tool

x-quote-post

Quote a specific post on X (Twitter) through ai-chrome-pilot.

Skill by shinshin86

IndexedMIT★ 7
Write a review

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-quote-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.

We use your email only for this newsletter. Privacy

About

Quote a specific post on X (Twitter) through ai-chrome-pilot. Use when the target post is already known and the user wants a focused quote-post workflow with safe composer input and post-submission verification.

Use cases: productivity

No 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-quote-post

What's inside

Skill name
x-quote-post
Description
Quote a specific post on X (Twitter) through ai-chrome-pilot. Use when the target post is already known and the user wants a focused quote-post workflow with safe composer input and post-submission verification.
License
MIT
Instructions
197 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# X Quote Post

Use ai-chrome-pilot to quote a specific X post from a direct target URL or another unambiguous locator.

Prefer this skill when the user clearly wants to quote one known post and does not need the broader `x-compose-post` multi-mode workflow.

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
- `target_url`: preferred when available
- `target`: if not using a URL, accept another explicit locator such as actor/date/text tuple
- `post_text`: required

Default resolution rules:

- If `profile_name` is unspecified, use `default` without asking
- If `target_url` and `post_text` are already provided, execute directly
- Ask follow-up questions only when the target post is not specific enough to identify safely

Never guess the target post. If multiple similar posts could match, stop and ask for clarification.

## 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 target post

If the user supplied a direct URL, navigate to it:

```bash
curl -s -X POST http://127.0.0.1:3333/goto \
  -H 'Content-Type: application/json' \
  -d '{"url":"<target_url>"}'
```

After navigation:

```bash
sleep 2
curl -s http://127.0.0.1:3333/screenshot -o /tmp/x_quote_target.png
curl -s http://127.0.0.1:3333/snapshot
```

Confirm the target post is the one the user intended before continuing.

### 3. Open the quote composer

Take a fresh snapshot and click the repost button on the target post, then choose `引用する`.

Typical sequence:

```bash
curl -s -X POST http://127.0.0.1:3333/act \
  -H 'Content-Type: application/json' \
  -d '{"ref":"<repost_button_ref>","action":"click"}'
sleep 1
curl -s http://127.0.0.1:3333/snapshot
curl -s -X POST http://127.0.0.1:3333/act \
  -H 'Content-Type: application/json' \
  -d '{"ref":"<quote_menuitem_ref>","action":"click"}'
```

After the quote composer opens, take a fresh snapshot again.

### 4. Enter the quote text safely

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 visible quote 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()`
4. Verify the visible composer DOM exactly matches the intended text before clicking submit

Minimal pattern:

```bash
curl -s -X POST http://127.0.0.1:3333/act \
  -H 'Content-Type: application/json' \
  -d '{"ref":"<quote_textbox_ref>","action":"click"}'
```

```bash
node -e "const { chromium } = require('playwright-core'); (async () => {
  const expected = '<post_text>';
  const browser = await chromium.connectOverCDP('http://127.0.0.1:9222');
  const pages = browser.contexts().flatMap(c => c.pages());

From shinshin86/ai-chrome-pilot, MIT.

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from shinshin86

Cite this page

x-quote-post skill. Agent Mart. https://agentmart.dev/skills/shinshin86-x-quote-post (last updated 2026-10-24)