# Referensi CLI

`sqctl` adalah cara Anda mengendalikan SecurQbit dari terminal. Ia berbicara dengan layanan latar belakang lewat soket lokal; ia tidak menyimpan kredensial dan tidak butuh hak khusus. Kalau Anda belum memasangnya, mulailah dari [Penyiapan Desktop & Router](/cli-installation).

Setiap perintah menerima `--json`, yang mencetak dokumen mentah alih-alih keluaran yang sudah dirapikan. Itulah antarmuka yang layak dijadikan sasaran skrip — tata letak untuk dibaca manusia bisa berubah.

## Sekilas

```text
sqctl status                        apakah VPN menyala, dan sebagai siapa
sqctl login                         masuk dengan menyetujui tautan di peramban
sqctl logout
sqctl locations                     negara yang bisa dipakai paket ini
sqctl connect [COUNTRY] [--fastest]
sqctl disconnect
sqctl set                           tampilkan preferensi
sqctl set country DE|any
sqctl set autoconnect on|off
sqctl set updates on|off
sqctl update [--check] [--yes]      pasang versi terbaru
```

## sqctl status

Menunjukkan apakah Anda terlindungi, dan sebagai siapa.

```text
$ sqctl status

  ● Connected      Germany
    Connected for  12m 40s
    Transferred    ↓ 148 MB   ↑ 22 MB

    Account        Alice  alice@example.com
    Plan           Monthly
    Renews         1 September 2026
```

Ia sengaja tidak menampilkan apa pun tentang bagaimana terowongan dibangun — tidak ada alamat server, tidak ada penanda sesi. Anda tidak bisa berbuat apa-apa dengan itu, dan alamat server khususnya bukan sesuatu yang pantas bocor lewat tangkapan layar saat Anda meminta bantuan.

Kalau layanannya tidak berjalan, `sqctl` mengatakannya dan mencetak perintah yang menyalakannya di mesin *ini*, apa pun sistem init-nya.

## sqctl login

Memasukkan komputer ini ke akun dengan menyetujuinya di peramban.

```text
$ sqctl login

Open this link to approve the sign-in:

    https://accounts.securqbit.com/device?code=BCDF-GHJK

Check the page shows this code:

    B C D F - G H J K

Waiting for approval — expires in 10 minutes, Ctrl-C to cancel
```

Buka tautannya — `sqctl` mencoba membukanya untuk Anda, dan `--no-browser` mencegahnya — masuk kalau belum, **periksa bahwa kode di halaman itu sama dengan yang ada di terminal Anda**, lalu setujui. Tidak pernah ada yang perlu diketik balik ke terminal.

Pencocokan itulah seluruh keamanan alur ini.

> **Setujui hanya permintaan yang Anda mulai sendiri.** Kalau ada orang mengirimi Anda tautan seperti itu lalu Anda menyetujuinya, Anda baru saja memasukkan *komputernya* ke *akun Anda*. Kode dan nama mesin yang ditampilkan halaman itu ada justru supaya Anda bisa membedakan.

Masuk memerlukan akun yang sudah ada. Buat satu di [aplikasi iOS atau Android](/installation) — termasuk [akun tamu](/anonymous-accounts), yang masuk ke accounts.securqbit.com dengan kode pemulihannya dan menyetujui dari sana seperti akun lain.

## sqctl logout

Mematikan VPN dan mengeluarkan komputer ini dari akun. Terowongan diturunkan lebih dulu, dan itu disengaja: membiarkannya menyala di atas kredensial yang baru saja dicabut akan menelantarkan trafik Anda pada sesi yang sebentar lagi dihapus server.

Untuk [akun tamu](/anonymous-accounts) akan diminta konfirmasi lebih dulu, sebab tanpa kode pemulihannya Anda tidak bisa masuk kembali. `--force` melewati pertanyaan itu.

## sqctl connect

```bash
sqctl connect            # preferensi tersimpan Anda
sqctl connect DE         # tampak berada di Jerman
sqctl connect --fastest  # biar SecurQbit yang memilih
```

Negara ditulis sebagai kode dua huruf — jalankan `sqctl locations` untuk melihat yang diizinkan paket Anda. Menyambung butuh beberapa detik; terminal mengikuti keadaan sebenarnya saat berubah alih-alih diam saja.

> **Paket percobaan tidak bisa memilih negara.** Dengan paket percobaan, gunakan `--fastest`. Menyebut sebuah negara akan mengembalikan galat yang menyatakan perlunya paket berbayar, bukan diam-diam menyambungkan Anda ke tempat lain. Lihat [Akun & Penagihan](/account-billing).

## sqctl disconnect

Menurunkan terowongan dan mengembalikan perutean serta DNS Anda seperti semula.

Memutus sambungan juga berarti memberi tahu SecurQbit untuk *berhenti*. Kalau terowongan putus sendiri, layanan akan terus berusaha memulihkannya — dan itu memang yang Anda mau pada laptop yang baru bangun dari tidur atau router yang jaringannya sempat goyah. Hanya `sqctl disconnect`, keluar dari akun, atau mematikan layanan yang membatalkan niat itu.

