
# Referensi CLI

## Penggunaan dasar

Jalankan saja perintahnya - tanpa argumen:

```bash
npx termbridge
```

Ini memulai semuanya: server lokal, sesi tmux, dan tunnel Cloudflare default.

Menjalankan `termbridge` tanpa subperintah sama dengan menjalankan `termbridge start`.

Anda juga dapat menjalankan `termbridge start` secara eksplisit dengan semua flag:

```bash
termbridge start --port 8080 --proxy 5173 --session dev --kill-on-exit --no-qr --tunnel cloudflare
```

## Flag

| Flag | Fungsinya | Default |
|------|--------------|---------|
| `--port <port>` | Gunakan port tertentu, bukan port acak | Acak |
| `--proxy <port>` | Proksikan server pengembangan lokal (mengaktifkan tampilan Terminal/Preview) | - |
| `--session <name>` | Beri nama pada sesi tmux Anda | Dibuat otomatis |
| `--kill-on-exit` | Bersihkan sesi tmux saat Termbridge keluar | Nonaktif |
| `--no-qr` | Jangan cetak kode QR (berguna untuk skrip) | Nonaktif |
| `--no-tunnel` | Nonaktifkan tunnel (memerlukan `--public-url`) | Nonaktif |
| `--public-url <url>` | URL publik saat tunnel dinonaktifkan | - |
| `--tunnel <provider>` | Penyedia tunnel (`cloudflare` atau `none`) | cloudflare |
| `--tunnel-token <token>` | Gunakan token Tunnel Cloudflare bernama (memerlukan `--port`) | - |
| `--tunnel-url <url>` | URL publik untuk tunnel bernama (wajib dengan `--tunnel-token`) | - |
| `--backend <backend>` | Backend terminal (`tmux` atau `sandbox-daytona`) | tmux |
| `--sandbox-repo <url>` | Repo URL untuk diklon ke sandbox Daytona | - |
| `--sandbox-branch <branch>` | Branch untuk di-checkout di sandbox | - |
| `--sandbox-path <path>` | Jalur repo di sandbox | Diambil dari nama repo |
| `--sandbox-name <name>` | Nama sandbox | `termbridge-<hex>` acak |
| `--sandbox-preview-port <port>` | Port pratinjau di sandbox | - |
| `--sandbox-public` | Buat sandbox publik | Nonaktif (aktif dalam mode langsung) |
| `--sandbox-direct` | Jalankan server di dalam sandbox Daytona (tanpa tunnel) | Nonaktif |
| `--dev-proxy-url <url>` | Proksikan lalu lintas pratinjau ke URL ini alih-alih `localhost:<proxy port>` (digunakan oleh skrip pengembangan) | - |
| `-h`, `--help` | Tampilkan teks bantuan | - |

Opsi lainnya akan menyebabkan `unknown option: <flag>`. Tidak ada flag `--version`.

