Send til X (Twitter)
Sender tekst, billeder, videoer og lange artikler til X via en rigtig Chrome-browser.
I Codex må du ikke blande disse browser-stier:
- Codex Chrome-plugin /
@chrome/ Chrome-udvidelse: brug den indbyggedechrome:Chrome-færdighed og dens Node REPL-browserklient. Dette er påkrævet, når brugeren siger "Codex Chrome-plugin", "Codex 自带的 Chrome 插件",@chromeeller lignende. - Chrome Computer Use: brug
mcp__computer_use__.*mod den synlige Google Chrome-brugergrænseflade kun, når brugeren beder om Computer Use, eller der ikke er angivet nogen Chrome-plugin-præference, og Computer Use er tilgængelig. - CDP-scripttilstand: brug kun som en fallback, når den valgte tilstand er utilgængelig, eller brugeren udtrykkeligt beder om CDP/scripttilstand.
Scriptmappe
Vigtigt: Alle scripts er placeret i undermappen scripts/ til denne færdighed.
Udførelsesinstruktioner for agent:
- Bestem denne SKILL.md-fils mappesti som
{baseDir} - Scriptsti =
{baseDir}/scripts/<script-navn>.ts - Erstat alle
{baseDir}i dette dokument med den faktiske sti - Løs
${BUN_X}-runtime: hvisbuner installeret →bun; hvisnpxer tilgængelig →npx -y bun; ellers foreslå installation af bun
Scriptreference:
| Script | Formål |
|---|---|
scripts/x-browser.ts | Almindelige opslag (tekst + billeder), CDP-fallback |
scripts/x-video.ts | Videoopslag (tekst + video), CDP-fallback |
scripts/x-quote.ts | Citér tweet med kommentar, CDP-fallback |
scripts/x-article.ts | Langformet artikeludgivelse (Markdown), CDP-fallback |
scripts/md-to-html.ts | Markdown → HTML-konvertering |
scripts/copy-to-clipboard.ts | Kopier indhold til udklipsholder |
scripts/paste-from-clipboard.ts | Send ægte indsæt-tastetryk |
scripts/check-paste-permissions.ts | Bekræft miljø og tilladelser |
Valg af udførelsestilstand (Påkrævet)
Vælg præcis én tilstand, før du interagerer med X:
- Hvis brugeren udtrykkeligt beder om Codex Chrome-plugin,
@chrome, Chrome-udvidelsen eller "Codex 自带的 Chrome 插件", så brug Codex Chrome-plugin-tilstand. Kald ikke Computer Use først. - Hvis brugeren udtrykkeligt beder om Chrome Computer Use, så brug Chrome Computer Use-tilstand. Fald ikke tilbage til CDP, Playwright, den indbyggede browser eller Chrome-plugin uden at fortælle det til brugeren og få godkendelse.
- Hvis brugeren udtrykkeligt beder om CDP/scripttilstand, så brug CDP Script-tilstand.
- Ellers foretræk Chrome Computer Use-tilstand. For X-artikler med Markdown og lokale indholdsbilleder skal du bruge den testede X-redigeringsarbejdsgang: indsæt hvert brødtekstbillede fra værktøjslinjen (
Indsæt->Medie-> dialog-ikonknapTilføj fotos eller video) på dets pladsholder, og slet derefter pladsholderteksten. Brug CDP Script-tilstand kun, når den valgte browser-kontroltilstand er utilgængelig, eller UI-upload-/valgflowet er upålidelig.
Brug aldrig den indbyggede browser til X-udgivelsesarbejdsgange.
Codex Chrome-plugin-tilstand
Brug denne tilstand, når brugeren anmoder om Codex Chrome-plugin, @chrome eller Chrome-udvidelsesstien. Dette bruger brugerens rigtige Chrome-profil og X-login gennem den indbyggede Chrome-plugin, ikke Computer Use og ikke CDP.
Opsætning
- Indlæs færdigheden
chrome:Chromefør browserarbejde. - Brug
tool_searchtilnode_repl js, hvis Node REPLjs-værktøjet ikke allerede er synligt. - Initialiser Chrome-browserklienten præcis som specificeret af Chrome-færdigheden, og kør derefter et letvægtskald såsom
browser.user.openTabs()for at bekræfte udvidelsesforbindelsen. - Hvis det første letvægtskald mislykkes, skal du vente 2 sekunder og prøve igen én gang. Hvis det stadig mislykkes, skal du følge Chrome-færdighedens udvidelseskontrol og gendannelsestrin. Hvis kontrollerne består, men kommunikationen stadig mislykkes, skal du spørge brugeren, før du åbner et nyt Chrome-vindue. Skift ikke stille til Computer Use eller CDP.
Generelle regler
- Brug Chrome-pluginnets
browser.tabs.*,tab.playwright.*,tab.cua.*og filvælger-API'er til X UI-handlinger. - Shellkommandoer er tilladt til Markdown-forbehandling og forberedelse af rig HTML-udklipsholder. For billeder i X-artiklens brødtekst skal du ikke stole på indsættelse af billedudklipsholder; brug redaktørens
Indsæt->Medieuploadflow. - Hvis en filupload mislykkes med
Ikke tilladt, så fortæl brugeren:For at aktivere filupload skal du gå til chrome://extensions i Chrome, klikke på Detaljer under Codex-udvidelsen og aktivere "Tillad adgang til fil-URL'er". Se https://developers.openai.com/codex/app/chrome-extension#upload-files for detaljer. - Hvis Chrome-pluginnet rapporterer
native pipe is closed, skal du prøve det letvægts browserkald én gang efter 2 sekunder og derefter køre Chrome-færdighedens sundhedstjek. Hvis Chrome kører, udvidelsen er aktiveret, og native host-manifestet er korrekt, skal du bede om tilladelse til at åbne et nyt Chrome-vindue og prøve igen. Bliv ikke ved med at sende browserhandlinger gennem den ødelagte pipe. - Klik aldrig på
Udgiv,Send, eller nogen eksternt synlig indsendelseshandling uden udtrykkelig endelig bekræftelse fra brugeren i den aktuelle samtale.
X-artikler
- Konverter Markdown og behold billedkortet:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Læs JSON-uddata for
title,coverImageogcontentImages(placeholder->localPath). - Åbn eller opret artikeludkastet på
https://x.com/compose/articles. - Upload forsidebilledet med Chrome-pluggets filvælgerflow. Hvis upload er blokeret af udvidelsestilladelser, skal du stoppe og rapportere den nøjagtige tilladelsesrettelse ovenfor.
- Udfyld titlen, og kopier derefter rig HTML:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Indsæt i artikelbrødteksten med et ægte indsæt-tastetryk gennem Chrome-pluginnet. På macOS brug
Meta+V. - Bekræft, at redaktørens tekst indeholder artikelbrødteksten og
XIMGPH_pladsholdere. Stol ikke påtab.clipboard.readText()som bevis på systemudklipsholderen efter shell-udklipsholderskrivninger; på macOS bekræft medpbpasteefter behov. - For hvert
contentImages-element i pladsholder-rækkefølge:- Find den synlige pladsholdertekst (
XIMGPH_N), og klik på den for at placere markøren der. - Åbn værktøjslinjemenuen
Indsæt->Medie. - I modalvinduet skal du klikke på ikonknappen med
aria-label="Tilføj fotos eller video"; klik ikke på teksten/dropzonen eller skjult filinput. - Brug filvælgeren til at uploade dette billedes
localPath. - Når billedet vises, hvis
XIMGPH_Nstadig er over det, skal du markere præcis denne pladsholder og trykke påDeleteførst. Brug kunBackspace, hvisDeletemislykkes, og den valgte tekst bekræftes at være præcis pladsholderen. - Bekræft, at pladsholderantallet for denne
XIMGPH_Ner0.
- Find den synlige pladsholdertekst (
- Åbn Forhåndsvisning og bekræft titel, forside, brødtekst, links og billeder.
- Bed om udtrykkelig bekræftelse, før du klikker på
Udgiv.
Præferencer (EXTEND.md)
Tjek EXTEND.md i prioritetsrækkefølge — den første, der findes, vinder:
| Prioritet | Sti | Omfang |
|---|---|---|
| 1 | .baoyu-skills/baoyu-post-to-x/EXTEND.md | Projekt |
| 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 | Brugerhjem |
Hvis ingen findes, brug standarder.
EXTEND.md understøtter: Standard Chrome-profil
Forudsætninger
- Google Chrome eller Chromium
bunruntime- Første kørsel: log ind på X manuelt (session gemmes)
Pre-flight-tjek (Valgfrit)
Før første brug foreslås det at køre miljøtjekket. Brugeren kan springe over, hvis de foretrækker det.
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
Tjekker: Chrome, profil-isolation, Bun, Tilgængelighed, udklipsholder, indsæt-tastetryk, Chrome-konflikter.
Hvis et tjek mislykkes, giv rettelsesvejledning pr. element:
| Tjek | Rettelse |
|---|---|
| Chrome | Installer Chrome eller indstil X_BROWSER_CHROME_PATH miljøvariabel |
| Profilmappe | Delt profil i baoyu-skills/chrome-profile (se CLAUDE.md Chrome Profile-sektionen) |
| Bun runtime | brew install oven-sh/bun/bun (macOS) eller npm install -g bun |
| Tilgængelighed (macOS) | Systemindstillinger → Privatliv og sikkerhed → Tilgængelighed → aktiver terminalapp |
| Udklipsholder kopiering | Sørg for, at Swift/AppKit er tilgængeligt (macOS Xcode CLI-værktøjer: xcode-select --install) |
| Indsæt-tastetryk (macOS) | Samme som Tilgængeligheds-rettelse ovenfor |
| Indsæt-tastetryk (Linux) | Installer xdotool (X11) eller ydotool (Wayland) |
Referencer
- Almindelige opslag: Se
references/regular-posts.mdfor manuel arbejdsgang, fejlfinding og tekniske detaljer - X-artikler: Se
references/articles.mdfor guide til langformet artikeludgivelse
Chrome Computer Use-tilstand
Brug denne tilstand, når brugeren udtrykkeligt beder om Chrome Computer Use, eller når der ikke er angivet nogen Chrome-plugin-præference, og Codex kan styre Google Chrome med Computer Use. Dette bruger brugerens eksisterende Chrome-vindue, cookies, login, udvidelser og X-session.
Generelle regler:
- Start hver assistent-tur, der styrer Chrome, med at kalde
get_app_stateforGoogle Chrome. - Foretræk element-indeks-handlinger, når de er tilgængelige; brug kun koordinater til redigering af redaktørtekst eller trækmarkering.
- Brug ikke den indbyggede browser, Chrome-plugin, Playwright eller CDP til X UI-handlinger i denne tilstand, medmindre brugeren godkender et tilstandsskift.
- Klik aldrig på
Udgiv,Send, eller nogen eksternt synlig indsendelseshandling uden udtrykkelig endelig bekræftelse fra brugeren i den aktuelle samtale.
Almindelige opslag:
- Åbn eller naviger Chrome til
https://x.com/compose/post. - Skriv opslagsteksten ind i komponeringsfeltet ved hjælp af Computer Use.
- For hvert billede kør:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolut/sti/til/billede.png - Indsæt med Computer Use (
super+vpå macOS,control+vpå Windows/Linux), og vent derefter, indtil X er færdig med at uploade medier. - Bed om bekræftelse, før du klikker på
Send.
Videoopslag:
- Åbn eller naviger Chrome til
https://x.com/compose/post. - Skriv opslagsteksten ind i komponeringsfeltet.
- Brug den synlige medieupload/filvælger-UI til at vedhæfte videoen.
- Vent på, at upload og behandling er fuldført.
- Bed om bekræftelse, før du klikker på
Send.
Citér tweets:
- Åbn tweet-URL'en i Chrome.
- Brug den synlige citat/repost-UI til at vælge Citat.
- Skriv kommentaren.
- Bed om bekræftelse, før du klikker på
Send.
X-artikler:
- Konverter Markdown og behold billedkortet:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Læs JSON-uddata for
title,coverImageogcontentImages(placeholder->localPath). - I Chrome skal du åbne
https://x.com/compose/articles, oprette eller åbne udkastet, uploade forsidebilledet, hvis det findes, og udfylde titlen. - Kopier rig HTML til udklipsholderen:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Indsæt i artikelbrødteksten med Computer Use.
- For hver
contentImages-post i pladsholder-rækkefølge:- Find den nøjagtige synlige pladsholdertekst som
XIMGPH_3, og klik på den for at indstille indsættelsespunktet. - Åbn værktøjslinjens
Indsæt-dropdown, vælgMedie, og klik derefter på modalets ikonknap mærketTilføj fotos eller video. - Brug den native filvælger til at vælge billedets
localPath. - Vent, indtil billedblokken vises, og eventuel uploadaktivitet er afsluttet.
- Hvis pladsholderen stadig sidder over det indsatte billede, skal du genmarkere præcis denne pladsholdertekst og trykke på
Deleteførst. Brug kunBackspace, hvisDeletemislykkes, og den valgte tekst bekræftes at være præcis pladsholderen.
- Find den nøjagtige synlige pladsholdertekst som
- Bekræft, at ingen
XIMGPH_pladsholdere er tilbage, og de forventede billeder vises. - Åbn Forhåndsvisning og bekræft titel, forside, brødtekst, links og billeder.
- Bed om udtrykkelig bekræftelse, før du klikker på
Udgiv.
Hvis Computer Use-markering, værktøjslinjeupload eller filvælgerstyring bliver upålidelig, skal du stoppe og rapportere blokeringen i stedet for stiltiende at skifte til Chrome-plugin eller CDP.
CDP Script-tilstand (Fallback)
Brug scriptafsnittene nedenfor kun, når den valgte browser-kontroltilstand er utilgængelig, upålidelig eller udtrykkeligt ikke anmodet. Disse scripts starter eller genbruger en rigtig Chrome-instans via CDP og holder browseren åben til gennemsyn.
Brug ikke CDP Script-tilstand, når brugeren udtrykkeligt kræver Codex Chrome-plugin eller Chrome Computer Use, medmindre brugeren godkender fallbacken, efter du har forklaret blokeringen.
Opslagstypevalg
Medmindre brugeren udtrykkeligt specificerer opslagstypen:
- Ren tekst + inden for 10.000 tegn → Almindeligt opslag (Premium-medlemmer understøtter op til 10.000 tegn, ikke-Premium: 280)
- Markdown-fil (.md) → X-artikel
Almindelige opslag
${BUN_X} {baseDir}/scripts/x-browser.ts "Hej!" --image ./photo.png
Parametre:
| Parameter | Beskrivelse |
|---|---|
<text> | Opslagsindhold (positionel) |
--image <sti> | Billedfil (kan gentages, maks. 4) |
--profile <mappe> | Brugerdefineret Chrome-profil |
Bemærk: Script åbner browser med udfyldt indhold. Bruger gennemgår og udgiver manuelt.
Codex-tilstandsbemærkning: Hvis brugeren udtrykkeligt har anmodet om Codex Chrome-plugin, skal du bruge Codex Chrome-plugin-tilstand. Ellers, hvis Chrome Computer Use er aktiveret, skal du bruge Chrome Computer Use-tilstand i stedet for at køre x-browser.ts.
Videoopslag
Tekst + videofil.
${BUN_X} {baseDir}/scripts/x-video.ts "Se her!" --video ./clip.mp4
Parametre:
| Parameter | Beskrivelse |
|---|---|
<text> | Opslagsindhold (positionel) |
--video <sti> | Videofil (MP4, MOV, WebM) |
--profile <mappe> | Brugerdefineret Chrome-profil |
Bemærk: Script åbner browser med udfyldt indhold. Bruger gennemgår og udgiver manuelt.
Codex-tilstandsbemærkning: Hvis brugeren udtrykkeligt har anmodet om Codex Chrome-plugin, skal du bruge Codex Chrome-plugin-tilstand. Ellers, hvis Chrome Computer Use er aktiveret, skal du bruge Chrome Computer Use-tilstand i stedet for at køre x-video.ts.
Grænser: Almindelig 140s maks, Premium 60min. Behandling: 30-60s.
Citér tweets
Citér et eksisterende tweet med kommentar.
${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Fantastisk indsigt!"
Parametre:
| Parameter | Beskrivelse |
|---|---|
<tweet-url> | URL, der skal citeres (positionel) |
<kommentar> | Kommentartekst (positionel, valgfri) |
--profile <mappe> | Brugerdefineret Chrome-profil |
Bemærk: Script åbner browser med udfyldt indhold. Bruger gennemgår og udgiver manuelt.
Codex-tilstandsbemærkning: Hvis brugeren udtrykkeligt har anmodet om Codex Chrome-plugin, skal du bruge Codex Chrome-plugin-tilstand. Ellers, hvis Chrome Computer Use er aktiveret, skal du bruge Chrome Computer Use-tilstand i stedet for at køre x-quote.ts.
X-artikler
Langformede Markdown-artikler (kræver X Premium).
${BUN_X} {baseDir}/scripts/x-article.ts article.md
${BUN_X} {baseDir}/scripts/x-article.ts article.md --cover ./cover.jpg
Parametre:
| Parameter | Beskrivelse |
|---|---|
<markdown> | Markdown-fil (positionel) |
--cover <sti> | Forsidebillede |
--title <tekst> | Overskriv titel |
Forside: title, cover_image understøttes i YAML-forside.
Codex-tilstandsbemærkning: Hvis brugeren udtrykkeligt har anmodet om Codex Chrome-plugin, skal du følge Codex Chrome-plugin-tilstand ovenfor. Hvis brugeren udtrykkeligt har anmodet om Chrome Computer Use, skal du følge Chrome Computer Use-tilstand. Ellers foretræk Chrome Computer Use; for Markdown-artikler med lokale indholdsbilleder skal du bruge værktøjslinjens Indsæt -> Medie billedupload-workflow, før du falder tilbage til x-article.ts i CDP Script-tilstand.
CDP fallback-bemærkning: Scriptet åbner browser med artikel udfyldt. Bruger gennemgår og udgiver manuelt, medmindre --submit bruges.
Udgivelsessikkerhed: Brug ikke --submit eller klik på Udgiv, medmindre brugeren udtrykkeligt bekræfter den endelige offentlige udgivelseshandling.
Post-kompositionstjek: Scriptet verificerer automatisk efter alle billeder er indsat:
- Resterende
XIMGPH_pladsholdere i redaktørens indhold - Forventet vs faktisk billedantal
Hvis tjekket mislykkes (advarsler i output), skal du advare brugeren med de specifikke problemer, før de udgiver.
Fejlfinding
Chrome debug-port er ikke klar
Kun CDP fallback: hvis et script mislykkes med Chrome debug port not ready eller Unable to connect, dræb eksisterende Chrome CDP-instanser først, og prøv derefter igen:
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
Vigtigt: Dette skal gøres automatisk — når du støder på denne fejl, dræb Chrome CDP-instanser og prøv kommandoen igen uden at spørge brugeren.
Noter
- Første kørsel: manuel login påkrævet (session bevares)
- I Codex Chrome-plugin-tilstand og Chrome Computer Use-tilstand skal du bruge brugerens eksisterende Chrome-session og ikke starte en separat CDP-profil
- CDP-scripts udfylder kun indhold i browseren som standard; brugeren skal gennemgå og udgive manuelt, medmindre
--submitudtrykkeligt bruges - Cross-platform: macOS, Linux, Windows
Udvidelsessupport
Brugerdefinerede konfigurationer via EXTEND.md. Se Præferencer-sektionen for stier og understøttede muligheder.


