Установка bobcli и первый запуск TUI
bobcli — внутренний CLI Bober AI на том же стеке, что и bober: Go и Charm Bubble Tea. Каждый сервис Яндекса — отдельный brick. Это не официальный инструмент Яндекса, а практикум по работе с API из нашего репозитория.
Если вы уже клонировали bober-ai, рядом с сайтом лежит каталог cli/bobcli. Там же — install.sh, Go-бинарник и bricks, которые дергают скрипты из scripts/*.mjs. Ниже — рабочий путь от нуля до осмысленного TUI, без выдуманных флагов.
Зачем отдельный CLI
Вебмастер, Метрика, Cloud, Диск, Wordstat, Direct и GPT живут в разных консолях и OAuth-потоках. В bobcli они собраны как bricks в bricks.go (allBricks()): у каждого свой ID, видимость public | owner и функция Run. Профили прячут private-функции, чтобы на общей машине не светить Direct/GPT/Wordstat.
Сервис = brick. Профиль = что видно. Credentials = что реально открывает API.
Требования
- Go 1.22+ — сборка бинаря и
go runчерез лаунчер. - Клон репозитория с корнем, где есть
package.jsonи скриптbobcli:install. ~/bin(или каталог изBOBCLI_BIN_DIR) вPATH, чтобы командаbobcliнаходилась из любой директории.
Внешние бинари вроде yc или yandex-disk нужны только для соответствующих bricks. Их отсутствие не мешает установить сам bobcli — doctor просто покажет пробелы.
Установка
В корне репозитория:
npm run bobcli:install
Скрипт cli/bobcli/install.sh делает три вещи: собирает Go-бинарник в cli/bobcli/bobcli, делает исполняемым cli/bobcli/run и создаёт симлинк $BOBCLI_BIN_DIR/bobcli → …/run (по умолчанию ~/bin/bobcli). Лаунчер run выставляет BOBCLI_REPO на корень репозитория и либо запускает собранный бинарь, либо падает в go run ..
После установки скрипт печатает версию и короткий список bricks. Ожидайте что-то вроде:
installed: /Users/…/bin/bobcli → …/cli/bobcli/run (Go + Bubble Tea)
bobcli 0.2.0 (go+tui)
ok — bobcli | bobcli help | bobcli profile public
Первый запуск: TUI
Без аргументов открывается dashboard на Bubble Tea:
bobcli
Вкладки:
- 1 Bricks — список klocek, Enter запускает default-команду brick.
- 2 Creds — ввод секретов и ссылки на UI Яндекса (
Enter— значение,o— открыть UI,d— удалить). - 3 Doctor — токены и внешние binaries.
- 4 Output — результат последнего запуска.
- 5 Help — краткая справка.
Навигация: Tab / стрелки, Enter, q — выход. Это удобно, когда ещё не помните подкоманды наизусть.
Doctor и список bricks
bobcli doctor
bobcli bricks
bobcli help
doctor сводит наличие ключей из ~/.config/bobcli/credentials.env и бинарей вроде yc. bricks показывает, какие klocek видны при текущем профиле (● / ○). help печатает profile, путь config и список видимых bricks с описаниями.
Профиль public на чужой машине
Если нужно отдать терминал коллеге без owner-bricks:
bobcli profile public
Останутся public-bricks (webmaster, metrika, cloud, disk и т.д.). Direct, Wordstat, GPT и прочие owner-элементы скроются. Конфиг пишется в ~/.config/bobcli/config.json; образец — cli/bobcli/config.example.json.
Типичные сбои
- command not found: bobcli —
~/binнет вPATH, либо install не запускали. - Go слишком старый — обновите toolchain до 1.22+.
- Brick «не видит» репозиторий — лаунчер должен стартовать из установленного
run, чтобыBOBCLI_REPOуказывал на корень сscripts/. - Пустой doctor — нормально до OAuth; сначала поставьте ClientID/secret и сделайте обмен (см. статью про OAuth).
Что дальше
Следующий логичный шаг — получить access token для Вебмастера: ClientID и secret сами по себе API не открывают. Затем имеет смысл прогнать bobcli webmaster status и SEO-чеклист. Если делите машину — сразу зафиксируйте profile public.
Шпаргалка команд
npm run bobcli:install
bobcli
bobcli version
bobcli doctor
bobcli bricks
bobcli help
bobcli profile public