# `:agentik-cli` — JVM CLI клиент к `/agentik` ## Что это JVM-only REPL-клиент к серверу `:standalone` через `:client` над HTTP+SSE: - Нативный REPL с JLine (стрелки влево/вправо/вверх, история, Ctrl-D/E). - Подписка на live-стрим событий агента. - Slash-команды: `/new /list /switch /rename /rm /interrupt /history /pwd /help /exit /quit`. - Persistent session id в `~/.agentik/cli-state.json`. Решает: быстрый способ проверить агента руками из терминала. Используется в CI-смоук-тестах и для daily-driver. ## Как запустить ### Требования - JVM 21+ (на машине должна быть JAVA_HOME или `java` в PATH). - Запущенный `:standalone` (по умолчанию `http://localhost:8080/agentik`). ### Запуск из готового fatjar ```bash java --enable-native-access=ALL-UNNAMED -jar agentik-cli-0.1.0-all.jar \ --server http://192.168.76.166:8080/agentik ``` ### Запуск через Gradle (dev) ```bash ./gradlew :agentik-cli:run --args="--server http://localhost:8080/agentik" ``` ## Параметры CLI | Флаг | ENV | Что делает | |---|---|---| | `--server URL` | `AGENTIK_SERVER` | URL `/agentik` (default `http://localhost:8080/agentik`) | | `--id ID` | `USER`/`USERNAME` | Имя агента (default — текущий пользователь) | | `--no-history` | — | Не восстанавливать последнюю диалог после запуска | | `--help` | — | Показывает help и выходит | ## Slash-команды (внутри REPL) | Команда | Синонимы | Что делает | |---|---|---| | `/help` | | Показывает help | | `/new [title]` | | Создать диалог | | `/list` | `/ls` | Список диалогов | | `/switch ` | `/sw`, `/cd` | Переключиться на диалог | | `/rename ` | | Переименовать текущий диалог | | `/rm [id]` | `/delete` | Удалить (текущий или по id) | | `/interrupt` | `/stop`, `/cancel` | Прервать текущий ход | | `/history` | `/h`, `/hist` | Показывает историю текущего диалога | | `/pwd` | | Путь к state-file | | `/exit`, `/quit` | | Выйти | ## Переменные среды (пробрасываются серверу через `--server`) См. [`../standalone/README.md`](../standalone/README.md). На стороне клиента они **не** интерпретируются — это лишь настройки запуска агента. CLI только знает, по какому URL стучаться. ## Известное ограничение SSE event-stream в не-TTY ssh-сессии (без `-tt`) закрывается на default-таймауте Ktor. Используйте либо `ssh -tt`, либо нативный terminal. Это upstream-особенность Ktor SSE. ## Тесты ``` ./gradlew :agentik-cli:jvmTest ``` 23 теста: парсер slash-команд, event-рендер, state-repository. ## Версии `gradle/libs.versions.toml` → `[versions] agentik-agentik-cli`.