## sqctl locations

Menampilkan berdasarkan nama negara-negara yang bisa dipakai paket Anda.

```text
$ sqctl locations

    DE             Germany
    FR             France
    NL             Netherlands
    SG             Singapore
    US             United States
```

## sqctl set

Menampilkan atau mengubah preferensi Anda. Ada tiga, dan itulah tiga hal yang memang layak Anda putuskan.

```bash
sqctl set                    # tampilkan ketiganya
sqctl set country DE         # bawaan: Jerman
sqctl set country any        # bawaan: yang tercepat
sqctl set autoconnect on     # menyambung begitu mesin menyala
sqctl set updates off        # berhenti mencari versi baru
```

```text
$ sqctl set

    Location       Germany (DE)
    Auto-connect   on
    Updates        on
```

Selebihnya tentang terowongan — bagaimana ia dibangun, DNS apa yang dipakainya, bagaimana ia mencoba ulang — sudah diputuskan untuk Anda dan tidak dijangkau dari CLI. Itu bukan pilihan yang membuat sebuah VPN jadi lebih baik hanya karena ditawarkan.

`updates` adalah pengaturan, bukan ketetapan, karena pemeriksaannya merupakan panggilan berkala ke CDN SecurQbit, dan orang yang menjalankan VPN berhak menolaknya.

## sqctl update

Memasang versi terbaru.

```bash
sqctl update            # bertanya, lalu memasang dan memulai ulang
sqctl update --check    # hanya memberi tahu ada tidaknya versi baru
sqctl update --yes      # tanpa bertanya
```

```text
$ sqctl update

  ! Update available

    Installed      v1.0.0
    Latest         v1.1.0

  SecurQbit restarts to finish, so the VPN disconnects for a moment.

Install it now? [y/N]
```

Berkas unduhan dicocokkan dengan checksum yang diterbitkan sebelum apa pun diganti, lalu layanan dimulai ulang di atas versi baru. `sqctl` menunggu ia kembali dan membaca versinya langsung dari sana, jadi yang disampaikan kepada Anda adalah yang benar-benar berjalan, bukan yang baru ditulis ke disk.

SecurQbit juga memeriksa sendiri sekali sehari, dan hanya memberi tahu Anda — satu baris di bawah `sqctl status`:

```text
    Update         v1.1.0 available — run: sqctl update
```

Ia tidak pernah memasang sendiri. Menuntaskan pembaruan berarti memulai ulang, dan memulai ulang memutus terowongan yang sedang aktif; melakukan itu pada seseorang tanpa pemberitahuan lebih buruk daripada membiarkannya tertinggal satu versi.

Kalau SecurQbit dipasang oleh manajer paket distribusi Anda, `sqctl update` menolak sebelum mengunduh apa pun dan menyuruh Anda memperbaruinya dengan cara yang sama seperti saat memasangnya.

## Membuat skrip

`--json` pada perintah apa pun mencetak dokumen protokolnya:

```bash
$ sqctl status --json | jq '.state, .country'
"connected"
"DE"
```

```bash
# Sambungkan lalu pastikan memang berhasil
sqctl connect --fastest --json > /dev/null
test "$(sqctl status --json | jq -r .state)" = connected
```

Kode keluar: `0` berhasil, `1` perintah gagal, `2` layanan SecurQbit tidak terjangkau.

## Saat ada yang tidak beres

`sqctl` menerjemahkan kegagalan menjadi sesuatu yang bisa Anda tindak lanjuti, dan menjauhkan urusan internal. Ketika urusan internal itu justru yang Anda butuhkan — untuk laporan bug — ada perintah diagnostik tersembunyi:

```bash
sqctl debug          # versi, letak segala berkas, soket mana yang menjawab,
                     # mesin terowongan, dan galat terakhir dalam bentuk mentah
sqctl debug probe DE # menguji sebuah server dari ujung ke ujung TANPA menyambung
```

`sqctl debug probe` adalah yang paling berguna. Ia menyalakan proksi ke server sungguhan, mengirim satu permintaan lewat sana, dan melaporkan alamat yang dilihat pihak seberang — tetapi ia tidak membuat perangkat terowongan dan tidak mengubah rute apa pun, jadi ia memberi tahu apakah jalurnya berfungsi tanpa merenggut koneksi internet Anda kalau ternyata tidak.

Sertakan keluaran `sqctl debug` saat melaporkan masalah. Lihat [Pemecahan Masalah](/troubleshooting).

## Langkah berikutnya

- [Penyiapan Desktop & Router](/cli-installation) — memasang, memperbarui, dan menghapus.
- [Menyambung ke Server](/connecting) — bagaimana pemilihan server bekerja.
- [Melewati Firewall & Penyamaran](/firewall-bypass) — di jaringan yang dibatasi.