Flag mengungguli variabel lingkungannya, dengan satu pengecualian: `TERMBRIDGE_TUNNEL` saat ini mengesampingkan `--tunnel` dan `--no-tunnel` ([#5](https://github.com/inline0/termbridge/issues/5)).

> **Catatan**
> Output `termbridge --help` bawaan masih mencantumkan flag `--daytona-*` dan `--backend tmux | daytona`. Nama-nama tersebut ditolak; gunakan flag `--sandbox-*` dan `--backend sandbox-daytona` dari tabel di atas ([#1](https://github.com/inline0/termbridge/issues/1)).

## Contoh

### Menghubungkan ke sesi tmux yang sudah ada

Jika sesi tmux sudah berjalan:

```bash
termbridge --session my-session
```

### Port tetap dan sesi kustom

```bash
termbridge --port 8080 --session codex
```

### Keluar dengan bersih (tanpa sesi tersisa)

```bash
termbridge --kill-on-exit
```

### Pembuatan skrip (tanpa output QR)

```bash
termbridge --no-qr
```

### Proksikan server pengembangan Vite

```bash
# Start your Vite app first
cd my-app && npm run dev  # runs on port 5173

# Then start Termbridge with proxy
termbridge --proxy 5173
```

Gunakan tombol **Views** untuk beralih antara Terminal dan Preview. Preview memuat aplikasi Anda melalui proxy dengan dukungan HMR.

### Tunnel Cloudflare bernama (berbasis token)

Jika Anda memiliki akun Cloudflare dan ingin menghindari batas laju trycloudflare:

```bash
termbridge --port 8080 --tunnel-token <TOKEN> --tunnel-url https://term.example.com
```

### Nonaktifkan tunnel (gunakan URL publik milik Anda sendiri)

```bash
termbridge --no-tunnel --public-url https://example.com
```

## Variabel lingkungan

Termbridge membaca variabel lingkungan dari shell dan dari file `.env` di direktori tempat Anda menjalankannya. Variabel yang sudah diatur di shell diutamakan daripada file `.env`.

### Pengaturan inti

| Variabel | Fungsinya |
|----------|--------------|
| `TERMBRIDGE_SESSIONS=2` | Buat beberapa sesi tmux saat startup |
| `TERMBRIDGE_TMUX_CWD=/path` | Direktori kerja untuk sesi tmux baru |
| `TERMBRIDGE_PUBLIC_URL=https://example.com` | URL publik saat tunnel dinonaktifkan |
| `TERMBRIDGE_TUNNEL=none` | Nonaktifkan tunnel |
| `TERMBRIDGE_TUNNEL_TOKEN=<token>` | Token tunnel bernama (memerlukan `TERMBRIDGE_TUNNEL_URL`) |
| `TERMBRIDGE_TUNNEL_URL=https://term.example.com` | URL publik untuk tunnel bernama |

### Tingkat lanjut

Daytona mode langsung mengatur ini untuk server yang dijalankannya di dalam sandbox. Anda juga dapat mengaturnya sendiri.

| Variabel | Fungsinya |
|----------|--------------|
| `TERMBRIDGE_HOST=0.0.0.0` | Alamat yang digunakan server (default `127.0.0.1`). URL lokal yang dicetak selalu menampilkan `127.0.0.1`. |
| `TERMBRIDGE_COOKIE_SAMESITE=lax` | Nilai `SameSite` cookie sesi: `lax`, `strict` atau `none` (default `Lax`, atau `None` dalam mode langsung) |
| `TERMBRIDGE_SHARE_FILE=/path/share-url.txt` | Tulis juga URL berbagi ke file ini |
| `TERMBRIDGE_HIDE_TERMINAL_SWITCHER=1` | Sembunyikan pengalih terminal di UI |
| `TERMBRIDGE_TMUX_PATH_PREFIX=/path/bin` | Tambahkan ini di awal `PATH` pada setiap sesi tmux yang dimulai atau disambungkan oleh Termbridge (diketik ke sesi sebagai perintah `export`) |

### Pengembangan

| Variabel | Fungsinya |
|----------|--------------|
| `TERMBRIDGE_INSECURE_COOKIE=1` | Izinkan cookie HTTP (hanya untuk pengembangan lokal) |
| `TERMBRIDGE_PROXY_PORT=5173` | Port proksi untuk skrip dev:beam:proxy |
| `TERMBRIDGE_DEV_UI=http://127.0.0.1:5000` | Ganti Vite UI dev URL |
| `TERMBRIDGE_DEV_PORT=3000` | Ganti port server Termbridge dalam mode pengembangan (default `8787`) |
| `TERMBRIDGE_DEV_SESSION=codex` | Nama sesi tmux untuk `dev:beam` (default `codex`) |
| `TERMBRIDGE_SKIP_BUILD=1` | Lewati build CLI di `dev:beam` |

### Sandbox (Daytona)

| Variabel | Fungsinya |
|----------|--------------|
| `TERMBRIDGE_BACKEND=sandbox-daytona` | Gunakan backend sandbox Daytona |
| `TERMBRIDGE_SANDBOX_DIRECT=true` | Jalankan Termbridge di dalam sandbox |
| `TERMBRIDGE_SANDBOX_SERVER_PORT=8080` | Port untuk server di sandbox |
| `TERMBRIDGE_SANDBOX_AGENTS=claude-code,codex` | Instal otomatis + sinkronkan autentikasi untuk agen |
| `TERMBRIDGE_SANDBOX_AGENT_ENV=...` | Variabel env tambahan yang akan diteruskan |
| `TERMBRIDGE_SANDBOX_AGENT_AUTH_PATHS=...` | File autentikasi lokal yang akan disinkronkan |

Untuk konfigurasi Daytona lengkap, lihat panduan [Daytona](https://termbridge.inline0.dev/id/docs/sandboxes/daytona).

## Menghentikan Termbridge

Tekan `Ctrl+C` di terminal tempat Termbridge berjalan. Tindakan ini akan:

- Menutup tunnel (jika diaktifkan)
- Menghentikan server lokal
- Membiarkan sesi tmux tetap aktif (kecuali jika Anda menggunakan `--kill-on-exit`)

Sesi tmux Anda tetap aktif secara default, jadi Anda dapat menyambungkannya kembali nanti.
