x-integration — for Claude Code x-integration, nanoclaw, community, for Claude Code, ide skills, x_post, x_like, x_reply, x_retweet, x_quote

v1.0.0

Sobre este Skill

Cenario recomendado: Ideal for AI agents that need x (twitter) integration. Resumo localizado: # X (Twitter) Integration Browser automation for X interactions via WhatsApp. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Recursos

X (Twitter) Integration
Browser automation for X interactions via WhatsApp.
Compatibility: NanoClaw v1.0.0. Directory structure may change in future versions.
Action Tool Description
-------- ------ -------------

# Tópicos principais

ShalomObongo ShalomObongo
[3]
[1]
Atualizado: 4/3/2026

Skill Overview

Start with fit, limitations, and setup before diving into the repository.

Cenario recomendado: Ideal for AI agents that need x (twitter) integration. Resumo localizado: # X (Twitter) Integration Browser automation for X interactions via WhatsApp. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Por que usar essa habilidade

Recomendacao: x-integration helps agents x (twitter) integration. X (Twitter) Integration Browser automation for X interactions via WhatsApp. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Melhor para

Cenario recomendado: Ideal for AI agents that need x (twitter) integration.

Casos de Uso Práticos for x-integration

Caso de uso: Applying X (Twitter) Integration
Caso de uso: Applying Browser automation for X interactions via WhatsApp
Caso de uso: Applying Compatibility: NanoClaw v1.0.0. Directory structure may change in future versions

! Segurança e Limitações

  • Limitacao: Requires repository-specific context from the skill documentation
  • Limitacao: Works best when the underlying tools and dependencies are already configured

About The Source

The section below comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

Demo Labs

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ e etapas de instalação

These questions and steps mirror the structured data on this page for better search understanding.

? Perguntas frequentes

O que é x-integration?

Cenario recomendado: Ideal for AI agents that need x (twitter) integration. Resumo localizado: # X (Twitter) Integration Browser automation for X interactions via WhatsApp. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Como instalar x-integration?

Execute o comando: npx killer-skills add ShalomObongo/nanoclaw/x-integration. Ele funciona com Cursor, Windsurf, VS Code, Claude Code e mais de 19 outros IDEs.

Quais são os casos de uso de x-integration?

Os principais casos de uso incluem: Caso de uso: Applying X (Twitter) Integration, Caso de uso: Applying Browser automation for X interactions via WhatsApp, Caso de uso: Applying Compatibility: NanoClaw v1.0.0. Directory structure may change in future versions.

Quais IDEs são compatíveis com x-integration?

Esta skill é compatível com Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use a CLI do Killer-Skills para uma instalação unificada.

x-integration tem limitações?

Limitacao: Requires repository-specific context from the skill documentation. Limitacao: Works best when the underlying tools and dependencies are already configured.

Como instalar este skill

  1. 1. Abra o terminal

    Abra o terminal ou linha de comando no diretório do projeto.

  2. 2. Execute o comando de instalação

    Execute: npx killer-skills add ShalomObongo/nanoclaw/x-integration. A CLI detectará sua IDE ou agente automaticamente e configurará a skill.

  3. 3. Comece a usar o skill

    O skill já está ativo. Seu agente de IA pode usar x-integration imediatamente no projeto atual.

! Source Notes

This page is still useful for installation and source reference. Before using it, compare the fit, limitations, and upstream repository notes above.

Upstream Repository Material

The section below comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

Upstream Source

x-integration

# X (Twitter) Integration Browser automation for X interactions via WhatsApp. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows. X

SKILL.md
Readonly
Upstream Repository Material
The section below comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.
Upstream Source

X (Twitter) Integration

Browser automation for X interactions via WhatsApp.

Compatibility: NanoClaw v1.0.0. Directory structure may change in future versions.

Features

ActionToolDescription
Postx_postPublish new tweets
Likex_likeLike any tweet
Replyx_replyReply to tweets
Retweetx_retweetRetweet without comment
Quotex_quoteQuote tweet with comment

Prerequisites

Before using this skill, ensure:

  1. NanoClaw is installed and running - WhatsApp connected, service active
  2. Dependencies installed:
    bash
    1npm ls playwright dotenv-cli || npm install playwright dotenv-cli
  3. CHROME_PATH configured in .env (if Chrome is not at default location):
    bash
    1# Find your Chrome path 2mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'" 2>/dev/null | head -1 3# Add to .env 4CHROME_PATH=/path/to/Google Chrome.app/Contents/MacOS/Google Chrome

Quick Start

bash
1# 1. Setup authentication (interactive) 2npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/setup.ts 3# Verify: data/x-auth.json should exist after successful login 4 5# 2. Rebuild container to include skill 6./container/build.sh 7# Verify: Output shows "COPY .codex/skills/x-integration/agent.ts" 8 9# 3. Rebuild host and restart service 10npm run build 11launchctl kickstart -k gui/$(id -u)/com.nanoclaw 12# Verify: launchctl list | grep nanoclaw shows PID and exit code 0

Configuration

Environment Variables

