
# Довідник CLI

## Базове використання

Просто запустіть команду — аргументи не потрібні:

```bash
npx termbridge
```

Це запускає все: локальний сервер, сеанс tmux і тунель Cloudflare за замовчуванням.

Запуск `termbridge` без підкоманди рівнозначний `termbridge start`.

Також можна явно запустити `termbridge start` із усіма прапорцями:

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

## Прапорці

| Прапорець | Призначення | За замовчуванням |
|------|--------------|---------|
| `--port <port>` | Використати вказаний порт замість випадкового | Випадковий |
| `--proxy <port>` | Проксіювати локальний сервер розробки (вмикає подання «Термінал» і «Попередній перегляд») | - |
| `--session <name>` | Назвати сеанс tmux | Створюється автоматично |
| `--kill-on-exit` | Завершувати сеанси tmux після виходу Termbridge | Вимкнено |
| `--no-qr` | Не виводити код QR (корисно для скриптів) | Вимкнено |
| `--no-tunnel` | Вимкнути тунель (потрібен `--public-url`) | Вимкнено |
| `--public-url <url>` | Публічний URL, коли тунель вимкнено | - |
| `--tunnel <provider>` | Постачальник тунелю (`cloudflare` або `none`) | cloudflare |
| `--tunnel-token <token>` | Використати токен іменованого тунелю Cloudflare (потрібен `--port`) | - |
| `--tunnel-url <url>` | Публічний URL для іменованого тунелю (обов’язковий із `--tunnel-token`) | - |
| `--backend <backend>` | Бекенд термінала (`tmux` або `sandbox-daytona`) | tmux |
| `--sandbox-repo <url>` | URL репозиторію для клонування в пісочницю Daytona | - |
| `--sandbox-branch <branch>` | Гілка для отримання в пісочниці | - |
| `--sandbox-path <path>` | Шлях до репозиторію в пісочниці | Визначається з назви репозиторію |
| `--sandbox-name <name>` | Назва пісочниці | Випадковий `termbridge-<hex>` |
| `--sandbox-preview-port <port>` | Порт попереднього перегляду в пісочниці | - |
| `--sandbox-public` | Створити публічну пісочницю | Вимкнено (увімкнено у прямому режимі) |
| `--sandbox-direct` | Запустити сервер у пісочниці Daytona (без тунелю) | Вимкнено |
| `--dev-proxy-url <url>` | Перенаправляти трафік попереднього перегляду на цей URL замість `localhost:<proxy port>` (використовується скриптами розробки) | - |
| `-h`, `--help` | Вивести довідку | - |

Будь-який інший параметр спричиняє помилку `unknown option: <flag>`. Прапорця `--version` не існує.

