
# Dokumentacja CLI

## Podstawowe użycie

Po prostu uruchom polecenie — nie trzeba podawać argumentów:

```bash
npx termbridge
```

Uruchamia to wszystko: serwer lokalny, sesję tmux i domyślny tunel Cloudflare.

Uruchomienie `termbridge` bez podpolecenia jest równoznaczne z `termbridge start`.

Możesz też jawnie uruchomić `termbridge start` ze wszystkimi flagami:

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

## Flagi

| Flaga | Działanie | Domyślnie |
|------|--------------|---------|
| `--port <port>` | Użyj określonego portu zamiast losowego | Losowy |
| `--proxy <port>` | Przekaż lokalny serwer deweloperski przez proxy (włącza widoki Terminal/Preview) | - |
| `--session <name>` | Nazwij swoją sesję tmux | Generowana automatycznie |
| `--kill-on-exit` | Sprzątaj sesje tmux po zakończeniu Termbridge | Wyłączone |
| `--no-qr` | Nie wyświetlaj kodu QR (przydatne w skryptach) | Wyłączone |
| `--no-tunnel` | Wyłącz tunel (wymaga `--public-url`) | Wyłączone |
| `--public-url <url>` | Publiczny URL, gdy tunel jest wyłączony | - |
| `--tunnel <provider>` | Dostawca tunelu (`cloudflare` lub `none`) | cloudflare |
| `--tunnel-token <token>` | Użyj tokena nazwanego tunelu Cloudflare (wymaga `--port`) | - |
| `--tunnel-url <url>` | Publiczny URL dla nazwanego tunelu (wymagany z `--tunnel-token`) | - |
| `--backend <backend>` | Backend terminala (`tmux` lub `sandbox-daytona`) | tmux |
| `--sandbox-repo <url>` | Repozytorium URL do sklonowania do sandboxa Daytona | - |
| `--sandbox-branch <branch>` | Gałąź do pobrania w sandboxie | - |
| `--sandbox-path <path>` | Ścieżka repozytorium w sandboxie | Ustalana na podstawie nazwy repozytorium |
| `--sandbox-name <name>` | Nazwa sandboxa | Losowy `termbridge-<hex>` |
| `--sandbox-preview-port <port>` | Port podglądu w sandboxie | - |
| `--sandbox-public` | Utwórz publiczny sandbox | Wyłączone (włączone w trybie bezpośrednim) |
| `--sandbox-direct` | Uruchom serwer wewnątrz sandboxa Daytona (bez tunelu) | Wyłączone |
| `--dev-proxy-url <url>` | Przekieruj ruch podglądu przez proxy do tego URL zamiast do `localhost:<proxy port>` (używane przez skrypty deweloperskie) | - |
| `-h`, `--help` | Wyświetl tekst pomocy | - |

Każda inna opcja powoduje błąd `unknown option: <flag>`. Flaga `--version` nie istnieje.