VariableDefaultDescription
CHROME_PATH/Applications/Google Chrome.app/Contents/MacOS/Google ChromeChrome executable path
NANOCLAW_ROOTprocess.cwd()Project root directory
LOG_LEVELinfoLogging level (debug, info, warn, error)

Set in .env file (loaded via dotenv-cli at runtime):

bash
1# .env 2CHROME_PATH=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

Configuration File

Edit lib/config.ts to modify defaults:

typescript
1export const config = { 2 // Browser viewport 3 viewport: { width: 1280, height: 800 }, 4 5 // Timeouts (milliseconds) 6 timeouts: { 7 navigation: 30000, // Page navigation 8 elementWait: 5000, // Wait for element 9 afterClick: 1000, // Delay after click 10 afterFill: 1000, // Delay after form fill 11 afterSubmit: 3000, // Delay after submit 12 pageLoad: 3000, // Initial page load 13 }, 14 15 // Tweet limits 16 limits: { 17 tweetMaxLength: 280, 18 }, 19};

Data Directories

Paths relative to project root:

PathPurposeGit
data/x-browser-profile/Chrome profile with X sessionIgnored
data/x-auth.jsonAuth state markerIgnored
logs/nanoclaw.logService logs (contains X operation logs)Ignored

Architecture

┌─────────────────────────────────────────────────────────────┐
│  Container (Linux VM)                                       │
│  └── agent.ts → MCP tool definitions (x_post, etc.)    │
│      └── Writes IPC request to /workspace/ipc/tasks/       │
└──────────────────────┬──────────────────────────────────────┘
                       │ IPC (file system)
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Host (macOS)                                               │
│  └── src/index.ts → processTaskIpc()                       │
│      └── host.ts → handleXIpc()                         │
│          └── spawn subprocess → scripts/*.ts               │
│              └── Playwright → Chrome → X Website           │
└─────────────────────────────────────────────────────────────┘

Why This Design?

  • API is expensive - X official API requires paid subscription ($100+/month) for posting
  • Bot browsers get blocked - X detects and bans headless browsers and common automation fingerprints
  • Must use user's real browser - Reuses the user's actual Chrome on Host with real browser fingerprint to avoid detection
  • One-time authorization - User logs in manually once, session persists in Chrome profile for future use

File Structure

.codex/skills/x-integration/
├── SKILL.md          # This documentation
├── host.ts           # Host-side IPC handler
├── agent.ts          # Container-side MCP tool definitions
├── lib/
│   ├── config.ts     # Centralized configuration
│   └── browser.ts    # Playwright utilities
└── scripts/
    ├── setup.ts      # Interactive login
    ├── post.ts       # Post tweet
    ├── like.ts       # Like tweet
    ├── reply.ts      # Reply to tweet
    ├── retweet.ts    # Retweet
    └── quote.ts      # Quote tweet

Integration Points

To integrate this skill into NanoClaw, make the following modifications:


1. Host side: src/index.ts

Add import after other local imports (look for import { loadJson, saveJson, acquirePidLock } from './utils.js';):

typescript
1import { handleXIpc } from '../.codex/skills/x-integration/host.js';

Modify processTaskIpc function's switch statement default case:

typescript
1// Find: 2default: 3logger.warn({ type: data.type }, 'Unknown IPC task type'); 4 5// Replace with: 6default: 7const handled = await handleXIpc(data, sourceGroup, isMain, DATA_DIR); 8if (!handled) { 9 logger.warn({ type: data.type }, 'Unknown IPC task type'); 10}

2. Container side: container/agent-runner/src/ipc-mcp.ts

Add import after cron-parser import:

typescript
1// @ts-ignore - Copied during Docker build from .codex/skills/x-integration/ 2import { createXTools } from './skills/x-integration/agent.js';

Add to the end of tools array (before the closing ]):

typescript
1 ...createXTools({ groupFolder, isMain })

3. Build script: container/build.sh

Change build context from container/ to project root (required to access .codex/skills/):

bash
1# Find: 2container build -t "${IMAGE_NAME}:${TAG}" . 3 4# Replace with: 5cd "$SCRIPT_DIR/.." 6container build -t "${IMAGE_NAME}:${TAG}" -f container/Dockerfile .

4. Dockerfile: container/Dockerfile

First, update the build context paths (required to access .codex/skills/ from project root):

dockerfile
1# Find: 2COPY agent-runner/package*.json ./ 3... 4COPY agent-runner/ ./ 5 6# Replace with: 7COPY container/agent-runner/package*.json ./ 8... 9COPY container/agent-runner/ ./

Then add COPY line after COPY container/agent-runner/ ./ and before RUN npm run build:

dockerfile
1# Copy skill MCP tools 2COPY .codex/skills/x-integration/agent.ts ./src/skills/x-integration/

Setup

All paths below are relative to project root (NANOCLAW_ROOT).

1. Check Chrome Path

bash
1# Check if Chrome exists at configured path 2cat .env | grep CHROME_PATH 3ls -la "$(grep CHROME_PATH .env | cut -d= -f2)" 2>/dev/null || \ 4echo "Chrome not found - update CHROME_PATH in .env"

2. Run Authentication

bash
1npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/setup.ts

This opens Chrome for manual X login. Session saved to data/x-browser-profile/.

Verify success:

bash
1cat data/x-auth.json # Should show {"authenticated": true, ...}

3. Rebuild Container

bash
1./container/build.sh

Verify success:

bash
1./container/build.sh 2>&1 | grep -i "agent.ts" # Should show COPY line

4. Restart Service

bash
1npm run build 2launchctl kickstart -k gui/$(id -u)/com.nanoclaw

Verify success:

bash
1launchctl list | grep nanoclaw # Should show PID and exit code 0 or -

Usage via WhatsApp

Replace @Assistant with your configured trigger name (ASSISTANT_NAME in .env):

@Assistant post a tweet: Hello world!

@Assistant like this tweet https://x.com/user/status/123

@Assistant reply to https://x.com/user/status/123 with: Great post!

@Assistant retweet https://x.com/user/status/123

@Assistant quote https://x.com/user/status/123 with comment: Interesting

Note: Only the main group can use X tools. Other groups will receive an error.

Testing

Scripts require environment variables from .env. Use dotenv-cli to load them:

Check Authentication Status

bash
1# Check if auth file exists and is valid 2cat data/x-auth.json 2>/dev/null && echo "Auth configured" || echo "Auth not configured" 3 4# Check if browser profile exists 5ls -la data/x-browser-profile/ 2>/dev/null | head -5

Re-authenticate (if expired)

bash
1npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/setup.ts

Test Post (will actually post)

bash
1echo '{"content":"Test tweet - please ignore"}' | npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/post.ts

Test Like

bash
1echo '{"tweetUrl":"https://x.com/user/status/123"}' | npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/like.ts

Or export CHROME_PATH manually before running:

bash
1export CHROME_PATH="/path/to/chrome" 2echo '{"content":"Test"}' | npx tsx .codex/skills/x-integration/scripts/post.ts

Troubleshooting

Authentication Expired

bash
1npx dotenv -e .env -- npx tsx .codex/skills/x-integration/scripts/setup.ts 2launchctl kickstart -k gui/$(id -u)/com.nanoclaw

Browser Lock Files

If Chrome fails to launch:

bash
1rm -f data/x-browser-profile/SingletonLock 2rm -f data/x-browser-profile/SingletonSocket 3rm -f data/x-browser-profile/SingletonCookie

Check Logs

bash
1# Host logs (relative to project root) 2grep -i "x_post\|x_like\|x_reply\|handleXIpc" logs/nanoclaw.log | tail -20 3 4# Script errors 5grep -i "error\|failed" logs/nanoclaw.log | tail -20

Script Timeout

Default timeout is 2 minutes (120s). Increase in host.ts:

typescript
1const timer = setTimeout(() => { 2 proc.kill('SIGTERM'); 3 resolve({ success: false, message: 'Script timed out (120s)' }); 4}, 120000); // ← Increase this value

X UI Selector Changes

If X updates their UI, selectors in scripts may break. Current selectors:

ElementSelector
Tweet input[data-testid="tweetTextarea_0"]
Post button[data-testid="tweetButtonInline"]
Reply button[data-testid="reply"]
Like[data-testid="like"]
Unlike[data-testid="unlike"]
Retweet[data-testid="retweet"]
Unretweet[data-testid="unretweet"]
Confirm retweet[data-testid="retweetConfirm"]
Modal dialog[role="dialog"][aria-modal="true"]
Modal submit[data-testid="tweetButton"]

Container Build Issues

If MCP tools not found in container:

bash
1# Verify build copies skill 2./container/build.sh 2>&1 | grep -i skill 3 4# Check container has the file 5container run nanoclaw-agent ls -la /app/src/skills/

Security

  • data/x-browser-profile/ - Contains X session cookies (in .gitignore)
  • data/x-auth.json - Auth state marker (in .gitignore)
  • Only main group can use X tools (enforced in agent.ts and host.ts)
  • Scripts run as subprocesses with limited environment

Habilidades Relacionadas

Looking for an alternative to x-integration or another community skill for your workflow? Explore these related open-source skills.

Ver tudo

openclaw-release-maintainer

Logo of openclaw
openclaw

Resumo localizado: 🦞 # OpenClaw Release Maintainer Use this skill for release and publish-time workflow. It covers ai, assistant, crustacean workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

widget-generator

Logo of f
f

Resumo localizado: Generate customizable widget plugins for the prompts.chat feed system # Widget Generator Skill This skill guides creation of widget plugins for prompts.chat . It covers ai, artificial-intelligence, awesome-list workflows. This AI agent skill supports Claude Code, Cursor, and

flags

Logo of vercel
vercel

Resumo localizado: The React Framework # Feature Flags Use this skill when adding or changing framework feature flags in Next.js internals. It covers blog, browser, compiler workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

138.4k
0
Navegador

pr-review

Logo of pytorch
pytorch

Resumo localizado: Usage Modes No Argument If the user invokes /pr-review with no arguments, do not perform a review . It covers autograd, deep-learning, gpu workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

98.6k
0
Desenvolvedor