# :agentik-cli — JVM CLI клиент к /agentik REPL-клиент к запущенному `:standalone`-серверу на базе `:client`. **JVM-only** (JLine требует termios + `java.io.File`); для desktop-альтернативы — `:agentik-tui`. ## Сборка ```bash ./gradlew :agentik-cli:shadowJar # Результат: agentik-cli/build/libs/agentik-cli-all.jar (~8 MB) ``` Также доступен через Maven Central Nexus (`caffeine` репо) — см. релизы: `https://git.binom.pw/subochev/agentik/releases`. После публикации нового тега jar появляется как `pw.binom.agentik:agentik-cli:VERSION` (artifact + classifier `all`). ## Запуск ```bash # По умолчанию — http://localhost:8080/agentik java -jar agentik-cli-all.jar # К другому серверу java -jar agentik-cli-all.jar --server http://192.168.76.166:8080/agentik # Без восстановления последней беседы java -jar agentik-cli-all.jar --no-history # В конкретной беседе java -jar agentik-cli-all.jar --id ``` Альтернативно: `AGENTIK_SERVER` env-переменная с тем же эффектом, что и `--server`. ## Slash-команды внутри REPL | Команда | Алиасы | Действие | |---|---|---| | `/help` | `/?` | список команд + клавиш | | `/new ` | `/n` | создать новый диалог | | `/list` | `/ls` | показать все диалоги | | `/switch ` | `/sw ` | переключиться на диалог | | `/rename ` | `/mv <title>` | переименовать текущий | | `/delete <id?>` | `/rm <id?>` | удалить (без id — текущий) | | `/interrupt` | `/stop`, `/cancel` | прервать активный ход | | `/history` | `/h`, `/hist` | backfill истории через `getMessages` | | `/pwd` | `/where` | показать текущий conversation id | | `/exit` | `/quit` | выйти (Ctrl-D / Ctrl-C — то же) | Свободный текст = сообщение текущему диалогу; SSE-события (start_reasoning / start_response / append_text / end / interrupted / error) стримятся в stdout в реальном времени. ## Переменные окружения | Переменная | Дефолт | Назначение | |---|---|---| | `AGENTIK_SERVER` | `http://localhost:8080/agentik` | URL HTTP-фасада `:server` | История сессий (id + last event timestamp) сохраняется в `~/.agentik/cli-state.json` (атомарно через `tmp → rename`). ## Особенности - **Arrow keys, history (↑/↓), Ctrl-D/Ctrl-C** — через JLine 3.30, история readline в `~/.agentik/.inputrc`-стиле (через JLine `DefaultHistory`). - **Reconnect-safe SSE** — если сервер рестартовал, клиент подхватывает с `lastEventAt` через `events(after)`. - **Snapshot-режим** — если подключились к диалогу впервые, `/history` подгружает старые сообщения через `getMessages(after)` (offline-бэкфилл). ## Тесты ```bash ./gradlew :agentik-cli:jvmTest ```