Publikuj na X (Twitter)
Publikuje tekst, obrazy, filmy i długie artykuły na X za pomocą prawdziwej przeglądarki Chrome.
W Codex nie mieszaj tych ścieżek przeglądarki:
- Wtyczka Chrome Codex /
@chrome/ Rozszerzenie Chrome: użyj dołączonej umiejętnościchrome:Chromei jej klienta przeglądarki Node REPL. Jest to wymagane, gdy użytkownik mówi "Wtyczka Chrome Codex", "Codex 自带的 Chrome 插件",@chromelub podobnie. - Chrome Computer Use: używaj
mcp__computer_use__.*przeciwko widocznemu interfejsowi Google Chrome tylko wtedy, gdy użytkownik prosi o Computer Use lub nie określił preferencji co do wtyczki Chrome, a Computer Use jest dostępne. - Tryb skryptu CDP: używaj tylko jako awaryjnego, gdy wybrany tryb jest niedostępny lub użytkownik wyraźnie prosi o tryb CDP/skryptowy.
Katalog skryptów
Ważne: Wszystkie skrypty znajdują się w podkatalogu scripts/ tej umiejętności.
Instrukcje wykonania dla agenta:
- Określ ścieżkę katalogu tego pliku SKILL.md jako
{baseDir} - Ścieżka skryptu =
{baseDir}/scripts/<nazwa-skryptu>.ts - Zamień wszystkie
{baseDir}w tym dokumencie na rzeczywistą ścieżkę - Rozwiąż środowisko wykonawcze
${BUN_X}: jeślibunjest zainstalowany →bun; jeślinpxjest dostępny →npx -y bun; w przeciwnym razie zasugeruj zainstalowanie bun
Lista skryptów:
| Skrypt | Przeznaczenie |
|---|---|
scripts/x-browser.ts | Zwykłe posty (tekst + obrazy), awaryjny CDP |
scripts/x-video.ts | Posty wideo (tekst + wideo), awaryjny CDP |
scripts/x-quote.ts | Cytowanie tweeta z komentarzem, awaryjny CDP |
scripts/x-article.ts | Publikowanie długich artykułów (Markdown), awaryjny CDP |
scripts/md-to-html.ts | Konwersja Markdown → HTML |
scripts/copy-to-clipboard.ts | Kopiowanie zawartości do schowka |
scripts/paste-from-clipboard.ts | Wysyłanie rzeczywistego naciśnięcia klawisza wklejania |
scripts/check-paste-permissions.ts | Weryfikacja środowiska i uprawnień |
Wybór trybu wykonania (wymagane)
Wybierz dokładnie jeden tryb przed interakcją z X:
- Jeśli użytkownik wyraźnie prosi o wtyczkę Codex Chrome,
@chrome, rozszerzenie Chrome lub "Codex 自带的 Chrome 插件", użyj trybu wtyczki Codex Chrome. Nie wywołuj najpierw Computer Use. - Jeśli użytkownik wyraźnie prosi o Chrome Computer Use, użyj trybu Chrome Computer Use. Nie przełączaj się awaryjnie na CDP, Playwright, wbudowaną przeglądarkę ani wtyczkę Chrome bez powiadomienia użytkownika i uzyskania zgody.
- Jeśli użytkownik wyraźnie prosi o tryb CDP/skryptowy, użyj trybu skryptu CDP.
- W przeciwnym razie preferuj tryb Chrome Computer Use. Dla artykułów X z obrazami z lokalnej zawartości w Markdown, użyj przetestowanego przepływu edytora X: wstaw każdy obraz treści z paska narzędzi (
Wstaw->Media-> przycisk ikony okna dialogowegoDodaj zdjęcia lub wideo) w miejscu jego zastępczego tekstu, a następnie usuń zastępczy tekst. Użyj trybu skryptu CDP tylko wtedy, gdy wybrany tryb kontroli przeglądarki jest niedostępny lub przepływ przesyłania/wyboru UI jest zawodny.
Nigdy nie używaj wbudowanej przeglądarki w aplikacji do przepływów pracy publikowania na X.
Tryb wtyczki Codex Chrome
Używaj tego trybu, gdy użytkownik prosi o wtyczkę Codex Chrome, @chrome lub ścieżkę rozszerzenia Chrome. Wykorzystuje to rzeczywisty profil Chrome użytkownika i logowanie do X za pośrednictwem dołączonej wtyczki Chrome, a nie Computer Use ani CDP.
Konfiguracja
- Wczytaj umiejętność
chrome:Chromeprzed pracą z przeglądarką. - Użyj
tool_searchdlanode_repl js, jeśli narzędzie Node REPLjsnie jest jeszcze widoczne. - Zainicjuj klienta przeglądarki Chrome dokładnie tak, jak określa umiejętność Chrome, a następnie wykonaj lekkie wywołanie, takie jak
browser.user.openTabs(), aby zweryfikować połączenie z rozszerzeniem. - Jeśli pierwsze lekkie wywołanie zawiedzie, odczekaj 2 sekundy i spróbuj ponownie raz. Jeśli nadal zawodzi, postępuj zgodnie z krokami sprawdzania rozszerzenia i odzyskiwania z umiejętności Chrome. Jeśli kontrole przejdą pomyślnie, ale komunikacja nadal zawodzi, zapytaj użytkownika przed otwarciem nowego okna Chrome. Nie przełączaj się po cichu na Computer Use lub CDP.
Zasady ogólne
- Używaj interfejsów API
browser.tabs.*,tab.playwright.*,tab.cua.*i wyboru plików wtyczki Chrome do działań w interfejsie X. - Polecenia powłoki są dozwolone do wstępnego przetwarzania Markdown i przygotowania schowka z bogatym HTML. W przypadku obrazów w treści artykułu X nie polegaj na wklejaniu obrazów ze schowka; skorzystaj z przepływu przesyłania w edytorze
Wstaw->Media. - Jeśli przesyłanie pliku kończy się niepowodzeniem z komunikatem
Nie dozwolone, powiedz użytkownikowi:Aby włączyć przesyłanie plików, przejdź do chrome://extensions w Chrome, kliknij Szczegóły pod rozszerzeniem Codex i włącz "Zezwalaj na dostęp do adresów URL plików". Szczegóły znajdziesz na https://developers.openai.com/codex/app/chrome-extension#upload-files. - Jeśli wtyczka Chrome zgłosi
zamknięcie natywnego potoku, spróbuj ponownie lekkiego wywołania przeglądarki po 2 sekundach, a następnie uruchom kontrole stanu umiejętności Chrome. Jeśli Chrome działa, rozszerzenie jest włączone, a manifest hosta natywnego jest poprawny, poproś o zgodę na otwarcie nowego okna Chrome i spróbuj ponownie. Nie wysyłaj kolejnych akcji przeglądarki przez uszkodzony potok. - Nigdy nie klikaj
Opublikuj,Wyślijani żadnej widocznej zewnętrznie akcji wysyłania bez wyraźnego ostatecznego potwierdzenia od użytkownika w bieżącej rozmowie.
Artykuły X
- Konwertuj Markdown i zachowaj mapę obrazów:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Odczytaj dane wyjściowe JSON dla
title,coverImageicontentImages(placeholder→localPath). - Otwórz lub utwórz wersję roboczą artykułu na
https://x.com/compose/articles. - Prześlij okładkę za pomocą przepływu wyboru plików wtyczki Chrome. Jeśli przesyłanie jest zablokowane przez uprawnienia rozszerzenia, zatrzymaj się i zgłoś dokładną poprawkę uprawnień powyżej.
- Wypełnij tytuł, a następnie skopiuj bogaty HTML:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Wklej do treści artykułu za pomocą rzeczywistego naciśnięcia klawisza wklejania przez wtyczkę Chrome. W systemie macOS użyj
Meta+V. - Sprawdź, czy tekst edytora zawiera treść artykułu i symbole zastępcze
XIMGPH_. Nie polegaj natab.clipboard.readText()jako dowodzie zawartości schowka systemowego po zapisach schowka w powłoce; w systemie macOS zweryfikuj przezpbpaste, jeśli to konieczne. - Dla każdego elementu
contentImagesw kolejności symboli zastępczych:- Znajdź widoczny tekst zastępczy (
XIMGPH_N) i kliknij go, aby ustawić tam kursor. - Otwórz menu paska narzędzi
Wstaw->Media. - W oknie modalnym kliknij przycisk ikony z
aria-label="Dodaj zdjęcia lub wideo"; nie klikaj tekstu/strefy upuszczania ani ukrytego pola wprowadzania pliku. - Użyj selektora plików, aby przesłać
localPathtego obrazu. - Po wyświetleniu obrazu, jeśli
XIMGPH_Npozostaje nad nim, zaznacz dokładnie ten symbol zastępczy i naciśnij najpierwDelete. UżyjBackspacetylko wtedy, gdyDeletezawiedzie, a zaznaczony tekst zostanie potwierdzony jako dokładnie ten symbol zastępczy. - Sprawdź, czy liczba wystąpień symbolu zastępczego dla tego
XIMGPH_Nwynosi0.
- Znajdź widoczny tekst zastępczy (
- Otwórz Podgląd i sprawdź tytuł, okładkę, treść, linki i obrazy.
- Poproś o wyraźne potwierdzenie przed kliknięciem
Opublikuj.
Preferencje (EXTEND.md)
Sprawdź EXTEND.md w kolejności priorytetu — pierwszy znaleziony wygrywa:
| Priorytet | Ścieżka | Zakres |
|---|---|---|
| 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 | Katalog domowy użytkownika |
Jeśli nie znaleziono, użyj domyślnych.
EXTEND.md obsługuje: Domyślny profil Chrome
Wymagania wstępne
- Google Chrome lub Chromium
- środowisko wykonawcze
bun - Pierwsze uruchomienie: zaloguj się ręcznie do X (sesja zostanie zapisana)
Kontrola przed uruchomieniem (opcjonalnie)
Przed pierwszym użyciem zasugeruj uruchomienie kontroli środowiska. Użytkownik może ją pominąć, jeśli woli.
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
Kontrole: Chrome, izolacja profilu, Bun, dostępność, schowek, naciśnięcie klawisza wklejania, konflikty Chrome.
Jeśli którakolwiek kontrola nie powiedzie się, podaj wytyczne dotyczące naprawy dla każdego elementu:
| Kontrola | Naprawa |
|---|---|
| Chrome | Zainstaluj Chrome lub ustaw zmienną środowiskową X_BROWSER_CHROME_PATH |
| Katalog profilu | Współdzielony profil w baoyu-skills/chrome-profile (patrz sekcja Profil Chrome w CLAUDE.md) |
| Środowisko Bun | brew install oven-sh/bun/bun (macOS) lub npm install -g bun |
| Dostępność (macOS) | Ustawienia systemowe → Prywatność i bezpieczeństwo → Dostępność → włącz aplikację terminala |
| Kopiowanie do schowka | Upewnij się, że Swift/AppKit jest dostępne (narzędzia CLI Xcode w systemie macOS: xcode-select --install) |
| Naciśnięcie klawisza wklejania (macOS) | Tak samo jak poprawka dostępności powyżej |
| Naciśnięcie klawisza wklejania (Linux) | Zainstaluj xdotool (X11) lub ydotool (Wayland) |
Linki
- Zwykłe posty: Zobacz
references/regular-posts.mdw celu ręcznego przepływu pracy, rozwiązywania problemów i szczegółów technicznych - Artykuły X: Zobacz
references/articles.mdw celu przewodnika po publikowaniu długich artykułów
Tryb Chrome Computer Use
Używaj tego trybu, gdy użytkownik wyraźnie prosi o Chrome Computer Use lub gdy nie określono preferencji dotyczącej wtyczki Chrome, a Codex może sterować Google Chrome za pomocą Computer Use. Wykorzystuje to istniejące okno Chrome użytkownika, pliki cookie, logowanie, rozszerzenia i sesję X.
Zasady ogólne:
- Rozpocznij każdą turę asystenta, która steruje Chrome, od wywołania
get_app_statedlaGoogle Chrome. - Preferuj akcje na indeksach elementów, jeśli są dostępne; używaj współrzędnych tylko do zaznaczania tekstu w edytorze lub przeciągania.
- Nie używaj wbudowanej przeglądarki, wtyczki Chrome, Playwright ani CDP do działań w interfejsie X w tym trybie, chyba że użytkownik zatwierdzi zmianę trybu.
- Nigdy nie klikaj
Opublikuj,Wyślijani żadnej widocznej zewnętrznie akcji wysyłania bez wyraźnego ostatecznego potwierdzenia od użytkownika w bieżącej rozmowie.
Zwykłe posty:
- Otwórz lub przejdź w Chrome do
https://x.com/compose/post. - Wpisz tekst posta do kompozytora za pomocą Computer Use.
- Dla każdego obrazu uruchom:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /bezwzględna/ścieżka/do/obrazu.png - Wklej za pomocą Computer Use (
super+vw systemie macOS,control+vw systemach Windows/Linux), a następnie poczekaj, aż X zakończy przesyłanie multimediów. - Poproś o potwierdzenie przed kliknięciem
Wyślij.
Posty wideo:
- Otwórz lub przejdź w Chrome do
https://x.com/compose/post. - Wpisz tekst posta do kompozytora.
- Użyj widocznego interfejsu przesyłania multimediów/wyboru plików, aby dołączyć wideo.
- Poczekaj na zakończenie przesyłania i przetwarzania.
- Poproś o potwierdzenie przed kliknięciem
Wyślij.
Cytowanie tweetów:
- Otwórz adres URL tweeta w Chrome.
- Użyj widocznego interfejsu cytowania/udostępniania, aby wybrać Cytowanie.
- Wpisz komentarz.
- Poproś o potwierdzenie przed kliknięciem
Wyślij.
Artykuły X:
- Konwertuj Markdown i zachowaj mapę obrazów:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Odczytaj dane wyjściowe JSON dla
title,coverImageicontentImages(placeholder→localPath). - W Chrome otwórz
https://x.com/compose/articles, utwórz lub otwórz wersję roboczą, prześlij okładkę, jeśli jest dostępna, i wypełnij tytuł. - Skopiuj bogaty HTML do schowka:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Wklej do treści artykułu za pomocą Computer Use.
- Dla każdego wpisu
contentImagesw kolejności symboli zastępczych:- Znajdź dokładny widoczny tekst zastępczy, taki jak
XIMGPH_3, i kliknij go, aby ustawić punkt wstawienia. - Otwórz rozwijane menu
Wstawna pasku narzędzi, wybierzMedia, a następnie kliknij przycisk ikony okna modalnego z etykietąDodaj zdjęcia lub wideo. - Użyj natywnego selektora plików, aby wybrać
localPathobrazu. - Poczekaj, aż pojawi się blok obrazu i zakończy się wszelka aktywność przesyłania.
- Jeśli symbol zastępczy pozostaje nad wstawionym obrazem, ponownie zaznacz dokładnie ten tekst zastępczy i naciśnij najpierw
Delete. UżyjBackspacetylko wtedy, gdyDeletezawiedzie, a zaznaczony tekst zostanie potwierdzony jako dokładnie ten symbol zastępczy.
- Znajdź dokładny widoczny tekst zastępczy, taki jak
- Sprawdź, czy nie pozostały żadne symbole zastępcze
XIMGPH_i czy wyświetlają się oczekiwane obrazy. - Otwórz Podgląd i sprawdź tytuł, okładkę, treść, linki i obrazy.
- Poproś o wyraźne potwierdzenie przed kliknięciem
Opublikuj.
Jeśli zaznaczanie za pomocą Computer Use, przesyłanie z paska narzędzi lub sterowanie selektorem plików staje się zawodne, zatrzymaj się i zgłoś blokadę zamiast po cichu przełączać się na wtyczkę Chrome lub CDP.
Tryb skryptu CDP (awaryjny)
Używaj poniższych sekcji skryptów tylko wtedy, gdy wybrany tryb kontroli przeglądarki jest niedostępny, zawodny lub wyraźnie nie został żądany. Skrypty te uruchamiają lub ponownie wykorzystują rzeczywistą instancję Chrome poprzez CDP i pozostawiają przeglądarkę otwartą do przeglądu.
Nie używaj trybu skryptu CDP, gdy użytkownik wyraźnie wymaga wtyczki Codex Chrome lub Chrome Computer Use, chyba że użytkownik zatwierdzi przełączenie awaryjne po wyjaśnieniu blokady.
Wybór typu posta
O ile użytkownik nie określi wyraźnie typu posta:
- Zwykły tekst + do 10 000 znaków → Zwykły post (członkowie Premium obsługują do 10 000 znaków, bez Premium: 280)
- Plik Markdown (.md) → Artykuł X
Zwykłe posty
${BUN_X} {baseDir}/scripts/x-browser.ts "Cześć!" --image ./zdjęcie.png
Parametry:
| Parametr | Opis |
|---|---|
<tekst> | Treść posta (pozycyjny) |
--image <ścieżka> | Plik obrazu (powtarzalny, maks. 4) |
--profile <katalog> | Niestandardowy profil Chrome |
Uwaga: Skrypt otwiera przeglądarkę z wypełnioną treścią. Użytkownik przegląda i publikuje ręcznie.
Uwaga dotycząca trybu Codex: Jeśli użytkownik wyraźnie zażądał wtyczki Codex Chrome, użyj trybu wtyczki Codex Chrome. W przeciwnym razie, jeśli Chrome Computer Use jest włączone, użyj trybu Chrome Computer Use zamiast uruchamiać x-browser.ts.
Posty wideo
Tekst + plik wideo.
${BUN_X} {baseDir}/scripts/x-video.ts "Spójrz na to!" --video ./klip.mp4
Parametry:
| Parametr | Opis |
|---|---|
<tekst> | Treść posta (pozycyjny) |
--video <ścieżka> | Plik wideo (MP4, MOV, WebM) |
--profile <katalog> | Niestandardowy profil Chrome |
Uwaga: Skrypt otwiera przeglądarkę z wypełnioną treścią. Użytkownik przegląda i publikuje ręcznie.
Uwaga dotycząca trybu Codex: Jeśli użytkownik wyraźnie zażądał wtyczki Codex Chrome, użyj trybu wtyczki Codex Chrome. W przeciwnym razie, jeśli Chrome Computer Use jest włączone, użyj trybu Chrome Computer Use zamiast uruchamiać x-video.ts.
Limity: Zwykłe maks. 140 s, Premium 60 min. Przetwarzanie: 30-60 s.
Cytowanie tweetów
Cytuj istniejący tweet z komentarzem.
${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Świetna uwaga!"
Parametry:
| Parametr | Opis |
|---|---|
<url-tweeta> | URL do cytowania (pozycyjny) |
<komentarz> | Tekst komentarza (pozycyjny, opcjonalny) |
--profile <katalog> | Niestandardowy profil Chrome |
Uwaga: Skrypt otwiera przeglądarkę z wypełnioną treścią. Użytkownik przegląda i publikuje ręcznie.
Uwaga dotycząca trybu Codex: Jeśli użytkownik wyraźnie zażądał wtyczki Codex Chrome, użyj trybu wtyczki Codex Chrome. W przeciwnym razie, jeśli Chrome Computer Use jest włączone, użyj trybu Chrome Computer Use zamiast uruchamiać x-quote.ts.
Artykuły X
Długie artykuły w Markdown (wymagają X Premium).
${BUN_X} {baseDir}/scripts/x-article.ts artykuł.md
${BUN_X} {baseDir}/scripts/x-article.ts artykuł.md --cover ./okładka.jpg
Parametry:
| Parametr | Opis |
|---|---|
<markdown> | Plik Markdown (pozycyjny) |
--cover <ścieżka> | Obraz okładki |
--title <tekst> | Zastąp tytuł |
Frontmatter: title, cover_image obsługiwane w front matter YAML.
Uwaga dotycząca trybu Codex: Jeśli użytkownik wyraźnie zażądał wtyczki Codex Chrome, postępuj zgodnie z trybem wtyczki Codex Chrome powyżej. Jeśli użytkownik wyraźnie zażądał Chrome Computer Use, postępuj zgodnie z trybem Chrome Computer Use. W przeciwnym razie preferuj Chrome Computer Use; dla artykułów Markdown z lokalnymi obrazami treści użyj przepływu przesyłania obrazów z paska narzędzi Wstaw -> Media przed ewentualnym przejściem awaryjnym do x-article.ts w trybie skryptu CDP.
Uwaga dotycząca przełączania awaryjnego CDP: Skrypt otwiera przeglądarkę z wypełnionym artykułem. Użytkownik przegląda i publikuje ręcznie, chyba że użyto --submit.
Bezpieczeństwo publikowania: Nie używaj --submit ani nie klikaj Opublikuj, chyba że użytkownik wyraźnie potwierdzi ostateczną publiczną akcję publikowania.
Kontrola po złożeniu: Skrypt automatycznie weryfikuje po wstawieniu wszystkich obrazów:
- Pozostałe symbole zastępcze
XIMGPH_w treści edytora - Oczekiwana vs rzeczywista liczba obrazów
Jeśli kontrola nie powiedzie się (ostrzeżenia w wynikach), poinformuj użytkownika o konkretnych problemach przed opublikowaniem.
Rozwiązywanie problemów
Port debugowania Chrome nie jest gotowy
Tylko przełączenie awaryjne CDP: jeśli skrypt kończy się niepowodzeniem z komunikatem Port debugowania Chrome nie jest gotowy lub Nie można się połączyć, najpierw zabij istniejące instancje CDP Chrome, a następnie spróbuj ponownie:
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
Ważne: Należy to zrobić automatycznie — w przypadku napotkania tego błędu zabij instancje CDP Chrome i ponów polecenie bez pytania użytkownika.
Uwagi
- Pierwsze uruchomienie: wymagane ręczne logowanie (sesja jest utrzymywana)
- W trybie wtyczki Codex Chrome i trybie Chrome Computer Use używaj istniejącej sesji Chrome użytkownika i nie uruchamiaj osobnego profilu CDP
- Skrypty CDP domyślnie tylko wypełniają treść w przeglądarce; użytkownik musi przejrzeć i opublikować ręcznie, chyba że jawnie użyto
--submit - Wieloplatformowe: macOS, Linux, Windows
Wsparcie rozszerzeń
Niestandardowe konfiguracje za pośrednictwem EXTEND.md. Zobacz sekcję Preferencje dla ścieżek i obsługiwanych opcji.


