# Otomatiskan Posting ke X (Twitter) Keterampilan Agen

> Otomatiskan posting teks, gambar, video, dan artikel panjang ke X (Twitter) menggunakan browser Chrome asli. Mendukung berbagai mode termasuk plugin Codex Chrome, Penggunaan Komputer, dan skrip CDP. Mulai berbagi konten secara efisien.

- Canonical: https://nanoskill.ai/id/skills/post-to-twitter
- Markdown: https://nanoskill.ai/id/skills/post-to-twitter.md
- Author: JimLiu
- Published: 2026-06-01T07:19:10.429Z
- Updated: 2026-07-25T04:34:26.608Z
- Language: id
- Source type: github
- Popularity signal: 20040

## Sources

- https://github.com/JimLiu/baoyu-skills

## Install

```shell
npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x
```

## About

Keterampilan Posting ke X (Twitter) menyediakan solusi tangguh untuk mengotomatiskan publikasi konten di X, memungkinkan pengguna untuk berbagi teks, gambar, video, dan artikel panjang secara efisien. Alat ini dirancang untuk siapa pun yang ingin menyederhanakan kehadiran media sosial mereka, dari pengguna individu hingga kreator konten dan pemasar. Ini terintegrasi dengan instance browser Chrome asli, memastikan kompatibilitas dengan platform X sambil menawarkan opsi kontrol yang fleksibel.

Keterampilan ini menonjol dengan dukungannya untuk berbagai mode kontrol browser, termasuk plugin Codex Chrome, Penggunaan Komputer Chrome, dan Mode Skrip CDP. Adaptabilitas ini memungkinkannya berfungsi secara efektif di berbagai pengaturan dan preferensi pengguna. Fitur utamanya adalah kemampuannya untuk menerbitkan X Articles yang mendetail langsung dari file Markdown, menangani tugas-tugas kompleks seperti unggahan gambar sampul dan menyematkan gambar konten, yang sangat berharga untuk berbagi konten mendalam.

Pengguna dapat memanfaatkan keterampilan ini untuk berbagai skenario, seperti mengotomatiskan pembaruan media sosial harian, menerbitkan postingan blog atau laporan komprehensif sebagai X Articles, atau dengan cepat mengutip dan mengomentari tweet lainnya. Ini mencakup pemeriksaan pra-penerbangan yang membantu untuk memastikan lingkungan dikonfigurasi dengan benar dan memberikan panduan yang jelas untuk pemecahan masalah, sehingga dapat diakses bahkan bagi pengguna yang baru dalam otomatisasi.

## Key features

- **Posting Multi-Konten**: Posting teks, gambar, dan video ke X (Twitter) dengan mulus, menangani berbagai jenis media untuk kebutuhan berbagi konten yang beragam.
- **Penerbitan Artikel Panjang**: Terbitkan Artikel X dari file Markdown, termasuk gambar sampul dan gambar konten yang disematkan, ideal untuk postingan rinci.
- **Mode Kontrol Browser Fleksibel**: Mendukung plugin Codex Chrome, Penggunaan Komputer Chrome, dan Mode Skrip CDP, beradaptasi dengan berbagai lingkungan eksekusi dan preferensi pengguna.
- **Fungsionalitas Quote Tweet**: Dengan mudah mengutip tweet yang ada dengan komentar Anda, memfasilitasi interaksi dan diskusi di platform.
- **Pemeriksaan Lingkungan Pra-penerbangan**: Termasuk skrip untuk memeriksa prasyarat yang diperlukan seperti Chrome, Bun, dan izin aksesibilitas, memberikan panduan untuk masalah apa pun.

## Use cases

- **Otomatiskan Pembaruan Media Sosial**: Kreator konten dan pemasar dapat menjadwalkan dan mengotomatiskan postingan rutin mereka, termasuk teks, gambar, dan video, untuk mempertahankan kehadiran aktif di X tanpa intervensi manual.
- **Terbitkan Artikel X Rinci**: Jurnalis, blogger, dan analis dapat menerbitkan artikel panjang langsung dari Markdown, lengkap dengan media kaya, untuk berbagi konten mendalam dengan audiens mereka di X.
- **Kutip dan Komentar Secara Efisien**: Pengguna dapat dengan cepat mengutip tweet dan menambahkan komentar mereka, menyederhanakan proses terlibat dengan topik tren atau konten pengguna lain di X.