Прапорець має пріоритет над відповідною змінною середовища, за винятком одного випадку: `TERMBRIDGE_TUNNEL` наразі перевизначає `--tunnel` і `--no-tunnel` ([#5](https://github.com/inline0/termbridge/issues/5)).

> **Примітка**
> Вбудований вивід `termbridge --help` досі містить прапорці `--daytona-*` і `--backend tmux | daytona`. Ці назви відхиляються; використовуйте прапорці `--sandbox-*` і `--backend sandbox-daytona` з таблиці вище ([#1](https://github.com/inline0/termbridge/issues/1)).

## Приклади

### Підключення до наявного сеансу tmux

Якщо сеанс tmux уже запущено:

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

### Фіксований порт і власний сеанс

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

### Коректне завершення (без незакритих сеансів)

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

### Створення скриптів (без виводу QR)

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

### Проксіювання сервера розробки 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
```

Натисніть кнопку **Подання**, щоб перемкнутися між терміналом і попереднім переглядом. Попередній перегляд завантажує застосунок через проксі з підтримкою HMR.

### Іменований тунель Cloudflare (на основі токена)

Якщо у вас є обліковий запис Cloudflare і ви хочете уникнути обмежень частоти запитів trycloudflare:

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

### Вимкнення тунелю (використання власного публічного URL)

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

## Змінні середовища

Termbridge читає змінні середовища з оболонки та файлу `.env` у каталозі, з якого ви його запускаєте. Змінні, задані в оболонці, мають пріоритет над файлом `.env`.

### Основні параметри

| Змінна | Призначення |
|----------|--------------|
| `TERMBRIDGE_SESSIONS=2` | Створювати кілька сеансів tmux під час запуску |
| `TERMBRIDGE_TMUX_CWD=/path` | Робочий каталог для нових сеансів tmux |
| `TERMBRIDGE_PUBLIC_URL=https://example.com` | Публічний URL, коли тунель вимкнено |
| `TERMBRIDGE_TUNNEL=none` | Вимкнути тунель |
| `TERMBRIDGE_TUNNEL_TOKEN=<token>` | Токен іменованого тунелю (потрібен `TERMBRIDGE_TUNNEL_URL`) |
| `TERMBRIDGE_TUNNEL_URL=https://term.example.com` | Публічний URL для іменованого тунелю |

### Додаткові параметри

Daytona у прямому режимі задає ці параметри для сервера, який запускається в пісочниці. Їх також можна задати самостійно.

| Змінна | Призначення |
|----------|--------------|
| `TERMBRIDGE_HOST=0.0.0.0` | Адреса, на якій сервер приймає з’єднання (типово `127.0.0.1`). У виведеному локальному URL завжди зазначено `127.0.0.1`. |
| `TERMBRIDGE_COOKIE_SAMESITE=lax` | Значення `SameSite` сеансового cookie: `lax`, `strict` або `none` (типово `Lax` або `None` у прямому режимі) |
| `TERMBRIDGE_SHARE_FILE=/path/share-url.txt` | Також записувати посилання для доступу URL у цей файл |
| `TERMBRIDGE_HIDE_TERMINAL_SWITCHER=1` | Приховати перемикач термінала в UI |
| `TERMBRIDGE_TMUX_PATH_PREFIX=/path/bin` | Додавати цей текст на початок `PATH` у кожному сеансі tmux, до якого підключається або який запускає Termbridge (вводиться в сеанс як команда `export`) |

### Розробка

| Змінна | Призначення |
|----------|--------------|
| `TERMBRIDGE_INSECURE_COOKIE=1` | Дозволити cookie HTTP (лише для локальної розробки) |
| `TERMBRIDGE_PROXY_PORT=5173` | Порт проксі для скрипту dev:beam:proxy |
| `TERMBRIDGE_DEV_UI=http://127.0.0.1:5000` | Перевизначити адресу Vite для розробки UI URL |
| `TERMBRIDGE_DEV_PORT=3000` | Перевизначити порт сервера Termbridge під час розробки (типово `8787`) |
| `TERMBRIDGE_DEV_SESSION=codex` | Назва сеансу tmux для `dev:beam` (типово `codex`) |
| `TERMBRIDGE_SKIP_BUILD=1` | Пропустити збирання CLI у `dev:beam` |

### Пісочниця (Daytona)

| Змінна | Призначення |
|----------|--------------|
| `TERMBRIDGE_BACKEND=sandbox-daytona` | Використовувати бекенд пісочниці Daytona |
| `TERMBRIDGE_SANDBOX_DIRECT=true` | Запускати Termbridge у пісочниці |
| `TERMBRIDGE_SANDBOX_SERVER_PORT=8080` | Порт сервера в пісочниці |
| `TERMBRIDGE_SANDBOX_AGENTS=claude-code,codex` | Автоматичне встановлення й синхронізація автентифікації для агентів |
| `TERMBRIDGE_SANDBOX_AGENT_ENV=...` | Додаткові змінні середовища для пересилання |
| `TERMBRIDGE_SANDBOX_AGENT_AUTH_PATHS=...` | Локальні файли автентифікації для синхронізації |

Повну конфігурацію Daytona описано в посібнику з [Daytona](https://termbridge.inline0.dev/uk/docs/sandboxes/daytona).

## Зупинка Termbridge

Натисніть `Ctrl+C` у терміналі, де запущено Termbridge. Це:

- Закриває тунель (якщо його ввімкнено)
- Зупиняє локальний сервер
- Залишає сеанси tmux активними (якщо ви не використовували `--kill-on-exit`)

За замовчуванням сеанси tmux зберігаються, тож ви зможете підключитися до них пізніше.
