Posting ke X (Twitter)
Memposting teks, gambar, video, dan artikel panjang ke X melalui peramban Chrome asli.
Di Codex, jangan mencampuradukkan jalur peramban ini:
- Plugin Codex Chrome /
@chrome/ Ekstensi Chrome: gunakan skillchrome:Chromebawaan dan klien peramban Node REPL-nya. Ini diperlukan setiap kali pengguna mengatakan "Plugin Codex Chrome", "Codex 自带的 Chrome 插件",@chrome, atau sejenisnya. - Penggunaan Komputer Chrome: gunakan
mcp__computer_use__.*terhadap UI Google Chrome yang terlihat hanya ketika pengguna meminta Penggunaan Komputer atau tidak ada preferensi plugin Chrome yang dinyatakan dan Penggunaan Komputer tersedia. - Mode skrip CDP: gunakan hanya sebagai fallback ketika mode yang dipilih tidak tersedia atau pengguna secara eksplisit meminta mode CDP/skrip.
Direktori Skrip
Penting: Semua skrip terletak di subdirektori scripts/ dari skill ini.
Instruksi Eksekusi Agen:
- Tentukan jalur direktori file SKILL.md ini sebagai
{baseDir} - Jalur skrip =
{baseDir}/scripts/<script-name>.ts - Ganti semua
{baseDir}di dokumen ini dengan jalur sebenarnya - Resolusi runtime
${BUN_X}: jikabunterinstal →bun; jikanpxtersedia →npx -y bun; selain itu sarankan menginstal bun
Referensi Skrip:
| Skrip | Tujuan |
|---|---|
scripts/x-browser.ts | Postingan biasa (teks + gambar), fallback CDP |
scripts/x-video.ts | Postingan video (teks + video), fallback CDP |
scripts/x-quote.ts | Tweet kutipan dengan komentar, fallback CDP |
scripts/x-article.ts | Penerbitan artikel panjang (Markdown), fallback CDP |
scripts/md-to-html.ts | Konversi Markdown → HTML |
scripts/copy-to-clipboard.ts | Salin konten ke papan klip |
scripts/paste-from-clipboard.ts | Kirim penekanan tombol tempel asli |
scripts/check-paste-permissions.ts | Verifikasi lingkungan & izin |
Pemilihan Mode Eksekusi (Wajib)
Pilih tepat satu mode sebelum berinteraksi dengan X:
- Jika pengguna secara eksplisit meminta plugin Codex Chrome,
@chrome, ekstensi Chrome, atau "Codex 自带的 Chrome 插件", gunakan Mode Plugin Codex Chrome. Jangan panggil Penggunaan Komputer terlebih dahulu. - Jika pengguna secara eksplisit meminta Penggunaan Komputer Chrome, gunakan Mode Penggunaan Komputer Chrome. Jangan fallback ke CDP, Playwright, Peramban dalam-aplikasi, atau plugin Chrome tanpa memberi tahu pengguna dan mendapatkan persetujuan.
- Jika pengguna secara eksplisit meminta mode CDP/skrip, gunakan Mode Skrip CDP.
- Selain itu, utamakan Mode Penggunaan Komputer Chrome. Untuk Artikel X Markdown dengan gambar konten lokal, gunakan alur editor X yang telah diuji: sisipkan setiap gambar tubuh dari toolbar (
Insert->Media-> tombol ikon dialogAdd photos or video) pada placeholder-nya, lalu hapus teks placeholder. Gunakan Mode Skrip CDP hanya ketika mode kontrol peramban yang dipilih tidak tersedia atau alur unggah/pilih UI tidak dapat diandalkan.
Jangan pernah menggunakan Peramban dalam-aplikasi untuk alur kerja penerbitan X.
Mode Plugin Codex Chrome
Gunakan mode ini setiap kali pengguna meminta plugin Codex Chrome, @chrome, atau jalur Ekstensi Chrome. Ini menggunakan profil Chrome asli pengguna dan login X melalui plugin Chrome bawaan, bukan Penggunaan Komputer dan bukan CDP.
Penyiapan
- Muat skill
chrome:Chromesebelum bekerja dengan peramban. - Gunakan
tool_searchuntuknode_repl jsjika alatjsNode REPL belum terlihat. - Inisialisasi klien peramban Chrome persis seperti yang ditentukan skill Chrome, lalu jalankan panggilan ringan seperti
browser.user.openTabs()untuk memverifikasi koneksi ekstensi. - Jika panggilan ringan pertama gagal, tunggu 2 detik dan coba lagi sekali. Jika masih gagal, ikuti pemeriksaan ekstensi dan langkah pemulihan skill Chrome. Jika pemeriksaan lolos tetapi komunikasi masih gagal, tanyakan pengguna sebelum membuka jendela Chrome baru. Jangan beralih ke Penggunaan Komputer atau CDP secara diam-diam.
Aturan umum
- Gunakan API
browser.tabs.*,tab.playwright.*,tab.cua.*, dan pemilih file dari plugin Chrome untuk tindakan UI X. - Perintah shell diperbolehkan untuk prapemrosesan Markdown dan persiapan papan klip HTML kaya. Untuk gambar tubuh Artikel X, jangan mengandalkan tempel gambar dari papan klip; gunakan alur unggah
Insert->Mediaeditor. - Jika unggah file gagal dengan
Not allowed, beri tahu pengguna:Untuk mengaktifkan unggah file, buka chrome://extensions di Chrome, klik Details di bawah ekstensi Codex, dan aktifkan "Allow access to file URLs." Lihat https://developers.openai.com/codex/app/chrome-extension#upload-files untuk detailnya. - Jika plugin Chrome melaporkan
native pipe is closed, coba lagi panggilan peramban ringan sekali setelah 2 detik, lalu jalankan pemeriksaan kesehatan skill Chrome. Jika Chrome berjalan, ekstensi diaktifkan, dan manifes host asli benar, minta izin untuk membuka jendela Chrome baru dan coba lagi. Jangan terus mengirim tindakan peramban melalui pipa yang rusak. - Jangan pernah mengklik
Publish,Post, atau tindakan kirim yang terlihat secara eksternal tanpa konfirmasi akhir eksplisit dari pengguna dalam percakapan saat ini.
Artikel X
- Konversi Markdown dan simpan peta gambar:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Baca output JSON untuk
title,coverImage, dancontentImages(placeholder→localPath). - Buka atau buat draf artikel di
https://x.com/compose/articles. - Unggah sampul dengan alur pemilih file plugin Chrome. Jika unggah diblokir oleh izin ekstensi, hentikan dan laporkan perbaikan izin yang tepat di atas.
- Isi judul, lalu salin HTML kaya:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Tempelkan ke dalam tubuh artikel dengan penekanan tombol tempel asli melalui plugin Chrome. Di macOS gunakan
Meta+V. - Verifikasi teks editor berisi tubuh artikel dan placeholder
XIMGPH_. Jangan mengandalkantab.clipboard.readText()sebagai bukti papan klip sistem setelah penulisan papan klip shell; di macOS verifikasi denganpbpastejika diperlukan. - Untuk setiap item
contentImagesdalam urutan placeholder:- Temukan teks placeholder yang terlihat (
XIMGPH_N) dan klik untuk menempatkan kursor di sana. - Buka menu toolbar
Insert->Media. - Di modal, klik tombol ikon dengan
aria-label="Add photos or video"; jangan klik teks/dropzone atau input file tersembunyi. - Gunakan pemilih file untuk mengunggah
localPathgambar tersebut. - Setelah gambar muncul, jika
XIMGPH_Ntetap di atasnya, pilih tepat placeholder itu dan tekanDeleteterlebih dahulu. GunakanBackspacehanya jikaDeletegagal dan teks yang dipilih dipastikan persis placeholder. - Verifikasi jumlah placeholder untuk
XIMGPH_Nitu adalah0.
- Temukan teks placeholder yang terlihat (
- Buka Pratinjau dan verifikasi judul, sampul, tubuh, tautan, dan gambar.
- Minta konfirmasi eksplisit sebelum mengklik
Publish.
Preferensi (EXTEND.md)
Periksa EXTEND.md dalam urutan prioritas — yang pertama ditemukan menang:
| Prioritas | Jalur | Cakupan |
|---|---|---|
| 1 | .baoyu-skills/baoyu-post-to-x/EXTEND.md | Proyek |
| 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 | Direktori pengguna |
Jika tidak ditemukan, gunakan default.
EXTEND.md mendukung: Profil Chrome default
Prasyarat
- Google Chrome atau Chromium
- runtime
bun - Jalankan pertama: login ke X secara manual (sesi disimpan)
Pemeriksaan Pra-penerbangan (Opsional)
Sebelum penggunaan pertama, sarankan menjalankan pemeriksaan lingkungan. Pengguna dapat melewati jika mereka memilih.
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
Memeriksa: Chrome, isolasi profil, Bun, Aksesibilitas, papan klip, penekanan tempel, konflik Chrome.
Jika ada pemeriksaan yang gagal, berikan panduan perbaikan per item:
| Pemeriksaan | Perbaikan |
|---|---|
| Chrome | Pasang Chrome atau atur env var X_BROWSER_CHROME_PATH |
| Direktori profil | Profil bersama di baoyu-skills/chrome-profile (lihat bagian Profil Chrome di CLAUDE.md) |
| Runtime bun | brew install oven-sh/bun/bun (macOS) atau npm install -g bun |
| Aksesibilitas (macOS) | Pengaturan Sistem → Privasi & Keamanan → Aksesibilitas → aktifkan aplikasi terminal |
| Salin papan klip | Pastikan Swift/AppKit tersedia (alat CLI Xcode macOS: xcode-select --install) |
| Penekanan tempel (macOS) | Sama dengan perbaikan Aksesibilitas di atas |
| Penekanan tempel (Linux) | Pasang xdotool (X11) atau ydotool (Wayland) |
Referensi
- Postingan Biasa: Lihat
references/regular-posts.mduntuk alur kerja manual, pemecahan masalah, dan detail teknis - Artikel X: Lihat
references/articles.mduntuk panduan penerbitan artikel panjang
Mode Penggunaan Komputer Chrome
Gunakan mode ini ketika pengguna secara eksplisit meminta Penggunaan Komputer Chrome, atau ketika tidak ada preferensi plugin Chrome yang dinyatakan dan Codex dapat mengontrol Google Chrome dengan Penggunaan Komputer. Ini menggunakan jendela Chrome pengguna yang ada, cookie, login, ekstensi, dan sesi X.
Aturan umum:
- Mulai setiap giliran asisten yang mengontrol Chrome dengan memanggil
get_app_stateuntukGoogle Chrome. - Utamakan tindakan indeks-elemen jika tersedia; gunakan koordinat hanya untuk pemilihan teks editor atau pemilihan seret.
- Jangan gunakan Peramban dalam-aplikasi, plugin Chrome, Playwright, atau CDP untuk tindakan UI X dalam mode ini kecuali pengguna menyetujui perubahan mode.
- Jangan pernah mengklik
Publish,Post, atau tindakan kirim yang terlihat secara eksternal tanpa konfirmasi akhir eksplisit dari pengguna dalam percakapan saat ini.
Postingan biasa:
- Buka atau navigasikan Chrome ke
https://x.com/compose/post. - Ketik teks postingan ke dalam komposer menggunakan Penggunaan Komputer.
- Untuk setiap gambar, jalankan:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png - Tempel dengan Penggunaan Komputer (
super+vdi macOS,control+vdi Windows/Linux), lalu tunggu hingga X selesai mengunggah media. - Minta konfirmasi sebelum mengklik
Post.
Postingan video:
- Buka atau navigasikan Chrome ke
https://x.com/compose/post. - Ketik teks postingan ke dalam komposer.
- Gunakan UI unggah media/pemilih file yang terlihat untuk melampirkan video.
- Tunggu hingga unggah dan pemrosesan selesai.
- Minta konfirmasi sebelum mengklik
Post.
Tweet kutipan:
- Buka URL tweet di Chrome.
- Gunakan UI kutipan/repost yang terlihat untuk memilih Kutipan.
- Ketik komentar.
- Minta konfirmasi sebelum mengklik
Post.
Artikel X:
- Konversi Markdown dan simpan peta gambar:
${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json - Baca output JSON untuk
title,coverImage, dancontentImages(placeholder→localPath). - Di Chrome, buka
https://x.com/compose/articles, buat atau buka draf, unggah sampul jika ada, dan isi judul. - Salin HTML kaya ke papan klip:
${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html - Tempelkan ke tubuh artikel dengan Penggunaan Komputer.
- Untuk setiap entri
contentImagesdalam urutan placeholder:- Temukan teks placeholder yang terlihat persis seperti
XIMGPH_3dan klik untuk menetapkan titik penyisipan. - Buka dropdown toolbar
Insert, pilihMedia, lalu klik tombol ikon modal dengan labelAdd photos or video. - Gunakan pemilih file asli untuk memilih
localPathgambar. - Tunggu hingga blok gambar muncul dan aktivitas unggah selesai.
- Jika placeholder tetap di atas gambar yang disisipkan, pilih kembali tepat teks placeholder itu dan tekan
Deleteterlebih dahulu. GunakanBackspacehanya jikaDeletegagal dan teks yang dipilih dipastikan persis placeholder.
- Temukan teks placeholder yang terlihat persis seperti
- Verifikasi tidak ada placeholder
XIMGPH_yang tersisa dan gambar yang diharapkan muncul. - Buka Pratinjau dan verifikasi judul, sampul, tubuh, tautan, dan gambar.
- Minta konfirmasi eksplisit sebelum mengklik
Publish.
Jika pemilihan Penggunaan Komputer, unggah toolbar, atau kontrol pemilih file menjadi tidak dapat diandalkan, hentikan dan laporkan pemblokir alih-alih beralih ke plugin Chrome atau CDP secara diam-diam.
Mode Skrip CDP (Fallback)
Gunakan bagian skrip di bawah hanya ketika mode kontrol peramban yang dipilih tidak tersedia, tidak dapat diandalkan, atau secara eksplisit tidak diminta. Skrip ini meluncurkan atau menggunakan kembali instance Chrome asli melalui CDP dan menjaga peramban tetap terbuka untuk peninjauan.
Jangan gunakan Mode Skrip CDP ketika pengguna secara eksplisit memerlukan plugin Codex Chrome atau Penggunaan Komputer Chrome kecuali pengguna menyetujui fallback setelah Anda menjelaskan pemblokir.
Pemilihan Jenis Postingan
Kecuali pengguna secara eksplisit menentukan jenis postingan:
- Teks biasa + dalam 10.000 karakter → Postingan Biasa (Anggota Premium mendukung hingga 10.000 karakter, non-Premium: 280)
- File Markdown (.md) → Artikel X
Postingan Biasa
${BUN_X} {baseDir}/scripts/x-browser.ts "Halo!" --image ./photo.png
Parameter:
| Parameter | Deskripsi |
|---|---|
<text> | Konten postingan (posisional) |
--image <path> | File gambar (dapat diulang, maks 4) |
--profile <dir> | Profil Chrome khusus |
Catatan: Skrip membuka peramban dengan konten terisi. Pengguna meninjau dan menerbitkan secara manual.
Catatan mode Codex: Jika pengguna secara eksplisit meminta plugin Codex Chrome, gunakan Mode Plugin Codex Chrome. Selain itu, jika Penggunaan Komputer Chrome diaktifkan, gunakan Mode Penggunaan Komputer Chrome alih-alih menjalankan x-browser.ts.
Postingan Video
Teks + file video.
${BUN_X} {baseDir}/scripts/x-video.ts "Lihat ini!" --video ./clip.mp4
Parameter:
| Parameter | Deskripsi |
|---|---|
<text> | Konten postingan (posisional) |
--video <path> | File video (MP4, MOV, WebM) |
--profile <dir> | Profil Chrome khusus |
Catatan: Skrip membuka peramban dengan konten terisi. Pengguna meninjau dan menerbitkan secara manual.
Catatan mode Codex: Jika pengguna secara eksplisit meminta plugin Codex Chrome, gunakan Mode Plugin Codex Chrome. Selain itu, jika Penggunaan Komputer Chrome diaktifkan, gunakan Mode Penggunaan Komputer Chrome alih-alih menjalankan x-video.ts.
Batas: Biasa maks 140 detik, Premium maks 60 menit. Pemrosesan: 30-60 detik.
Tweet Kutipan
Kutip tweet yang ada dengan komentar.
${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Wawasan yang bagus!"
Parameter:
| Parameter | Deskripsi |
|---|---|
<tweet-url> | URL untuk mengutip (posisional) |
<comment> | Teks komentar (posisional, opsional) |
--profile <dir> | Profil Chrome khusus |
Catatan: Skrip membuka peramban dengan konten terisi. Pengguna meninjau dan menerbitkan secara manual.
Catatan mode Codex: Jika pengguna secara eksplisit meminta plugin Codex Chrome, gunakan Mode Plugin Codex Chrome. Selain itu, jika Penggunaan Komputer Chrome diaktifkan, gunakan Mode Penggunaan Komputer Chrome alih-alih menjalankan x-quote.ts.
Artikel X
Artikel Markdown panjang (memerlukan X Premium).
${BUN_X} {baseDir}/scripts/x-article.ts article.md
${BUN_X} {baseDir}/scripts/x-article.ts article.md --cover ./cover.jpg
Parameter:
| Parameter | Deskripsi |
|---|---|
<markdown> | File Markdown (posisional) |
--cover <path> | Gambar sampul |
--title <text> | Timpa judul |
Frontmatter: title, cover_image didukung di front matter YAML.
Catatan mode Codex: Jika pengguna secara eksplisit meminta plugin Codex Chrome, ikuti Mode Plugin Codex Chrome di atas. Jika pengguna secara eksplisit meminta Penggunaan Komputer Chrome, ikuti Mode Penggunaan Komputer Chrome. Selain itu, utamakan Penggunaan Komputer Chrome; untuk artikel Markdown dengan gambar konten lokal, gunakan alur unggah gambar toolbar Insert -> Media sebelum fallback ke x-article.ts dalam Mode Skrip CDP.
Catatan fallback CDP: Skrip membuka peramban dengan artikel terisi. Pengguna meninjau dan menerbitkan secara manual kecuali --submit digunakan.
Keamanan penerbitan: Jangan gunakan --submit atau klik Publish kecuali pengguna secara eksplisit mengonfirmasi tindakan penerbitan publik akhir.
Pemeriksaan Pasca-Komposisi: Skrip secara otomatis memverifikasi setelah semua gambar disisipkan:
- Placeholder
XIMGPH_yang tersisa di konten editor - Jumlah gambar yang diharapkan vs aktual
Jika pemeriksaan gagal (peringatan di output), beri tahu pengguna dengan masalah spesifik sebelum mereka menerbitkan.
Pemecahan Masalah
Port debug Chrome tidak siap
Fallback CDP saja: jika skrip gagal dengan Chrome debug port not ready atau Unable to connect, matikan instance Chrome CDP yang ada terlebih dahulu, lalu coba lagi:
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
Penting: Ini harus dilakukan secara otomatis — ketika menemui kesalahan ini, matikan instance Chrome CDP dan coba ulang perintah tanpa bertanya kepada pengguna.
Catatan
- Jalankan pertama: login manual diperlukan (sesi bertahan)
- Dalam Mode Plugin Codex Chrome dan Mode Penggunaan Komputer Chrome, gunakan sesi Chrome pengguna yang ada dan jangan luncurkan profil CDP terpisah
- Skrip CDP hanya mengisi konten ke peramban secara default; pengguna harus meninjau dan menerbitkan secara manual kecuali
--submitdigunakan secara eksplisit - Lintas platform: macOS, Linux, Windows
Dukungan Ekstensi
Konfigurasi khusus melalui EXTEND.md. Lihat bagian Preferensi untuk jalur dan opsi yang didukung.