## Result preview

Lihat postingan Twitter tentang alat produktivitas AI dengan gambar dan hashtag yang relevan yang disiapkan untuk diterbitkan.

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-1.jpg)

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-2.jpg)

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-3.jpg)

## Result walkthrough

### Langkah 1：Instal

Tambahkan keterampilan ke agen Anda.

![a simple demonstration of the first step in using Post to X](https://file.nanoskill.ai/post-to-x-step-1.jpg)

### Langkah 2：Bagikan Ide Posting

Berikan ide tweet, gambar, video, atau artikel Anda dan minta keterampilan untuk menyiapkannya untuk diterbitkan di X.

![a simple demonstration of the second step in using Post to X](https://file.nanoskill.ai/post-to-x-step-2.jpg)

### Langkah 3：Tinjau Sebelum Menerbitkan

Tinjau postingan yang dihasilkan dan konfirmasi sebelum diterbitkan.

![a simple demonstration of the first step in using Post to X](https://file.nanoskill.ai/post-to-x-step-3.jpg)

## Skill definition

# 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 skill `chrome:Chrome` bawaan 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**:
1. Tentukan jalur direktori file SKILL.md ini sebagai `{baseDir}`
2. Jalur skrip = `{baseDir}/scripts/<script-name>.ts`
3. Ganti semua `{baseDir}` di dokumen ini dengan jalur sebenarnya
4. Resolusi runtime `${BUN_X}`: jika `bun` terinstal → `bun`; jika `npx` tersedia → `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:

1. 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.
2. 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.
3. Jika pengguna secara eksplisit meminta mode CDP/skrip, gunakan **Mode Skrip CDP**.
4. 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 dialog `Add 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**
1. Muat skill `chrome:Chrome` sebelum bekerja dengan peramban.
2. Gunakan `tool_search` untuk `node_repl js` jika alat `js` Node REPL belum terlihat.
3. Inisialisasi klien peramban Chrome persis seperti yang ditentukan skill Chrome, lalu jalankan panggilan ringan seperti `browser.user.openTabs()` untuk memverifikasi koneksi ekstensi.
4. 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` -> `Media` editor.
- 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**
1. Konversi Markdown dan simpan peta gambar:
   ```bash
   ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
   ```
2. Baca output JSON untuk `title`, `coverImage`, dan `contentImages` (`placeholder` → `localPath`).
3. Buka atau buat draf artikel di `https://x.com/compose/articles`.
4. Unggah sampul dengan alur pemilih file plugin Chrome. Jika unggah diblokir oleh izin ekstensi, hentikan dan laporkan perbaikan izin yang tepat di atas.
5. Isi judul, lalu salin HTML kaya:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
   ```
6. Tempelkan ke dalam tubuh artikel dengan penekanan tombol tempel asli melalui plugin Chrome. Di macOS gunakan `Meta+V`.
7. Verifikasi teks editor berisi tubuh artikel dan placeholder `XIMGPH_`. Jangan mengandalkan `tab.clipboard.readText()` sebagai bukti papan klip sistem setelah penulisan papan klip shell; di macOS verifikasi dengan `pbpaste` jika diperlukan.
8. Untuk setiap item `contentImages` dalam 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 `localPath` gambar tersebut.
   - Setelah gambar muncul, jika `XIMGPH_N` tetap di atasnya, pilih tepat placeholder itu dan tekan `Delete` terlebih dahulu. Gunakan `Backspace` hanya jika `Delete` gagal dan teks yang dipilih dipastikan persis placeholder.
   - Verifikasi jumlah placeholder untuk `XIMGPH_N` itu adalah `0`.
9. Buka Pratinjau dan verifikasi judul, sampul, tubuh, tautan, dan gambar.
10. 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.

```bash
${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.md` untuk alur kerja manual, pemecahan masalah, dan detail teknis
- **Artikel X**: Lihat `references/articles.md` untuk 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_state` untuk `Google 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**:
1. Buka atau navigasikan Chrome ke `https://x.com/compose/post`.
2. Ketik teks postingan ke dalam komposer menggunakan Penggunaan Komputer.
3. Untuk setiap gambar, jalankan:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png
   ```
4. Tempel dengan Penggunaan Komputer (`super+v` di macOS, `control+v` di Windows/Linux), lalu tunggu hingga X selesai mengunggah media.
5. Minta konfirmasi sebelum mengklik `Post`.

**Postingan video**:
1. Buka atau navigasikan Chrome ke `https://x.com/compose/post`.
2. Ketik teks postingan ke dalam komposer.
3. Gunakan UI unggah media/pemilih file yang terlihat untuk melampirkan video.
4. Tunggu hingga unggah dan pemrosesan selesai.
5. Minta konfirmasi sebelum mengklik `Post`.

**Tweet kutipan**:
1. Buka URL tweet di Chrome.
2. Gunakan UI kutipan/repost yang terlihat untuk memilih Kutipan.
3. Ketik komentar.
4. Minta konfirmasi sebelum mengklik `Post`.

**Artikel X**:
1. Konversi Markdown dan simpan peta gambar:
   ```bash
   ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
   ```
2. Baca output JSON untuk `title`, `coverImage`, dan `contentImages` (`placeholder` → `localPath`).
3. Di Chrome, buka `https://x.com/compose/articles`, buat atau buka draf, unggah sampul jika ada, dan isi judul.
4. Salin HTML kaya ke papan klip:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
   ```
5. Tempelkan ke tubuh artikel dengan Penggunaan Komputer.
6. Untuk setiap entri `contentImages` dalam urutan placeholder:
   - Temukan teks placeholder yang terlihat persis seperti `XIMGPH_3` dan klik untuk menetapkan titik penyisipan.
   - Buka dropdown toolbar `Insert`, pilih `Media`, lalu klik tombol ikon modal dengan label `Add photos or video`.
   - Gunakan pemilih file asli untuk memilih `localPath` gambar.
   - 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 `Delete` terlebih dahulu. Gunakan `Backspace` hanya jika `Delete` gagal dan teks yang dipilih dipastikan persis placeholder.
7. Verifikasi tidak ada placeholder `XIMGPH_` yang tersisa dan gambar yang diharapkan muncul.
8. Buka Pratinjau dan verifikasi judul, sampul, tubuh, tautan, dan gambar.
9. 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

```bash
${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.

```bash
${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.

```bash
${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).

```bash
${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:

```bash
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 `--submit` digunakan secara eksplisit
- Lintas platform: macOS, Linux, Windows

## Dukungan Ekstensi

Konfigurasi khusus melalui EXTEND.md. Lihat bagian **Preferensi** untuk jalur dan opsi yang didukung.

## FAQ

### Jenis konten apa yang bisa saya posting ke X menggunakan skill ini?

Anda dapat memposting pembaruan teks biasa, gambar, video, dan Artikel X panjang (sebelumnya Artikel Twitter) yang dibuat dari file Markdown. Ini mendukung berbagai jenis media untuk berbagi konten yang komprehensif.

### Apakah skill ini mendukung Artikel X, dan apa persyaratannya?

Ya, ini mendukung Artikel X dari Markdown. Anda dapat menyertakan gambar sampul dan gambar konten. Menerbitkan Artikel X biasanya memerlukan langganan X Premium.

### Apa saja mode kontrol browser yang tersedia?

Skill ini menawarkan tiga mode utama: Mode Plugin Codex Chrome, Mode Penggunaan Komputer Chrome, dan Mode Skrip CDP. Pilihan tergantung pada lingkungan dan kebutuhan spesifik Anda, dengan Penggunaan Komputer sebagai default yang disarankan.

### Bagaimana cara menginstal skill 'Post to X'?

Anda dapat menginstal skill tersebut menggunakan perintah: \`npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x\`. Pastikan Anda telah menginstal \`bun\` atau \`npx\`.

### Apakah peninjauan manual diperlukan sebelum mempublikasikan postingan ke X?

Secara default, skill ini mengisi konten ke dalam browser, dan Anda harus meninjau dan mempublikasikannya secara manual. Opsi \`--submit\` untuk skrip CDP hanya boleh digunakan dengan konfirmasi pengguna yang eksplisit untuk publikasi akhir.

### Apa yang harus saya lakukan jika menemui error 'Chrome debug port not ready'?

Jika error ini terjadi dalam mode fallback CDP, Anda harus menghentikan instance CDP Chrome yang ada dan mencoba lagi perintah tersebut. Skill ini dirancang untuk mencoba ini secara otomatis.
