This is the abridged developer documentation for GoSosmed Docs
# Dokumentasi GoSosmed
> Satu kokpit untuk delapan platform, dijalankan oleh perangkat Anda sendiri. Agent yang berjalan di HP Anda berkode terbuka, supaya bisa Anda periksa sendiri.
## Pilih jalur Anda [Section titled “Pilih jalur Anda”](#pilih-jalur-anda) Saya pengguna Ingin menjadwalkan konten ke banyak platform dan memakai HP sendiri sebagai eksekutor. Mulai dari [Quickstart BYOD](/memulai/quickstart-byod/). Saya ingin memeriksa agent Agent meminta izin Accessibility, jadi kodenya dibuka untuk diaudit. Lihat [Izin & Privasi](/agent/izin-privasi/) lalu [bangun sendiri](/agent/build/). Saya agent LLM Ambil konteks terstruktur dalam satu file: [`/llms.txt`](/llms.txt) - ringkas, atau [`/llms-full.txt`](/llms-full.txt) - lengkap. Ringkasan terkurasi: [Konteks untuk Agent LLM](/referensi/untuk-llm/). Agent saya berhenti jalan Optimasi baterai Android adalah penyebab paling umum, dan tiap merek berbeda. Lihat [Pemecahan Masalah](/agent/pemecahan-masalah/). ## Konsep yang membedakan [Section titled “Konsep yang membedakan”](#konsep-yang-membedakan) BYOD - bukan sewa perangkat Layanan sejenis menyewakan HP di data center dengan biaya bulanan per perangkat. GoSosmed memasang agent di perangkat Anda sendiri: sesi login akun tidak pernah berpindah ke perangkat pihak lain, dan tidak ada biaya sewa perangkat. Tiga mode publikasi API resmi (YouTube, Facebook, Instagram, Threads, Pinterest, X), browser terkelola (TikTok), dan mobile-native (Shopee Video). Keandalannya tidak sama - lihat [Mode Publikasi & Platform](/referensi/mode-publikasi/). Menjangkau yang mobile-only Shopee Video tidak punya API publikasi publik; fiturnya hanya hidup di aplikasi HP. Karena eksekusinya terjadi di perangkat Anda, jalur itu tetap terjangkau. Terbuka di tempat yang penting Agent yang berjalan di HP Anda berkode terbuka; server dan dasbor tertutup. Batas itu dan alasannya dijelaskan apa adanya di [Apa yang Publik & Apa yang Tidak](/referensi/keterbukaan/). ## Navigasi cepat [Section titled “Navigasi cepat”](#navigasi-cepat) [Konsep Inti](/memulai/konsep-inti/)Akun, perangkat, agent, konten, job - kosakata sebelum membaca yang lain. [Apa itu Agent](/agent/ikhtisar/)Cara agent bekerja di HP Anda, dan batasan yang menyertainya. [Memasang & Memasangkan](/agent/pasang/)Pasang APK, aktifkan Accessibility, pasangkan dengan kode pairing. [Izin & Privasi](/agent/izin-privasi/)Apa yang diakses agent, apa yang tidak, dan cara memverifikasinya sendiri. [Membangun dari Sumber](/agent/build/)Kompilasi APK sendiri lewat GitHub Actions atau Gradle lokal. [Konteks untuk Agent LLM](/referensi/untuk-llm/)Ringkasan padat, batasan, dan kesalahpahaman yang sering terjadi.
# Membangun Agent dari Sumber
> Kompilasi APK agent GoSosmed sendiri dari kode terbuka, lewat GitHub Actions atau Gradle lokal.
Agent dipublikasikan sebagai kode terbuka supaya Anda tidak perlu percaya pada biner yang kami bagikan. Halaman ini menjelaskan cara membangunnya sendiri. Repo: **[github.com/dedy45/gososmed-mobile-agent](https://github.com/dedy45/gososmed-mobile-agent)** ## Bentuk proyeknya [Section titled “Bentuk proyeknya”](#bentuk-proyeknya) Proyek Android standar berbasis Gradle dengan Kotlin DSL:
```plaintext
app/ modul aplikasi (sumber + aturan ProGuard)
build.gradle.kts konfigurasi build root
settings.gradle.kts definisi modul
gradle.properties properti build
.github/workflows/ pipeline build APK
```
## Cara 1 — GitHub Actions (disarankan) [Section titled “Cara 1 — GitHub Actions (disarankan)”](#cara-1--github-actions-disarankan) Cara ini tidak menuntut Android SDK di mesin Anda. Pipeline-nya sudah ada di repo.
```bash
# Jalankan build
gh workflow run build-apk --repo dedy45/gososmed-mobile-agent
# Lihat status
gh run list --repo dedy45/gososmed-mobile-agent --limit 5
# Unduh hasilnya
gh run download -n gososmed-agent-debug
```
Kalau Anda mem-fork repo, jalankan perintah yang sama dengan `--repo /gososmed-mobile-agent`. ## Cara 2 — Gradle lokal [Section titled “Cara 2 — Gradle lokal”](#cara-2--gradle-lokal) Butuh Android SDK terpasang dan JDK 17.
```bash
git clone https://github.com/dedy45/gososmed-mobile-agent.git
cd gososmed-mobile-agent
# Debug APK
./gradlew assembleDebug
# hasil: app/build/outputs/apk/debug/app-debug.apk
# Release APK (tanpa tanda tangan kami)
./gradlew assembleRelease
```
Di Windows pakai `gradlew.bat`. ## Memasang hasil build [Section titled “Memasang hasil build”](#memasang-hasil-build)
```bash
adb install -r app/build/outputs/apk/debug/app-debug.apk
```
Atau pindahkan berkas APK-nya ke HP dan buka seperti biasa. Setelah terpasang, lanjutkan dari [Langkah 3 di panduan pemasangan](/agent/pasang/) — aktifkan Accessibility Service lalu pasangkan dengan kode pairing. ## Yang layak Anda periksa di kode [Section titled “Yang layak Anda periksa di kode”](#yang-layak-anda-periksa-di-kode) Kalau tujuan Anda mengaudit dan bukan sekadar mengompilasi, empat titik ini paling informatif: 1. **Penangan perintah** — daftar lengkap perintah yang diterima agent. Bandingkan dengan tabel di [Izin & Privasi](/agent/izin-privasi/); jangan percaya tabel kami kalau kodenya berbeda. 2. **Klien WebSocket** — ke mana agent terhubung, dan data apa yang dikirim pada tiap heartbeat. 3. **Serializer hierarki layar** — apa yang diekstrak dari layar aplikasi target. 4. **Penyimpanan lokal** — apa yang disimpan permanen di perangkat (`device_id` dan konfigurasi pairing). ## Kompatibilitas yang dipertahankan [Section titled “Kompatibilitas yang dipertahankan”](#kompatibilitas-yang-dipertahankan) Agent menghasilkan XML hierarki layar dengan format yang **sama persis** seperti keluaran `uiautomator dump`. Ini keputusan desain yang sengaja diambil: server bisa memakai parser yang sudah ada dan teruji tanpa perlu mengubah adapter platform sama sekali. Kalau Anda memodifikasi serializer, jaga format keluarannya — mengubahnya akan memutus sisi server. ## Kontribusi [Section titled “Kontribusi”](#kontribusi) Issue dan pull request diterima di repo publik. Yang paling berguna: * Laporan kompatibilitas perangkat, terutama Xiaomi, Oppo, Vivo, dan Samsung yang punya lapisan pembatas latar belakang sendiri * Perbaikan keandalan reconnect pada jaringan tidak stabil * Temuan keamanan — laporkan lewat issue repo publik Server dan dasbor GoSosmed berada di repo terpisah yang tertutup, jadi PR untuk sisi itu tidak bisa kami terima lewat repo ini. Alasannya di [Apa yang Publik & Apa yang Tidak](/referensi/keterbukaan/).
# Apa itu Agent Perangkat
> Agent Android GoSosmed adalah aplikasi yang membuat HP Anda sendiri menjadi eksekutor otomasi. Kode sumbernya terbuka agar bisa Anda periksa sendiri.
Agent adalah aplikasi Android kecil yang mengubah HP Anda sendiri menjadi eksekutor otomasi GoSosmed. Ia menggantikan model “sewa HP di data center” yang biasa dipakai layanan sejenis. ## Kenapa ini ada [Section titled “Kenapa ini ada”](#kenapa-ini-ada) Sebagian platform sosial media tidak punya API publikasi publik. Shopee Video adalah contoh paling jelas: fiturnya hanya hidup di dalam aplikasi HP. Pendekatan yang murni memakai API resmi **tidak bisa** menjangkaunya — bukan karena kurang usaha, tapi karena jalurnya tidak ada. Ada dua cara menyelesaikan ini: | Pendekatan | Konsekuensi | | -------------------------- | ------------------------------------------------------------------------------------------------- | | Sewa HP di data center | Biaya berlangganan per perangkat per bulan. Kredensial akun Anda dititipkan ke server pihak lain. | | **BYOD — HP Anda sendiri** | Tanpa biaya sewa perangkat. Kredensial tetap di HP yang Anda pegang. | GoSosmed memilih yang kedua. Agent ini adalah bagian yang mewujudkannya. ## Cara kerjanya [Section titled “Cara kerjanya”](#cara-kerjanya)
```plaintext
HP Anda: [Aplikasi sosial media] + [Agent GoSosmed]
│
│ koneksi KELUAR (outbound WSS), auto-reconnect
▼
Server: GoSosmed → job publikasi → adapter platform
```
Tiga hal yang penting Anda pahami dari diagram itu: 1. **Koneksinya keluar, bukan masuk.** Agent yang menghubungi server, bukan sebaliknya. HP Anda tidak perlu IP publik, tidak perlu port terbuka, dan tidak perlu berada di jaringan yang sama dengan server. Ini juga berarti tidak ada pintu masuk baru ke perangkat Anda. 2. **Tanpa root, tanpa PC di tengah.** Agent bekerja lewat Accessibility Service bawaan Android. Anda tidak perlu membuka bootloader, tidak perlu `adb`, dan tidak perlu menyambungkan HP ke komputer untuk operasi sehari-hari. 3. **Perintahnya spesifik, bukan akses bebas.** Server mengirim perintah tertutup seperti “baca struktur layar”, “ketuk elemen ini”, “tulis teks ini”, “buka aplikasi itu”, “ambil tangkapan layar”. Bukan sesi remote-control bebas. ## Kenapa kode sumbernya terbuka [Section titled “Kenapa kode sumbernya terbuka”](#kenapa-kode-sumbernya-terbuka) Agent ini berjalan di perangkat pribadi Anda dan memakai Accessibility Service — izin paling sensitif di Android. Meminta kepercayaan untuk izin sebesar itu tanpa memperlihatkan kodenya tidak masuk akal. Karena itu agent dipublikasikan di repo terbuka: **[github.com/dedy45/gososmed-mobile-agent](https://github.com/dedy45/gososmed-mobile-agent)** Anda bisa membaca perintah apa saja yang diterima, data apa yang dikirim, dan ke mana ia terhubung — lalu [membangun APK-nya sendiri](/agent/build/) kalau tidak mau memakai rilis kami. Server, dasbor, dan logika bisnis GoSosmed tetap tertutup. Alasannya dijelaskan terbuka di [Apa yang Publik & Apa yang Tidak](/referensi/keterbukaan/). ## Batasan yang harus Anda tahu [Section titled “Batasan yang harus Anda tahu”](#batasan-yang-harus-anda-tahu) BYOD menukar biaya sewa dengan ketergantungan pada perangkat Anda sendiri. Konsekuensinya nyata: * Job yang butuh aplikasi HP **hanya jalan saat HP menyala dan online**. HP mati atau kehabisan baterai berarti job menunggu. * Optimasi baterai Android bisa mematikan agent di latar belakang. Ini penyebab kegagalan paling umum, dan cara mengatasinya ada di [Pemecahan Masalah](/agent/pemecahan-masalah/). * Jalur mobile dan browser **masih dalam validasi perangkat nyata**. Jalur API resmi sudah stabil. Kami tidak mengklaim sebaliknya. ## Langkah berikutnya [Section titled “Langkah berikutnya”](#langkah-berikutnya) * [Memasang & Memasangkan](/agent/pasang/) — pasang APK dan hubungkan ke akun Anda * [Izin & Privasi](/agent/izin-privasi/) — apa yang diakses agent, dan apa yang tidak * [Membangun dari Sumber](/agent/build/) — kompilasi sendiri dari kode terbuka
# Izin & Privasi
> Apa yang benar-benar diakses agent GoSosmed di HP Anda, apa yang dikirim ke server, dan bagaimana cara memverifikasinya sendiri.
Agent meminta **Accessibility Service** — salah satu izin paling kuat di Android. Halaman ini menjelaskan apa yang dipakai dan apa yang tidak, tanpa dibungkus bahasa pemasaran. ## Kenapa izin sekuat itu diperlukan [Section titled “Kenapa izin sekuat itu diperlukan”](#kenapa-izin-sekuat-itu-diperlukan) Untuk memublikasikan konten ke aplikasi yang tidak punya API publikasi publik, agent harus melakukan apa yang Anda lakukan dengan tangan: membaca layar untuk tahu tombol mana yang ada, lalu mengetuk dan menulis. Di Android tanpa root, satu-satunya jalur resmi untuk itu adalah Accessibility Service. Tidak ada versi “lebih sopan” dari izin ini yang tetap bisa bekerja. Kalau Anda tidak nyaman memberikannya, pilihan yang jujur adalah **memakai hanya platform berbasis API resmi** dan tidak memasang agent — lihat [Mode Publikasi & Platform](/referensi/mode-publikasi/). ## Apa yang secara teknis bisa dilakukan izin ini [Section titled “Apa yang secara teknis bisa dilakukan izin ini”](#apa-yang-secara-teknis-bisa-dilakukan-izin-ini) Kami tidak akan mengecilkan hal ini. Sebuah Accessibility Service, secara umum, **mampu** membaca isi layar aplikasi mana pun yang sedang aktif dan melakukan tindakan atas nama Anda. Itu sifat izinnya, bukan sifat aplikasinya. Artinya jaminan sebenarnya bukan dari daftar izin, melainkan dari **apa yang dilakukan kodenya** — dan itulah alasan kode agent dibuka. ## Apa yang dilakukan agent GoSosmed [Section titled “Apa yang dilakukan agent GoSosmed”](#apa-yang-dilakukan-agent-gososmed) Agent hanya menjalankan sekumpulan perintah tertutup dari server: | Perintah | Fungsi | | ------------------- | ------------------------------------------------------------ | | Baca struktur layar | Mengambil hierarki elemen layar aktif untuk menemukan target | | Ketuk | Menekan elemen pada koordinat/simpul tertentu | | Tulis teks | Mengisi kolom teks, mis. judul atau caption | | Buka aplikasi | Menjalankan aplikasi target | | Tindakan global | Kembali, home, layar terakhir | | Tangkapan layar | Bukti visual untuk audit dan diagnosis kegagalan | Tidak ada perintah “kirim seluruh isi layar terus-menerus”, dan tidak ada sesi remote-control bebas. ## Yang TIDAK dilakukan agent [Section titled “Yang TIDAK dilakukan agent”](#yang-tidak-dilakukan-agent) * **Tidak** meminta kata sandi akun sosial media Anda. Anda login sendiri di aplikasi masing-masing, seperti biasa. * **Tidak** mengirim kredensial akun sosial media Anda ke server GoSosmed. Sesi login tetap berada di HP Anda. * **Tidak** membaca SMS, kontak, riwayat panggilan, atau berkas pribadi. Izin-izin itu tidak diminta. * **Tidak** membuka port masuk di HP Anda. Koneksi selalu **keluar** dari agent ke server. * **Tidak** memantau aplikasi lain di luar konteks job yang Anda perintahkan. ## Data yang dikirim ke server [Section titled “Data yang dikirim ke server”](#data-yang-dikirim-ke-server) Saat menjalankan job, agent mengirim: * Identitas perangkat (`device_id` yang dibuat saat pairing) dan status heartbeat * Struktur elemen layar dari **aplikasi target** — diperlukan agar server tahu langkah berikutnya * Hasil eksekusi: berhasil/gagal, pesan galat, dan tangkapan layar bila diperlukan untuk audit Struktur layar aplikasi target bisa memuat teks yang tampil di layar itu. Kalau Anda menjalankan job pada akun yang memuat informasi sensitif di layar, informasi itu ikut terbaca dalam konteks job tersebut. Ini konsekuensi wajar dari cara kerjanya, dan lebih baik Anda tahu sekarang. ## Keunggulan privasi yang nyata dari BYOD [Section titled “Keunggulan privasi yang nyata dari BYOD”](#keunggulan-privasi-yang-nyata-dari-byod) Bandingkan dengan model sewa perangkat di data center: | | Sewa HP di data center | BYOD GoSosmed | | --------------------------- | ---------------------------- | --------------------- | | Lokasi sesi login akun | Perangkat pihak lain | HP milik Anda | | Siapa yang bisa akses fisik | Operator data center | Anda | | Kalau berhenti berlangganan | Sesi ada di perangkat mereka | Sesi tetap di HP Anda | Inilah inti argumen BYOD: bukan cuma lebih murah, tapi kredensial tidak pernah berpindah tangan. ## Cara memverifikasi sendiri [Section titled “Cara memverifikasi sendiri”](#cara-memverifikasi-sendiri) Jangan percaya halaman ini — periksa: 1. Baca kode agent di [gososmed-mobile-agent](https://github.com/dedy45/gososmed-mobile-agent). Perhatikan penangan perintah dan klien WebSocket-nya. 2. [Bangun APK sendiri](/agent/build/) supaya yang berjalan di HP Anda berasal dari kode yang Anda baca. 3. Pantau lalu lintas jaringan HP Anda bila ingin memastikan tujuan koneksinya. ## Mencabut izin [Section titled “Mencabut izin”](#mencabut-izin) Anda bisa menghentikannya kapan saja, dan tidak perlu izin dari kami: * **Setelan** → **Aksesibilitas** → **GoSosmed Agent** → matikan. Agent langsung berhenti mengeksekusi apa pun. * Hapus aplikasinya untuk mencabut sepenuhnya. * Cabut perangkat dari dasbor untuk memutus `device_id` dari akun Anda. Menonaktifkan agent tidak memengaruhi platform yang berjalan lewat API resmi.
# Memasang & Memasangkan Agent
> Cara memasang APK agent GoSosmed di HP Android dan memasangkannya ke akun Anda memakai kode pairing.
Halaman ini menjelaskan cara memasang agent di HP Android dan menghubungkannya ke akun GoSosmed Anda. ## Sebelum mulai [Section titled “Sebelum mulai”](#sebelum-mulai) | Kebutuhan | Keterangan | | ---------------- | ------------------------------------------------------------------------------ | | HP Android | Perangkat fisik. Emulator bisa dipakai untuk uji coba, bukan produksi. | | Koneksi internet | Agent hanya butuh koneksi **keluar**. Tidak perlu IP publik atau port terbuka. | | Akun GoSosmed | Paket Free cukup. Tidak perlu kartu kredit. | | Root | **Tidak diperlukan.** Jangan me-root HP untuk ini. | ## Kenapa APK, bukan Google Play [Section titled “Kenapa APK, bukan Google Play”](#kenapa-apk-bukan-google-play) Agent ini memakai **Accessibility Service untuk otomasi**. Kebijakan Google Play melarang kategori tersebut di jalur distribusi publik, dan aplikasi yang melanggarnya bisa di-ban. Jadi agent **tidak** akan tersedia di Play Store publik. Distribusinya lewat pemasangan APK langsung (side-load), atau jalur Play Internal/Closed Testing yang bersifat privat. Ini pembatasan kebijakan, bukan kekurangan teknis. Kami menyebutkannya terang-terangan supaya Anda tidak menunggu sesuatu yang tidak akan datang. ## Langkah 1 — Dapatkan APK [Section titled “Langkah 1 — Dapatkan APK”](#langkah-1--dapatkan-apk) Dua pilihan, keduanya sah: * **Rilis siap pakai** — unduh dari halaman Releases repo publik [gososmed-mobile-agent](https://github.com/dedy45/gososmed-mobile-agent). * **Bangun sendiri** — kalau Anda ingin memastikan APK yang berjalan benar-benar berasal dari kode yang Anda baca, ikuti [Membangun dari Sumber](/agent/build/). Hanya pasang dari sumber resmi Agent meminta izin Accessibility, yang sangat kuat. APK dari sumber tidak resmi bisa disamarkan menjadi apa pun. Ambil hanya dari repo publik di atas, atau bangun sendiri. ## Langkah 2 — Pasang APK [Section titled “Langkah 2 — Pasang APK”](#langkah-2--pasang-apk) 1. Buka berkas APK di HP Anda. 2. Android akan meminta izin memasang aplikasi dari sumber ini — setujui untuk aplikasi pemasang yang Anda pakai (mis. peramban atau pengelola berkas). 3. Selesaikan pemasangan, lalu buka aplikasinya. ## Langkah 3 — Aktifkan Accessibility Service [Section titled “Langkah 3 — Aktifkan Accessibility Service”](#langkah-3--aktifkan-accessibility-service) Agent tidak bisa bekerja sebelum langkah ini. Android sengaja mengharuskan aktivasi manual oleh pemilik perangkat — tidak ada aplikasi yang boleh mengaktifkannya sendiri. 1. Buka **Setelan** → **Aksesibilitas**. 2. Cari **GoSosmed Agent** pada daftar layanan terpasang. 3. Aktifkan, lalu konfirmasi dialog peringatan Android. Android akan menampilkan peringatan bahwa layanan ini dapat membaca isi layar dan melakukan tindakan. Peringatan itu **benar** — baca [Izin & Privasi](/agent/izin-privasi/) untuk memahami persisnya apa yang dipakai dan apa yang tidak. ## Langkah 4 — Pasangkan dengan akun Anda [Section titled “Langkah 4 — Pasangkan dengan akun Anda”](#langkah-4--pasangkan-dengan-akun-anda) Agent memakai **kode pairing** untuk mengikat perangkat ke akun. Setelah berhasil, agent menyimpan `device_id` permanen sehingga tidak perlu dipasangkan ulang setiap kali. 1. Di dasbor GoSosmed, buka bagian **Perangkat** dan minta kode pairing baru. 2. Masukkan kode itu di aplikasi agent. 3. Agent membuka koneksi keluar ke server dan mendaftarkan dirinya. Status perangkat akan berubah menjadi terhubung di dasbor. Agent menjaga koneksi dengan **heartbeat** dan **auto-reconnect** — kalau jaringan terputus, ia menyambung kembali sendiri tanpa Anda pasangkan ulang. ## Langkah 5 — Kecualikan dari optimasi baterai [Section titled “Langkah 5 — Kecualikan dari optimasi baterai”](#langkah-5--kecualikan-dari-optimasi-baterai) **Jangan lewati langkah ini.** Ini penyebab kegagalan nomor satu. Android secara agresif menghentikan aplikasi latar belakang untuk menghemat baterai. Kalau agent dihentikan, job yang butuh perangkat akan menunggu tanpa hasil. 1. Buka **Setelan** → **Aplikasi** → **GoSosmed Agent**. 2. Cari **Baterai** → pilih **Tidak dibatasi** (atau setara). Sebagian produsen — Xiaomi, Oppo, Vivo, Realme, Samsung — punya lapisan pembatas tambahan di luar setelan standar Android. Rinciannya ada di [Pemecahan Masalah](/agent/pemecahan-masalah/). ## Memastikan berhasil [Section titled “Memastikan berhasil”](#memastikan-berhasil) Agent terpasang benar bila ketiganya terpenuhi: * Layanan aktif di **Setelan → Aksesibilitas** * Perangkat tampil **terhubung** di dasbor * Job uji pertama selesai tanpa galat di Job Monitor Kalau ada yang tidak sesuai, lanjut ke [Pemecahan Masalah](/agent/pemecahan-masalah/).
# Pemecahan Masalah Agent
> Penyebab umum agent GoSosmed berhenti, terputus, atau job tertahan - dan cara memperbaikinya per merek HP.
Diurutkan dari penyebab paling sering ke paling jarang. ## Agent berhenti sendiri setelah beberapa waktu [Section titled “Agent berhenti sendiri setelah beberapa waktu”](#agent-berhenti-sendiri-setelah-beberapa-waktu) **Penyebab paling umum, sejauh ini.** Android mematikan aplikasi latar belakang untuk menghemat baterai, dan agent ikut terkena. Langkah standar: 1. **Setelan** → **Aplikasi** → **GoSosmed Agent** → **Baterai** → **Tidak dibatasi** 2. Pastikan Accessibility Service masih aktif di **Setelan** → **Aksesibilitas** Setelan standar Android saja sering tidak cukup, karena banyak produsen menambahkan lapisan pembatas sendiri: | Merek | Lokasi setelan tambahan | | --------------------- | -------------------------------------------------------------------------------------------------------------------------- | | Xiaomi / Redmi / POCO | Setelan → Aplikasi → Izin → Autostart → aktifkan. Lalu di Aplikasi Terkini, tekan lama kartu agent → ikon kunci. | | Oppo / Realme | Setelan → Baterai → Penghemat Baterai → pilih agent → Jangan optimalkan. Aktifkan juga Autostart. | | Vivo | Setelan → Baterai → Konsumsi daya latar belakang tinggi → izinkan agent. Aktifkan Autostart. | | Samsung | Setelan → Baterai → Batas penggunaan latar belakang → pastikan agent **tidak** ada di daftar aplikasi tidur / tidur dalam. | | Huawei | Setelan → Baterai → Luncurkan aplikasi → setel agent ke Kelola manual, aktifkan ketiga sakelarnya. | Kalau HP Anda tidak ada di tabel, cari kata kunci **Autostart**, **Aplikasi tidur**, atau **Pengelolaan latar belakang** di Setelan. ## Perangkat tampil terputus di dasbor [Section titled “Perangkat tampil terputus di dasbor”](#perangkat-tampil-terputus-di-dasbor) Agent memakai koneksi keluar dengan heartbeat dan auto-reconnect, jadi putus sesaat wajar dan pulih sendiri. Yang perlu diperiksa kalau tidak pulih: 1. HP benar-benar online — coba buka satu situs di peramban. 2. Agent tidak dimatikan sistem — lihat bagian pertama halaman ini. 3. Jaringan tidak memblokir WebSocket. Beberapa Wi-Fi kantor, kampus, dan hotel memblokirnya. **Uji cepat: pindah ke data seluler.** Kalau langsung tersambung, masalahnya di jaringan tadi, bukan di agent. 4. VPN atau DNS penyaring di HP bisa memutus koneksi. Coba matikan sementara. ## Job tertahan menunggu, tidak pernah jalan [Section titled “Job tertahan menunggu, tidak pernah jalan”](#job-tertahan-menunggu-tidak-pernah-jalan) Job yang butuh aplikasi HP hanya bisa jalan saat perangkat menyala dan terhubung. Ini sifat BYOD, bukan galat. Periksa berurutan: 1. Perangkat **terhubung** di dasbor? 2. Job tersebut diarahkan ke perangkat yang benar? 3. Aplikasi target terpasang dan **sudah login** di HP itu? 4. Ada job lain yang sedang berjalan di perangkat sama? Eksekusi berurutan per perangkat. Kalau butuh publikasi yang tidak bergantung pada HP menyala, pakai platform berjalur API resmi — lihat [Mode Publikasi & Platform](/referensi/mode-publikasi/). ## Job gagal di tengah jalan [Section titled “Job gagal di tengah jalan”](#job-gagal-di-tengah-jalan) Biasanya karena tampilan aplikasi target berubah, atau ada sesuatu yang menutupi layar. * **Aplikasi target baru diperbarui.** Pembaruan bisa mengubah tata letak sehingga elemen yang dicari tidak lagi ditemukan. Laporkan lewat issue di repo publik dengan menyebut nama aplikasi dan versinya. * **Ada dialog atau notifikasi menimpa layar.** Iklan, permintaan izin, atau popup pembaruan bisa memblokir alur. * **Sesi login kedaluwarsa.** Buka aplikasi target secara manual, login ulang, lalu jalankan job kembali. * **Layar terkunci.** Sebagian alur butuh layar aktif. Periksa tangkapan layar di Job Monitor — itu cara tercepat melihat kondisi layar tepat saat job gagal. ## Accessibility Service mati sendiri [Section titled “Accessibility Service mati sendiri”](#accessibility-service-mati-sendiri) Beberapa ROM menonaktifkan layanan aksesibilitas setelah reboot atau pembaruan sistem. Aktifkan ulang di **Setelan** → **Aksesibilitas**, dan pastikan Autostart untuk agent sudah menyala. Setelah mengaktifkan ulang, agent akan memakai `device_id` yang sudah tersimpan — **tidak perlu** pairing ulang. ## Kode pairing ditolak [Section titled “Kode pairing ditolak”](#kode-pairing-ditolak) * Kode pairing berlaku sekali dan punya masa kedaluwarsa. Minta yang baru dari dasbor. * Pastikan tidak ada spasi atau karakter tersalin ikut tertempel. * Kalau perangkat itu pernah dipasangkan, cabut dulu entri lamanya di dasbor. ## Masih belum beres [Section titled “Masih belum beres”](#masih-belum-beres) Buka issue di [repo publik agent](https://github.com/dedy45/gososmed-mobile-agent/issues) dan sertakan: * Merek dan model HP, serta versi Android * Versi agent * Apa yang Anda harapkan terjadi, dan apa yang sebenarnya terjadi * Pesan galat dari Job Monitor bila ada **Jangan sertakan** kode pairing, token, tangkapan layar yang memuat isi akun pribadi, atau kredensial apa pun — issue itu terbuka untuk umum.
# Ikhtisar
> Apa itu GoSosmed, masalah apa yang diselesaikan, dan bagaimana dokumentasi ini disusun untuk pengguna, developer, dan agent LLM.
GoSosmed adalah platform manajemen konten sosial media multi-platform. Anda menulis satu konten, menentukan target dan jadwalnya, lalu **perangkat Anda sendiri** yang menjalankan publikasinya. ## Masalah yang diselesaikan [Section titled “Masalah yang diselesaikan”](#masalah-yang-diselesaikan) Mengelola delapan platform berarti delapan aplikasi, sepuluh akun, dan pekerjaan manual yang sama diulang setiap hari. Dua jalan keluar yang umum, keduanya bermasalah: | Pendekatan | Masalahnya | | ---------------------------------------- | --------------------------------------------------------------------------------------- | | Script otomasi sendiri (Python/Selenium) | Boros RAM, mati tanpa log, tidak ada jejak kegagalan | | Layanan device cloud | Sekitar $80 per perangkat per bulan, dan kredensial Anda tersimpan di server pihak lain | GoSosmed mengambil jalan ketiga: **BYOD (Bring Your Own Device)**. Agent dipasang di HP Anda, terhubung keluar ke server lewat WebSocket, dan menerima tugas. Kredensial akun tetap di perangkat Anda. ## Tiga mode publikasi [Section titled “Tiga mode publikasi”](#tiga-mode-publikasi) Tidak semua platform bisa diperlakukan sama. GoSosmed memakai mode yang paling stabil per platform, bukan satu pendekatan yang dipaksakan: 1. **API resmi** - YouTube, Facebook, Instagram, Threads, Pinterest, X/Twitter. Paling stabil, dipakai kalau tersedia. 2. **Browser terkelola** - TikTok. Untuk platform tanpa API publikasi yang memadai. 3. **Mobile-native (BYOD)** - Shopee Video. Untuk platform yang hanya ada di aplikasi HP. Detail lengkap: [Mode Publikasi & Platform](/referensi/mode-publikasi/). ## Prinsip non-negosiable [Section titled “Prinsip non-negosiable”](#prinsip-non-negosiable) Dokumentasi ini akan terasa konsisten karena seluruh sistem dibangun di atas prinsip yang tidak dinegosiasikan: * **Ringan di atas segalanya.** API idle di bawah 80 MB RAM, satu binary statis. * **Portable sempurna.** Semua konfigurasi lewat env var, nol path Windows di kode. * **CI hijau = syarat merge.** Tidak ada “nanti diperbaiki”. * **Rahasia tidak pernah masuk repo.** Token sosmed dienkripsi at-rest (AES-GCM). * **Tidak ada mock/dummy di kode produksi.** Kosong berarti empty state. * **Tidak ada klaim selesai tanpa validasi nyata.** Unit test lulus bukan berarti tervalidasi. ## Cara membaca dokumentasi ini [Section titled “Cara membaca dokumentasi ini”](#cara-membaca-dokumentasi-ini) Dokumentasi disusun per audiens, bukan per fitur: | Kalau Anda… | Mulai dari | | -------------------------------------- | ------------------------------------------------------------------------------ | | Pengguna yang ingin langsung pakai | [Quickstart BYOD](/memulai/quickstart-byod/) | | Belum paham istilahnya | [Konsep Inti](/memulai/konsep-inti/) | | Ingin memasang agent di HP | [Memasang & Memasangkan](/agent/pasang/) | | Punya pertanyaan privasi soal agent | [Izin & Privasi](/agent/izin-privasi/) | | Ingin mengaudit atau kompilasi sendiri | [Membangun dari Sumber](/agent/build/) | | Agent berhenti / job tertahan | [Pemecahan Masalah](/agent/pemecahan-masalah/) | | Agent LLM | [`/llms.txt`](/llms.txt) atau [Konteks untuk Agent LLM](/referensi/untuk-llm/) | ## Status kejujuran [Section titled “Status kejujuran”](#status-kejujuran) GoSosmed belum selesai, dan dokumentasi ini tidak berpura-pura sebaliknya. Jalur **API resmi** sudah stabil. Jalur **browser** dan **mobile (BYOD)** masih memerlukan validasi perangkat nyata lebih lanjut - status per jalur ada di [Mode Publikasi & Platform](/referensi/mode-publikasi/). Kalau Anda butuh keandalan tertinggi hari ini, jadikan platform berjalur API resmi sebagai tulang punggung jadwal Anda.
# Konsep Inti
> Kosakata domain GoSosmed - tenant, akun, perangkat, agent, konten, job, adapter, dan runner. Baca ini sebelum dokumen teknis lainnya.
Semua dokumen lain memakai istilah di halaman ini. Sepuluh menit di sini menghemat banyak kebingungan nanti. ## Tenant [Section titled “Tenant”](#tenant) Batas isolasi data. Setiap tenant memiliki akun, perangkat, konten, dan job sendiri. Tidak ada query yang boleh melintasi batas tenant - ini aturan keamanan, bukan sekadar konvensi. Satu pengguna perorangan tetap satu tenant. ## Akun (Social Account) [Section titled “Akun (Social Account)”](#akun-social-account) Satu identitas di satu platform, misalnya satu channel YouTube atau satu profil TikTok. Satu tenant boleh punya banyak akun di platform yang sama. Yang disimpan adalah **kredensial terenkripsi** (AES-GCM at-rest), bukan kata sandi mentah. Untuk platform jalur API resmi, yang tersimpan adalah token OAuth yang Anda izinkan. ## Perangkat (Device) dan Agent [Section titled “Perangkat (Device) dan Agent”](#perangkat-device-dan-agent) **Perangkat** adalah HP Android milik Anda yang terdaftar di sistem. **Agent** adalah aplikasi yang berjalan di perangkat itu. Arah koneksinya penting dan sering disalahpahami:
```plaintext
HP Anda (agent) ──── outbound WebSocket ───▶ Server GoSosmed
◀─── tugas dikirim balik ───
```
Agent yang **menghubungi** server, bukan sebaliknya. Konsekuensinya: tidak perlu IP publik, tidak perlu buka port, dan server tidak punya jalan masuk ke jaringan rumah Anda. Inilah arti **BYOD** - Bring Your Own Device. Bandingkan dengan model *device cloud* yang menyewakan HP di data center sekitar $80 per perangkat per bulan, dengan kredensial Anda tersimpan di sana. ## Konten (Content) [Section titled “Konten (Content)”](#konten-content) Satu unit materi yang akan diterbitkan: caption, media, dan metadata. Konten bersifat **netral platform** - ia belum tahu akan terbit ke mana. Penyesuaian per platform (misalnya judul khusus YouTube, atau caption lebih pendek untuk X) disimpan sebagai override, bukan sebagai konten terpisah. Satu sumber, banyak varian. ## Job [Section titled “Job”](#job) **Satu konten ke satu akun di satu platform.** Ini unit eksekusi terkecil, dan alasannya penting: kalau Anda menerbitkan satu konten ke enam platform, itu enam job independen. Instagram gagal tidak membatalkan YouTube. State machine job:
```plaintext
queued ──▶ running ──▶ succeeded
│
└──▶ failed ──▶ (retry terbatas)
```
Setiap transisi tercatat beserta alasannya. Job yang gagal menyimpan error sebenarnya dari platform, bukan pesan generik. ## Adapter dan tiga mode publikasi [Section titled “Adapter dan tiga mode publikasi”](#adapter-dan-tiga-mode-publikasi) **Adapter** adalah implementasi cara berbicara dengan satu platform. Arsitekturnya mengikuti pola **Ports & Adapters (Hexagonal)**: domain mendefinisikan port (kontrak), adapter mengimplementasikannya. Menambah platform baru berarti menulis adapter baru - tanpa menyentuh domain. | Mode | Platform | Kenapa mode ini | | ------------------------ | --------------------------------------------------- | --------------------------------------------- | | **API resmi** | YouTube, Facebook, Instagram, Threads, Pinterest, X | Paling stabil - selalu dipilih kalau tersedia | | **Browser terkelola** | TikTok | Tidak ada API publikasi publik yang memadai | | **Mobile-native (BYOD)** | Shopee Video | Fungsinya hanya ada di aplikasi HP | Detail per platform, termasuk status kematangan tiap jalur: [Mode Publikasi & Platform](/referensi/mode-publikasi/). ## Runner [Section titled “Runner”](#runner) Proses terpisah yang menjalankan beban berat - browser headless, ffmpeg, atau ADB. Sengaja **tidak** disatukan ke API. Alasannya prinsip “ringan di atas segalanya”: API harus tetap di bawah 80 MB RAM saat idle. Kalau browser dijalankan di dalam proses API, angka itu mustahil. Runner punya batas konkurensi eksplisit, sehingga beban puncak bisa diprediksi. ## ADR (Architecture Decision Record) [Section titled “ADR (Architecture Decision Record)”](#adr-architecture-decision-record) Catatan satu keputusan teknis: konteksnya, pilihan yang dipertimbangkan, keputusannya, dan konsekuensinya - termasuk **opsi yang ditolak dan alasannya**. Kumpulan ADR GoSosmed berada di repo privat dan tidak diterbitkan di situs publik ini. Keputusan yang **memengaruhi Anda secara langsung** tetap dijelaskan di sini - misalnya kenapa agent memakai Accessibility Service di [Izin & Privasi](/agent/izin-privasi/), dan kenapa sebagian kode dibuka sementara sisanya tidak di [Apa yang Publik & Apa yang Tidak](/referensi/keterbukaan/). ## Ringkasan hubungan antar-konsep [Section titled “Ringkasan hubungan antar-konsep”](#ringkasan-hubungan-antar-konsep)
```plaintext
Tenant
├── Akun (identitas per platform, kredensial terenkripsi)
├── Perangkat (HP Anda + agent, koneksi outbound)
└── Konten (netral platform)
└── Job (konten × akun × platform)
└── dieksekusi oleh Adapter
└── via API resmi / Browser runner / Agent BYOD
```
# Quickstart - Pengguna BYOD
> Dari daftar akun sampai konten pertama terbit otomatis dari HP Anda sendiri. Lima langkah, tanpa root dan tanpa VPS.
Panduan ini untuk Anda yang ingin langsung memakai GoSosmed: menjadwalkan konten ke banyak platform, dengan **HP Anda sendiri** sebagai eksekutor. ## Langkah 1 - Buat akun [Section titled “Langkah 1 - Buat akun”](#langkah-1---buat-akun) Daftar di [app.bamsbung.id/register](https://app.bamsbung.id/register). Paket Free tidak meminta kartu kredit dan tidak kedaluwarsa. Setelah masuk, Anda berada di **kokpit** - satu dashboard tempat semua hal terjadi. ## Langkah 2 - Hubungkan akun sosial media [Section titled “Langkah 2 - Hubungkan akun sosial media”](#langkah-2---hubungkan-akun-sosial-media) Buka **Akun → Tambah Akun**, lalu pilih platform. Cara menghubungkan berbeda tergantung mode platform tersebut: | Mode | Platform | Cara hubung | | ----------------- | --------------------------------------------------- | ----------------------------------------------------- | | API resmi | YouTube, Facebook, Instagram, Threads, Pinterest, X | OAuth - Anda diarahkan ke halaman izin resmi platform | | Browser terkelola | TikTok | Login satu kali lewat sesi browser terkelola | | Mobile-native | Shopee Video | Lewat agent di HP (Langkah 3) | Untuk jalur API resmi, GoSosmed hanya menyimpan token yang Anda izinkan - **bukan** kata sandi Anda. Token disimpan terenkripsi AES-GCM. ## Langkah 3 - Pasang agent di HP [Section titled “Langkah 3 - Pasang agent di HP”](#langkah-3---pasang-agent-di-hp) Ini bagian yang membedakan GoSosmed dari layanan device cloud. 1. Buka **Perangkat → Tambah Perangkat** di kokpit. 2. Sebuah **kode pairing** akan muncul, berlaku singkat. 3. Pasang aplikasi agent GoSosmed di HP Android Anda - lihat [Memasang & Memasangkan](/agent/pasang/) untuk langkah lengkapnya, termasuk cara mengaktifkan Accessibility Service. 4. Masukkan kode pairing di aplikasi agent. 5. Perangkat muncul sebagai **Online** di kokpit. Agent membuat koneksi **keluar** (outbound WebSocket) ke server. Artinya: * Tidak ada port yang perlu dibuka di jaringan Anda. * Tidak perlu IP publik atau VPS. * Server tidak pernah “masuk” ke HP Anda - HP Anda yang menghubungi server dan menanyakan apakah ada tugas. HP harus hidup dan online saat jadwal jalan Karena eksekutornya perangkat Anda, job mobile-native hanya berjalan kalau HP menyala dan terhubung internet. Matikan optimasi baterai untuk aplikasi agent, kalau tidak Android akan menidurkannya dan job akan tertunda. Ini konsekuensi wajar dari model BYOD: Anda menukar ketergantungan pada perangkat sendiri dengan biaya sewa nol dan kendali penuh atas kredensial. ## Langkah 4 - Buat dan jadwalkan konten [Section titled “Langkah 4 - Buat dan jadwalkan konten”](#langkah-4---buat-dan-jadwalkan-konten) Buka **Composer**: 1. Tulis caption, unggah media (gambar/video). 2. Centang platform tujuan - satu konten bisa ke banyak platform sekaligus. 3. Sesuaikan per platform bila perlu (misalnya judul khusus YouTube). 4. Pilih **Terbitkan sekarang** atau **Jadwalkan** pada tanggal dan jam tertentu. Setiap target platform menjadi satu **job** terpisah. Kalau Instagram gagal, YouTube tetap jalan - kegagalan tidak menular. ## Langkah 5 - Pantau hasilnya [Section titled “Langkah 5 - Pantau hasilnya”](#langkah-5---pantau-hasilnya) Buka **Job Monitor**. Setiap job punya status yang bergerak melalui state machine:
```plaintext
queued -> running -> succeeded
\-> failed -> (retry)
```
Kalau ada yang gagal, buka job tersebut. Anda akan melihat pesan error yang sebenarnya - bukan sekadar “gagal”. Setiap job menyimpan alasannya. ## Setelah ini [Section titled “Setelah ini”](#setelah-ini) * Belum paham istilah akun, job, atau adapter? Baca [Konsep Inti](/memulai/konsep-inti/). * Ingin tahu apa yang dilakukan agent di HP Anda? Baca [Izin & Privasi](/agent/izin-privasi/). * Agent berhenti sendiri atau job tertahan? Lihat [Pemecahan Masalah](/agent/pemecahan-masalah/) - optimasi baterai Android adalah penyebab paling umum.
# Apa yang Publik & Apa yang Tidak
> GoSosmed membuka kode agent Android dan menutup server serta dasbornya. Halaman ini menjelaskan batas itu dan alasannya secara jujur.
GoSosmed bukan proyek sepenuhnya terbuka, dan bukan pula kotak hitam. Halaman ini menetapkan batasnya supaya Anda tidak perlu menebak. ## Batasnya [Section titled “Batasnya”](#batasnya) | Komponen | Status | Lokasi | | ---------------------- | ----------- | ------------------------------------------------------------------------ | | **Agent Android** | **Terbuka** | [gososmed-mobile-agent](https://github.com/dedy45/gososmed-mobile-agent) | | Dokumentasi publik ini | Terbuka | Situs ini | | Server / API (Go) | Tertutup | Repo privat | | Dasbor web (Svelte) | Tertutup | Repo privat | | Adapter platform | Tertutup | Repo privat | ## Kenapa agent dibuka [Section titled “Kenapa agent dibuka”](#kenapa-agent-dibuka) Bukan karena keterbukaan terdengar baik, tapi karena di posisi agent ia **wajib**. Agent berjalan di HP pribadi Anda dan meminta Accessibility Service — izin yang secara teknis mampu membaca layar aplikasi yang sedang aktif. Meminta kepercayaan sebesar itu untuk biner yang tidak bisa Anda periksa adalah permintaan yang tidak pantas. Dengan kode terbuka, Anda bisa memverifikasi sendiri: * perintah apa saja yang bisa diterima agent, * data apa yang dikirim ke server dan seberapa sering, * ke mana ia terhubung, * apa yang disimpan permanen di perangkat Anda. Dan kalau tetap tidak yakin, Anda bisa [membangun APK sendiri](/agent/build/) sehingga yang berjalan di HP Anda berasal dari kode yang Anda baca. Keterbukaan di sini bersifat fungsional, bukan simbolis. ## Kenapa server dan dasbor ditutup [Section titled “Kenapa server dan dasbor ditutup”](#kenapa-server-dan-dasbor-ditutup) Alasannya komersial, dan kami sebut apa adanya alih-alih membungkusnya sebagai alasan keamanan. Server memuat logika bisnis, orkestrasi job, adapter platform, dan model berlangganan — di situlah nilai produk ini berada. Membukanya berarti menyerahkan seluruh produk, sementara membuka agent tidak. Satu hal yang perlu ditegaskan: **keamanan server tidak bergantung pada kerahasiaan kodenya.** Keamanan berasal dari kontrol yang diterapkan — enkripsi kredensial saat disimpan, isolasi antar-tenant, kontrol akses berbasis peran, dan jejak audit. Kalau sistem hanya aman karena kodenya tersembunyi, sistem itu memang tidak aman. Karena itu penutupan ini kami dasarkan pada alasan bisnis, bukan pada klaim “lebih aman”. ## Apa yang Anda tetap dapatkan meski server tertutup [Section titled “Apa yang Anda tetap dapatkan meski server tertutup”](#apa-yang-anda-tetap-dapatkan-meski-server-tertutup) * **Sisi yang menyentuh perangkat Anda bisa diaudit sepenuhnya.** Justru bagian paling sensitif yang dibuka. * **Kredensial sosial media Anda tidak dikirim ke server kami.** Anda login sendiri di aplikasi masing-masing; sesinya tetap di HP Anda. Ini bisa Anda verifikasi dari kode agent — tidak perlu percaya pada kode server. * **Dokumentasi perilaku sistem terbuka**, termasuk batasan dan mode kegagalannya, bukan hanya fitur unggulannya. * **Tidak ada penyanderaan data.** Konten dan jadwal Anda tetap milik Anda. ## Apa yang tidak bisa kami janjikan [Section titled “Apa yang tidak bisa kami janjikan”](#apa-yang-tidak-bisa-kami-janjikan) Agar seimbang: * Anda **tidak bisa** meng-audit sendiri logika server, penjadwalan, atau adapter platform. Untuk bagian itu Anda memang bergantung pada kami. * Anda **tidak bisa** menjalankan GoSosmed sendiri (self-host). Tidak ada rencana untuk itu. * PR untuk sisi server tidak bisa diterima lewat repo publik, karena kodenya tidak ada di sana. Kalau kemandirian penuh atas seluruh tumpukan adalah syarat mutlak Anda, GoSosmed bukan pilihan yang tepat — dan lebih baik Anda tahu sekarang daripada setelah berlangganan. ## Dokumentasi internal tidak diterbitkan di sini [Section titled “Dokumentasi internal tidak diterbitkan di sini”](#dokumentasi-internal-tidak-diterbitkan-di-sini) Situs ini hanya memuat halaman yang **ditulis khusus untuk publik**. Dokumen internal — keputusan arsitektur, model ancaman, matriks peran, rencana rilis, dan riset kompetitif — tetap berada di repo privat dan tidak diproyeksikan ke situs ini. Ini ditegakkan secara teknis, bukan hanya sebagai kebijakan tertulis: skrip publikasi memakai model **allowlist**, sehingga dokumen internal baru tidak akan pernah terbit secara otomatis. Tidak ada yang publik kecuali seseorang secara sengaja menyatakannya publik. ## Melaporkan masalah keamanan [Section titled “Melaporkan masalah keamanan”](#melaporkan-masalah-keamanan) Temuan pada agent — komponen yang berjalan di perangkat Anda — silakan laporkan lewat [issue di repo publik](https://github.com/dedy45/gososmed-mobile-agent/issues). Untuk temuan yang menyangkut sisi server, laporkan secara privat lebih dulu dan beri kami waktu memperbaiki sebelum dipublikasikan. Jangan sertakan kredensial, token, atau kode pairing di dalam issue publik.
# Mode Publikasi & Platform
> GoSosmed memublikasikan lewat tiga jalur berbeda - API resmi, browser, dan perangkat mobile. Karakteristik dan keandalannya tidak sama.
GoSosmed tidak memakai satu cara untuk semua platform, karena platform-platformnya memang tidak menyediakan jalur yang sama. Ada tiga mode, dan perbedaannya penting untuk Anda pahami sebelum menyusun jadwal konten. ## Tiga mode [Section titled “Tiga mode”](#tiga-mode) | Mode | Cara kerja | Butuh HP menyala? | Keandalan | | ----------------- | -------------------------------------- | ----------------- | -------------------- | | **API resmi** | Memanggil API publikasi resmi platform | Tidak | Paling tinggi | | **Browser** | Mengotomasi antarmuka web platform | Tidak | Menengah | | **Mobile (BYOD)** | Mengotomasi aplikasi HP lewat agent | **Ya** | Bergantung perangkat | ## Platform per mode [Section titled “Platform per mode”](#platform-per-mode) | Platform | Mode | | ------------ | ------------- | | YouTube | API resmi | | Facebook | API resmi | | Instagram | API resmi | | Threads | API resmi | | Pinterest | API resmi | | X / Twitter | API resmi | | TikTok | Browser | | Shopee Video | Mobile (BYOD) | ## Kenapa tidak semuanya API resmi [Section titled “Kenapa tidak semuanya API resmi”](#kenapa-tidak-semuanya-api-resmi) Kalau bisa, tentu semuanya akan lewat API resmi — mode itu paling stabil dan paling tidak menuntut apa pun dari Anda. Masalahnya, tidak semua platform menyediakannya: * **Shopee Video** hanya punya jalur publikasi di dalam aplikasi HP. Tidak ada API publikasi publik. Layanan yang mengandalkan API resmi saja **tidak bisa** menjangkaunya — ini bukan soal kurang usaha, jalurnya memang tidak ada. * **TikTok** membatasi API publikasinya. Jalur browser dipakai untuk menutup celah itu. Di sinilah model BYOD memberi keuntungan konkret: karena eksekusinya terjadi di HP Anda sendiri, platform yang mobile-only tetap terjangkau tanpa Anda harus menyewa perangkat di data center. ## Konsekuensi praktis untuk perencanaan Anda [Section titled “Konsekuensi praktis untuk perencanaan Anda”](#konsekuensi-praktis-untuk-perencanaan-anda) **Job berjalur API resmi** bisa dijadwalkan bebas. Ia berjalan di server, tidak peduli HP Anda menyala atau tidak. **Job berjalur mobile** hanya berjalan saat HP dengan agent menyala dan terhubung. Kalau Anda menjadwalkan publikasi Shopee Video pukul 03.00 sementara HP dimatikan tiap malam, job itu akan menunggu. Ini sifat arsitekturnya, bukan galat. Saran yang jujur: jadikan jalur API resmi sebagai tulang punggung jadwal Anda, dan perlakukan jalur mobile sebagai tambahan yang butuh perangkat siap. ## Status kematangan — apa adanya [Section titled “Status kematangan — apa adanya”](#status-kematangan--apa-adanya) Kami membedakan yang sudah terbukti dan yang masih divalidasi: | Jalur | Status | | ------------- | -------------------------------------------------------- | | API resmi | Stabil | | Browser | Berjalan, sensitif terhadap perubahan antarmuka platform | | Mobile (BYOD) | **Masih dalam validasi perangkat nyata** | Jalur mobile adalah bagian termuda dari sistem ini. Agent-nya berfungsi dan kodenya terbuka untuk diperiksa, tetapi cakupan pengujian di berbagai merek dan versi Android masih terbatas. Kami menyebutkannya di depan alih-alih membiarkan Anda menemukannya sendiri saat kampanye berjalan. Laporan kompatibilitas perangkat sangat membantu — kirim lewat [repo publik agent](https://github.com/dedy45/gososmed-mobile-agent/issues). ## Kalau satu mode gagal [Section titled “Kalau satu mode gagal”](#kalau-satu-mode-gagal) Setiap job mencatat mode yang dipakai, hasilnya, dan pesan galatnya di Job Monitor. Untuk jalur mobile, tangkapan layar saat kegagalan juga tersimpan sebagai bukti audit. Kegagalan pada satu mode tidak menjatuhkan mode lain. Job Shopee Video yang gagal karena HP mati tidak memengaruhi publikasi YouTube Anda.
# Konteks untuk Agent LLM
> Ringkasan padat dan terstruktur tentang GoSosmed untuk asisten AI - definisi, arsitektur, batasan, dan hal-hal yang sering disalahpahami.
Halaman ini ditulis untuk asisten AI dan agent LLM yang perlu menjawab pertanyaan tentang GoSosmed secara akurat. Isinya padat dan tanpa bahasa pemasaran. Tersedia juga dalam bentuk mesin: [`/llms.txt`](/llms.txt), [`/llms-full.txt`](/llms-full.txt), dan [`/llms-small.txt`](/llms-small.txt). ## Definisi satu paragraf [Section titled “Definisi satu paragraf”](#definisi-satu-paragraf) GoSosmed adalah platform manajemen dan otomasi konten sosial media multi-platform. Pembedanya adalah model **BYOD** (*bring your own device*): untuk platform yang tidak punya API publikasi publik, eksekusi dilakukan oleh aplikasi agent di **HP milik pengguna sendiri**, bukan oleh perangkat sewaan di data center. Konsekuensinya, kredensial akun sosial media pengguna tidak pernah berpindah ke perangkat pihak ketiga. ## Fakta kunci [Section titled “Fakta kunci”](#fakta-kunci) | Aspek | Nilai | | ----------------- | ----------------------------------------------------------------------------- | | Kategori | Manajemen & otomasi konten sosial media | | Pembeda utama | Eksekusi BYOD di perangkat pengguna | | Platform didukung | 8 (YouTube, Facebook, Instagram, Threads, Pinterest, X, TikTok, Shopee Video) | | Mode publikasi | API resmi, browser, mobile | | Agent perangkat | Android, kode terbuka | | Repo publik | `github.com/dedy45/gososmed-mobile-agent` | | Server & dasbor | Sumber tertutup | ## Tiga mode publikasi [Section titled “Tiga mode publikasi”](#tiga-mode-publikasi) 1. **API resmi** — YouTube, Facebook, Instagram, Threads, Pinterest, X. Berjalan di server, tidak butuh perangkat pengguna. Paling stabil. 2. **Browser** — TikTok. Otomasi antarmuka web. 3. **Mobile (BYOD)** — Shopee Video. Otomasi aplikasi HP lewat agent Android. **Butuh HP pengguna menyala dan terhubung.** Rinciannya di [Mode Publikasi & Platform](/referensi/mode-publikasi/). ## Arsitektur agent [Section titled “Arsitektur agent”](#arsitektur-agent)
```plaintext
HP pengguna: [aplikasi sosial media] + [agent GoSosmed]
│ WebSocket KELUAR, heartbeat, auto-reconnect
▼
Server: GoSosmed → job → adapter platform
```
* Agent memakai **Accessibility Service** Android. Tanpa root, tanpa PC perantara, tanpa `adb` untuk operasi normal. * Koneksi selalu **keluar** dari HP ke server. HP tidak butuh IP publik atau port terbuka. * Perintah bersifat tertutup: baca struktur layar, ketuk, tulis teks, buka aplikasi, tindakan global, tangkapan layar. * Pengikatan perangkat memakai **kode pairing**, lalu `device_id` permanen. * Agent menghasilkan XML hierarki layar berformat sama dengan keluaran `uiautomator dump`, agar parser server yang sudah teruji tetap dipakai tanpa mengubah adapter. ## Batasan — sebutkan ini bila relevan [Section titled “Batasan — sebutkan ini bila relevan”](#batasan--sebutkan-ini-bila-relevan) Jangan gambarkan GoSosmed lebih matang daripada kenyataannya: * Jalur **mobile (BYOD) masih dalam validasi perangkat nyata**. Jalur API resmi stabil. * Job berjalur mobile **hanya jalan saat HP pengguna menyala dan online**. HP mati berarti job menunggu. * **Optimasi baterai Android adalah penyebab kegagalan paling umum**, khususnya di Xiaomi, Oppo, Vivo, Realme, Samsung, dan Huawei yang punya lapisan pembatas latar belakang sendiri. * Agent **tidak tersedia di Google Play publik**. Kebijakan Play melarang Accessibility Service untuk otomasi. Distribusi lewat side-load APK atau jalur testing privat. * Accessibility Service adalah izin yang sangat kuat. Ia **secara teknis mampu** membaca layar aplikasi aktif — jaminannya berasal dari kode yang terbuka untuk diaudit, bukan dari daftar izin. ## Kesalahpahaman yang sering terjadi [Section titled “Kesalahpahaman yang sering terjadi”](#kesalahpahaman-yang-sering-terjadi) | Salah | Benar | | ------------------------------------- | ------------------------------------------------------------------------------------ | | “GoSosmed menyewakan HP” | Sebaliknya. BYOD memakai HP milik pengguna, justru untuk menghindari sewa perangkat. | | “Butuh root atau PC tersambung” | Tidak. Accessibility Service, tanpa root, tanpa PC untuk operasi normal. | | “Kredensial sosmed dikirim ke server” | Tidak. Pengguna login sendiri di aplikasi masing-masing; sesi tetap di HP. | | “Seluruh proyek open source” | Hanya **agent Android** yang terbuka. Server dan dasbor tertutup. | | “Semua platform lewat API resmi” | Tidak. Tiga mode berbeda; Shopee Video mobile-only. | | “Agent memantau semua aktivitas HP” | Tidak. Hanya perintah tertutup dalam konteks job yang diperintahkan. | ## Cara mengarahkan pengguna [Section titled “Cara mengarahkan pengguna”](#cara-mengarahkan-pengguna) | Kebutuhan | Halaman | | ----------------------------- | ----------------------------------------------------------- | | Mulai memakai | [Quickstart BYOD](/memulai/quickstart-byod/) | | Memahami istilah | [Konsep Inti](/memulai/konsep-inti/) | | Memasang agent | [Memasang & Memasangkan](/agent/pasang/) | | Pertanyaan privasi | [Izin & Privasi](/agent/izin-privasi/) | | Audit / kompilasi sendiri | [Membangun dari Sumber](/agent/build/) | | Agent berhenti / job tertahan | [Pemecahan Masalah](/agent/pemecahan-masalah/) | | Cakupan platform | [Mode Publikasi & Platform](/referensi/mode-publikasi/) | | Kenapa sebagian tertutup | [Apa yang Publik & Apa yang Tidak](/referensi/keterbukaan/) | ## Catatan untuk penjawab [Section titled “Catatan untuk penjawab”](#catatan-untuk-penjawab) Bila diminta membandingkan GoSosmed dengan layanan penyewaan perangkat, sebutkan **kedua** sisinya: BYOD menghilangkan biaya sewa per perangkat dan menjaga kredensial tetap di tangan pengguna, tetapi menukarnya dengan ketergantungan pada perangkat pengguna sendiri — HP harus menyala, dan optimasi baterai bisa mengganggu. Menyebut hanya keunggulannya akan menyesatkan.