Flaga ma pierwszeństwo przed powiązaną zmienną środowiskową, z jednym wyjątkiem: `TERMBRIDGE_TUNNEL` obecnie zastępuje `--tunnel` i `--no-tunnel` ([#5](https://github.com/inline0/termbridge/issues/5)).

> **Uwaga**
> Wbudowane wyjście `termbridge --help` nadal wyświetla flagi `--daytona-*` i `--backend tmux | daytona`. Te nazwy są odrzucane; użyj flagi `--sandbox-*` i `--backend sandbox-daytona` z powyższej tabeli ([#1](https://github.com/inline0/termbridge/issues/1)).

## Przykłady

### Dołączanie do istniejącej sesji tmux

Jeśli sesja tmux jest już uruchomiona:

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

### Stały port i własna sesja

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

### Czyste zakończenie (bez pozostałych sesji)

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

### Skrypty (bez wyjścia QR)

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

### Przekazanie serwera deweloperskiego Vite przez proxy

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

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

Użyj przycisku **Widoki**, aby przełączać się między Terminalem a Preview. Preview ładuje Twoją aplikację przez proxy z obsługą HMR.

### Nazwany tunel Cloudflare (oparty na tokenie)

Jeśli masz konto Cloudflare i chcesz uniknąć limitów szybkości trycloudflare:

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

### Wyłącz tunel (użyj własnego publicznego URL)

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

## Zmienne środowiskowe

Termbridge odczytuje zmienne środowiskowe z powłoki oraz z pliku `.env` w katalogu, z którego je uruchamiasz. Zmienne ustawione już w powłoce mają pierwszeństwo przed zmiennymi z pliku `.env`.

### Ustawienia podstawowe

| Zmienna | Działanie |
|----------|--------------|
| `TERMBRIDGE_SESSIONS=2` | Utwórz wiele sesji tmux podczas uruchamiania |
| `TERMBRIDGE_TMUX_CWD=/path` | Katalog roboczy dla nowych sesji tmux |
| `TERMBRIDGE_PUBLIC_URL=https://example.com` | Publiczny URL, gdy tunel jest wyłączony |
| `TERMBRIDGE_TUNNEL=none` | Wyłącz tunel |
| `TERMBRIDGE_TUNNEL_TOKEN=<token>` | Token nazwanego tunelu (wymaga `TERMBRIDGE_TUNNEL_URL`) |
| `TERMBRIDGE_TUNNEL_URL=https://term.example.com` | Publiczny URL dla nazwanego tunelu |

### Zaawansowane

Daytona tryb bezpośredni ustawia te zmienne dla serwera uruchamianego wewnątrz sandboxa. Możesz też ustawić je samodzielnie.

| Zmienna | Działanie |
|----------|--------------|
| `TERMBRIDGE_HOST=0.0.0.0` | Adres, na którym nasłuchuje serwer (domyślnie `127.0.0.1`). Wyświetlany lokalny URL zawsze wskazuje `127.0.0.1`. |
| `TERMBRIDGE_COOKIE_SAMESITE=lax` | `SameSite` wartość pliku cookie sesji: `lax`, `strict` lub `none` (domyślnie `Lax` lub `None` w trybie bezpośrednim) |
| `TERMBRIDGE_SHARE_FILE=/path/share-url.txt` | Zapisz też link URL w tym pliku |
| `TERMBRIDGE_HIDE_TERMINAL_SWITCHER=1` | Ukryj przełącznik terminala w UI |
| `TERMBRIDGE_TMUX_PATH_PREFIX=/path/bin` | Dodaj to na początku `PATH` w każdej sesji tmux uruchamianej lub wznawianej przez Termbridge (wpisywane do sesji jako polecenie `export`) |

### Programowanie

| Zmienna | Działanie |
|----------|--------------|
| `TERMBRIDGE_INSECURE_COOKIE=1` | Zezwól na pliki cookie HTTP (tylko lokalnie podczas programowania) |
| `TERMBRIDGE_PROXY_PORT=5173` | Port proxy dla skryptu dev:beam:proxy |
| `TERMBRIDGE_DEV_UI=http://127.0.0.1:5000` | Zastąp deweloperskie UI Vite URL |
| `TERMBRIDGE_DEV_PORT=3000` | Zastąp port serwera Termbridge podczas programowania (domyślnie `8787`) |
| `TERMBRIDGE_DEV_SESSION=codex` | Nazwa sesji tmux dla `dev:beam` (domyślnie `codex`) |
| `TERMBRIDGE_SKIP_BUILD=1` | Pomiń kompilację CLI w `dev:beam` |

### Sandbox (Daytona)

| Zmienna | Działanie |
|----------|--------------|
| `TERMBRIDGE_BACKEND=sandbox-daytona` | Użyj backendu sandboxa Daytona |
| `TERMBRIDGE_SANDBOX_DIRECT=true` | Uruchom Termbridge wewnątrz sandboxa |
| `TERMBRIDGE_SANDBOX_SERVER_PORT=8080` | Port serwera w sandboxie |
| `TERMBRIDGE_SANDBOX_AGENTS=claude-code,codex` | Automatyczna instalacja i synchronizacja uwierzytelniania dla agentów |
| `TERMBRIDGE_SANDBOX_AGENT_ENV=...` | Dodatkowe zmienne środowiskowe do przekazania |
| `TERMBRIDGE_SANDBOX_AGENT_AUTH_PATHS=...` | Lokalne pliki uwierzytelniania do synchronizacji |

Pełną konfigurację Daytona opisano w [przewodnikuDaytona](https://termbridge.inline0.dev/pl/docs/sandboxes/daytona).

## Zatrzymywanie Termbridge

Naciśnij `Ctrl+C` w terminalu, w którym działa Termbridge. Spowoduje to:

- Zamknięcie tunelu (jeśli jest włączony)
- Zatrzymanie serwera lokalnego
- Zachowanie aktywnych sesji tmux (chyba że użyto `--kill-on-exit`)

Sesje tmux domyślnie pozostają aktywne, więc możesz połączyć się z nimi ponownie później.
