Posten op X (Twitter)
Post tekst, afbeeldingen, video's en lange artikelen op X via een echte Chrome-browser.
In Codex, verwar deze browserpaden niet:
- Codex Chrome-plugin /
@chrome/ Chrome-extensie: gebruik de meegeleverdechrome:Chrome-vaardigheid en de Node REPL-browserclient. Dit is vereist wanneer de gebruiker "Codex Chrome plugin", "Codex 自带的 Chrome 插件",@chrome, of iets dergelijks zegt. - Chrome Computer Use: gebruik
mcp__computer_use__.*tegen de zichtbare Google Chrome UI alleen wanneer de gebruiker om Computer Use vraagt of er geen voorkeur voor de Chrome-plugin is aangegeven en Computer Use beschikbaar is. - CDP-scriptmodus: alleen gebruiken als terugvaloptie wanneer de geselecteerde modus niet beschikbaar is of de gebruiker expliciet om CDP/scriptmodus vraagt.
Scriptmap
Belangrijk: Alle scripts bevinden zich in de scripts/-submap van deze vaardigheid.
Instructies voor de uitvoerder:
- Bepaal het mappad van dit SKILL.md-bestand als
{baseDir} - Scriptpad =
{baseDir}/scripts/<script-naam>.ts - Vervang alle
{baseDir}in dit document door het daadwerkelijke pad - Bepaal de
${BUN_X}runtime: alsbungeïnstalleerd is →bun; alsnpxbeschikbaar is →npx -y bun; stel anders voor bun te installeren
Scriptreferentie:
| Script | Doel |
|---|---|
scripts/x-browser.ts | Reguliere berichten (tekst + afbeeldingen), CDP-terugval |
scripts/x-video.ts | Videoberichten (tekst + video), CDP-terugval |
scripts/x-quote.ts | Citaat-tweet met opmerking, CDP-terugval |
scripts/x-article.ts | Lange artikelpublicatie (Markdown), CDP-terugval |
scripts/md-to-html.ts | Markdown → HTML conversie |
scripts/copy-to-clipboard.ts | Inhoud naar klembord kopiëren |
scripts/paste-from-clipboard.ts | Echte plaktoetsaanslag verzenden |
scripts/check-paste-permissions.ts | Omgeving en machtigingen controleren |
Uitvoeringsmodus selecteren (Verplicht)
Kies precies één modus voordat u met X communiceert:
- Als de gebruiker expliciet om de Codex Chrome-plugin,
@chrome, de Chrome-extensie, of "Codex 自带的 Chrome 插件" vraagt, gebruik dan Codex Chrome Plugin-modus. Roep Computer Use niet eerst aan. - Als de gebruiker expliciet om Chrome Computer Use vraagt, gebruik dan Chrome Computer Use-modus. Schakel niet terug naar CDP, Playwright, de in-app browser of de Chrome-plugin zonder de gebruiker hiervan op de hoogte te stellen en goedkeuring te krijgen.
- Als de gebruiker expliciet om CDP/scriptmodus vraagt, gebruik dan CDP-scriptmodus.
- Anders, geef de voorkeur aan Chrome Computer Use-modus. Voor Markdown X-artikelen met lokale inhoudsafbeeldingen, gebruik de geteste X-editorstroom: voeg elke afbeelding in de hoofdtekst in vanaf de werkbalk (
Invoegen->Media-> dialoogvensterknopFoto's of video toevoegen) op de tijdelijke aanduiding, en verwijder vervolgens de tijdelijke aanduidingstekst. Gebruik CDP-scriptmodus alleen wanneer de geselecteerde browserbesturingsmodus niet beschikbaar is of de stroom voor uploaden/selecteren via de UI onbetrouwbaar is.
Gebruik nooit de in-app browser voor X-publicatieworkflows.
Codex Chrome Plugin-modus
Gebruik deze modus wanneer de gebruiker de Codex Chrome-plugin, @chrome, of het pad van de Chrome-extensie aanvraagt. Dit maakt gebruik van het echte Chrome-profiel en X-login van de gebruiker via de meegeleverde Chrome-plugin, niet Computer Use en niet CDP.
Installatie
- Laad de
chrome:Chrome-vaardigheid voordat u met de browser werkt. - Gebruik
tool_searchvoornode_repl jsals dejs-tool van Node REPL nog niet zichtbaar is. - Initialiseer de Chrome-browserclient precies zoals gespecificeerd door de Chrome-vaardigheid, en voer vervolgens een lichtgewicht aanroep uit zoals
browser.user.openTabs()om de extensieverbinding te controleren. - Als de eerste lichtgewicht aanroep mislukt, wacht dan 2 seconden en probeer het opnieuw. Als het nog steeds mislukt, volg dan de stappen voor extensiecontrole en herstel van de Chrome-vaardigheid. Als de controles slagen maar de communicatie nog steeds mislukt, vraag de gebruiker dan voordat u een nieuw Chrome-venster opent. Schakel niet stilletjes over naar Computer Use of CDP.
Algemene regels
- Gebruik de
browser.tabs.*,tab.playwright.*,tab.cua.*en bestandskiezer-API's van de Chrome-plugin voor X UI-acties. - Shell-commando's zijn toegestaan voor Markdown-voorverwerking en voorbereiding van rich-HTML-klembord. Voor afbeeldingen in de hoofdtekst van X-artikelen, vertrouw niet op plakken van afbeeldingen vanaf het klembord; gebruik de uploadstroom van de editor:
Invoegen->Media. - Als een bestandsupload mislukt met
Niet toegestaan, vertel de gebruiker dan:Ga naar chrome://extensions in Chrome, klik op Details onder de Codex-extensie en schakel "Toegang tot bestand-URL's toestaan" in om bestandsupload mogelijk te maken. Zie https://developers.openai.com/codex/app/chrome-extension#upload-files voor details. - Als de Chrome-plugin
native pipe is geslotenmeldt, probeer dan de lichtgewicht browseraanroep opnieuw na 2 seconden, en voer vervolgens de gezondheidscontroles van de Chrome-vaardigheid uit. Als Chrome actief is, de extensie is ingeschakeld en het manifest van de native host correct is, vraag dan toestemming om een nieuw Chrome-venster te openen en probeer het opnieuw. Blijf geen browseracties verzenden via de verbroken pipe. - Klik nooit op
Publiceren,Postenof een andere extern zichtbare verzendactie zonder expliciete definitieve bevestiging van de gebruiker in de huidige conversatie.
X-artikelen
- Converteer Markdown en behoud de afbeeldingskaart:
${BUN_X} {baseDir}/scripts/md-to-html.ts artikel.md --save-html /tmp/x-artikel-hoofdtekst.html > /tmp/x-artikel.json - Lees de JSON-uitvoer voor
title,coverImageencontentImages(placeholder→localPath). - Open of maak het artikelconcept op
https://x.com/compose/articles. - Upload de omslag met de bestandskiezerstroom van de Chrome-plugin. Als de upload wordt geblokkeerd door extensiemachtigingen, stop dan en rapporteer de exacte machtigingsoplossing hierboven.
- Vul de titel in en kopieer vervolgens rich HTML:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-artikel-hoofdtekst.html - Plak in de artikeltekst met een echte plaktoetsaanslag via de Chrome-plugin. Gebruik op macOS
Meta+V. - Controleer of de tekst in de editor de artikeltekst en
XIMGPH_-tijdelijke aanduidingen bevat. Vertrouw niet optab.clipboard.readText()als bewijs van het systeemklembord na schrijfbewerkingen door shell; controleer op macOS indien nodig metpbpaste. - Voor elk
contentImages-item in volgorde van tijdelijke aanduidingen:- Zoek de zichtbare tijdelijke aanduiding (
XIMGPH_N) en klik erop om de cursor daar te plaatsen. - Open het werkbalkmenu
Invoegen->Media. - Klik in het modale venster op de pictogramknop met
aria-label="Foto's of video toevoegen"; klik niet op de tekst/dropzone of verborgen bestandsinvoer. - Gebruik de bestandskiezer om het
localPathvan die afbeelding te uploaden. - Nadat de afbeelding verschijnt, als
XIMGPH_Nerboven blijft, selecteer dan precies die tijdelijke aanduiding en druk eerst opDelete. GebruikBackspacealleen alsDeletemislukt en de geselecteerde tekst is bevestigd als exact de tijdelijke aanduiding. - Controleer of het aantal tijdelijke aanduidingen voor die
XIMGPH_N0is.
- Zoek de zichtbare tijdelijke aanduiding (
- Open Voorbeeld en controleer titel, omslag, hoofdtekst, links en afbeeldingen.
- Vraag om expliciete bevestiging voordat u op
Publicerenklikt.
Voorkeuren (EXTEND.md)
Controleer EXTEND.md in volgorde van prioriteit — de eerste die wordt gevonden, wint:
| Prioriteit | Pad | Bereik |
|---|---|---|
| 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 | Gebruikers- home |
Als er geen wordt gevonden, gebruik dan de standaardwaarden.
EXTEND.md ondersteunt: Standaard Chrome-profiel
Vereisten
- Google Chrome of Chromium
bunruntime- Eerste keer uitvoeren: handmatig inloggen op X (sessie opgeslagen)
Voorbereidingscontrole (Optioneel)
Stel voor om de omgevingscontrole uit te voeren voor het eerste gebruik. De gebruiker kan deze overslaan als hij dat liever wil.
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
Controles: Chrome, profielisolatie, Bun, Toegankelijkheid, klembord, plaktoetsaanslag, Chrome-conflicten.
Als een controle mislukt, geef dan herstelinstructies per item:
| Controle | Oplossing |
|---|---|
| Chrome | Installeer Chrome of stel de omgevingsvariabele X_BROWSER_CHROME_PATH in |
| Profielmap | Gedeeld profiel op baoyu-skills/chrome-profile (zie CLAUDE.md Chrome-profiel sectie) |
| Bun runtime | brew install oven-sh/bun/bun (macOS) of npm install -g bun |
| Toegankelijkheid (macOS) | Systeemvoorkeuren → Privacy & Beveiliging → Toegankelijkheid → schakel terminal-app in |
| Klembord kopiëren | Zorg ervoor dat Swift/AppKit beschikbaar is (macOS Xcode CLI-tools: xcode-select --install) |
| Plaktoetsaanslag (macOS) | Zelfde als toegankelijkheidsoplossing hierboven |
| Plaktoetsaanslag (Linux) | Installeer xdotool (X11) of ydotool (Wayland) |
Verwijzingen
- Reguliere berichten: Zie
references/regular-posts.mdvoor handmatige workflow, probleemoplossing en technische details - X-artikelen: Zie
references/articles.mdvoor de handleiding voor het publiceren van lange artikelen
Chrome Computer Use-modus
Gebruik deze modus wanneer de gebruiker expliciet om Chrome Computer Use vraagt, of wanneer er geen voorkeur voor de Chrome-plugin is aangegeven en Codex Google Chrome kan besturen met Computer Use. Dit maakt gebruik van het bestaande Chrome-venster, cookies, login, extensies en X-sessie van de gebruiker.
Algemene regels:
- Begin elke assistent-beurt die Chrome bestuurt met het aanroepen van
get_app_statevoorGoogle Chrome. - Geef de voorkeur aan element-indexacties wanneer beschikbaar; gebruik coördinaten alleen voor tekstselectie in de editor of slepen.
- Gebruik in deze modus niet de in-app browser, de Chrome-plugin, Playwright of CDP voor X UI-acties, tenzij de gebruiker een moduswijziging goedkeurt.
- Klik nooit op
Publiceren,Postenof een andere extern zichtbare verzendactie zonder een expliciete definitieve bevestiging van de gebruiker in de huidige conversatie.
Reguliere berichten:
- Open Chrome of navigeer naar
https://x.com/compose/post. - Typ de berichttekst in de componist met Computer Use.
- Voer voor elke afbeelding uit:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png - Plak met Computer Use (
super+vop macOS,control+vop Windows/Linux) en wacht tot X klaar is met het uploaden van media. - Vraag om bevestiging voordat u op
Postenklikt.
Videoberichten:
- Open Chrome of navigeer naar
https://x.com/compose/post. - Typ de berichttekst in de componist.
- Gebruik de zichtbare UI voor media-upload/bestandskiezer om de video bij te voegen.
- Wacht tot het uploaden en verwerken is voltooid.
- Vraag om bevestiging voordat u op
Postenklikt.
Citaat-tweets:
- Open de tweet-URL in Chrome.
- Gebruik de zichtbare UI voor citeren/herposten om Citeren te kiezen.
- Typ de opmerking.
- Vraag om bevestiging voordat u op
Postenklikt.
X-artikelen:
- Converteer Markdown en behoud de afbeeldingskaart:
${BUN_X} {baseDir}/scripts/md-to-html.ts artikel.md --save-html /tmp/x-artikel-hoofdtekst.html > /tmp/x-artikel.json - Lees de JSON-uitvoer voor
title,coverImageencontentImages(placeholder→localPath). - Open in Chrome
https://x.com/compose/articles, maak of open het concept, upload de omslag indien aanwezig en vul de titel in. - Kopieer rich HTML naar het klembord:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-artikel-hoofdtekst.html - Plak in de artikeltekst met Computer Use.
- Voor elk
contentImages-item in volgorde van tijdelijke aanduidingen:- Zoek de exacte zichtbare tijdelijke aanduiding zoals
XIMGPH_3en klik erop om het invoegpunt in te stellen. - Open de vervolgkeuzelijst
Invoegenop de werkbalk, kiesMediaen klik vervolgens op de pictogramknop in het modale venster met het labelFoto's of video toevoegen. - Gebruik de native bestandskiezer om het
localPathvan de afbeelding te kiezen. - Wacht tot het afbeeldingsblok verschijnt en alle uploadactiviteit is voltooid.
- Als de tijdelijke aanduiding boven de ingevoegde afbeelding blijft, selecteer dan opnieuw exact die tijdelijke aanduiding en druk eerst op
Delete. GebruikBackspacealleen alsDeletemislukt en de geselecteerde tekst is bevestigd als exact de tijdelijke aanduiding.
- Zoek de exacte zichtbare tijdelijke aanduiding zoals
- Controleer of er geen
XIMGPH_-tijdelijke aanduidingen meer zijn en of de verwachte afbeeldingen verschijnen. - Open Voorbeeld en controleer titel, omslag, hoofdtekst, links en afbeeldingen.
- Vraag om expliciete bevestiging voordat u op
Publicerenklikt.
Als de selectie, werkbalkupload of bestandskiezerbesturing met Computer Use onbetrouwbaar wordt, stop dan en rapporteer de blokkade in plaats van stilletjes over te schakelen naar de Chrome-plugin of CDP.
CDP-scriptmodus (Terugval)
Gebruik de onderstaande scriptsecties alleen wanneer de geselecteerde browserbesturingsmodus niet beschikbaar, onbetrouwbaar of expliciet niet aangevraagd is. Deze scripts starten of hergebruiken een echte Chrome-instantie via CDP en houden de browser open ter beoordeling.
Gebruik de CDP-scriptmodus niet wanneer de gebruiker expliciet de Codex Chrome-plugin of Chrome Computer Use vereist, tenzij de gebruiker de terugval goedkeurt nadat u de blokkade hebt uitgelegd.
Selectie berichttype
Tenzij de gebruiker expliciet het berichttype specificeert:
- Platte tekst + minder dan 10.000 tekens → Regulier bericht (Premium-leden ondersteunen tot 10.000 tekens, niet-Premium: 280)
- Markdown-bestand (.md) → X-artikel
Reguliere berichten
${BUN_X} {baseDir}/scripts/x-browser.ts "Hello!" --image ./photo.png
Parameters:
| Parameter | Beschrijving |
|---|---|
<text> | Berichtinhoud (positioneel) |
--image <path> | Afbeeldingsbestand (herhaalbaar, max 4) |
--profile <dir> | Aangepast Chrome-profiel |
Opmerking: Script opent browser met ingevulde inhoud. Gebruiker beoordeelt en publiceert handmatig.
Opmerking over Codex-modus: Als de gebruiker expliciet om de Codex Chrome-plugin heeft gevraagd, gebruik dan Codex Chrome Plugin-modus. Anders, als Chrome Computer Use is ingeschakeld, gebruik dan Chrome Computer Use-modus in plaats van x-browser.ts uit te voeren.
Videoberichten
Tekst + videobestand.
${BUN_X} {baseDir}/scripts/x-video.ts "Check this out!" --video ./clip.mp4
Parameters:
| Parameter | Beschrijving |
|---|---|
<text> | Berichtinhoud (positioneel) |
--video <path> | Videobestand (MP4, MOV, WebM) |
--profile <dir> | Aangepast Chrome-profiel |
Opmerking: Script opent browser met ingevulde inhoud. Gebruiker beoordeelt en publiceert handmatig.
Opmerking over Codex-modus: Als de gebruiker expliciet om de Codex Chrome-plugin heeft gevraagd, gebruik dan Codex Chrome Plugin-modus. Anders, als Chrome Computer Use is ingeschakeld, gebruik dan Chrome Computer Use-modus in plaats van x-video.ts uit te voeren.
Limieten: Normaal max 140s, Premium 60 min. Verwerking: 30-60s.
Citaat-tweets
Citeer een bestaande tweet met opmerking.
${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!"
Parameters:
| Parameter | Beschrijving |
|---|---|
<tweet-url> | URL om te citeren (positioneel) |
<comment> | Opmerkings-tekst (positioneel, optioneel) |
--profile <dir> | Aangepast Chrome-profiel |
Opmerking: Script opent browser met ingevulde inhoud. Gebruiker beoordeelt en publiceert handmatig.
Opmerking over Codex-modus: Als de gebruiker expliciet om de Codex Chrome-plugin heeft gevraagd, gebruik dan Codex Chrome Plugin-modus. Anders, als Chrome Computer Use is ingeschakeld, gebruik dan Chrome Computer Use-modus in plaats van x-quote.ts uit te voeren.
X-artikelen
Lange Markdown-artikelen (vereist X Premium).
${BUN_X} {baseDir}/scripts/x-article.ts artikel.md
${BUN_X} {baseDir}/scripts/x-article.ts artikel.md --cover ./cover.jpg
Parameters:
| Parameter | Beschrijving |
|---|---|
<markdown> | Markdown-bestand (positioneel) |
--cover <path> | Omslagafbeelding |
--title <text> | Titel overschrijven |
Frontmatter: title, cover_image ondersteund in YAML front matter.
Opmerking over Codex-modus: Als de gebruiker expliciet om de Codex Chrome-plugin heeft gevraagd, volg dan Codex Chrome Plugin-modus hierboven. Als de gebruiker expliciet om Chrome Computer Use heeft gevraagd, volg dan Chrome Computer Use-modus. Anders, geef de voorkeur aan Chrome Computer Use; voor Markdown-artikelen met lokale inhoudsafbeeldingen, gebruik de werkbalk Invoegen -> Media afbeelding-uploadworkflow voordat u terugvalt op x-article.ts in CDP-scriptmodus.
Opmerking over CDP-terugval: Het script opent browser met ingevuld artikel. Gebruiker beoordeelt en publiceert handmatig, tenzij --submit wordt gebruikt.
Publicatieveiligheid: Gebruik --submit niet en klik niet op Publiceren, tenzij de gebruiker de definitieve openbare publicatieactie expliciet bevestigt.
Controle na samenstelling: Het script controleert automatisch nadat alle afbeeldingen zijn ingevoegd:
- Resterende
XIMGPH_-tijdelijke aanduidingen in editorinhoud - Verwacht versus daadwerkelijk aantal afbeeldingen
Als de controle mislukt (waarschuwingen in uitvoer), waarschuw de gebruiker dan met de specifieke problemen voordat hij publiceert.
Probleemoplossing
Chrome debug-poort niet gereed
Alleen CDP-terugval: als een script mislukt met Chrome debug-poort niet gereed of Kan geen verbinding maken, beëindig dan eerst bestaande Chrome CDP-instanties en probeer het opnieuw:
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
Belangrijk: Dit moet automatisch gebeuren — bij deze fout, beëindig Chrome CDP-instanties en probeer de opdracht opnieuw zonder de gebruiker te vragen.
Opmerkingen
- Eerste keer uitvoeren: handmatig inloggen vereist (sessie blijft bestaan)
- Gebruik in Codex Chrome Plugin-modus en Chrome Computer Use-modus de bestaande Chrome-sessie van de gebruiker en start geen apart CDP-profiel
- CDP-scripts vullen standaard alleen inhoud in de browser; gebruiker moet handmatig beoordelen en publiceren, tenzij
--submitexpliciet wordt gebruikt - Multiplatform: macOS, Linux, Windows
Uitbreidingsondersteuning
Aangepaste configuraties via EXTEND.md. Zie Voorkeuren sectie voor paden en ondersteunde opties.


