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