· 12 мин · Практикум Yaga

Установка yaga и первый запуск TUI

yaga (Яга) — внутренний CLI Bober AI на том же стеке, что и bober: Go и Charm Bubble Tea. Каждый сервис Яндекса — отдельный brick. Это не официальный инструмент Яндекса, а практикум по работе с API из нашего репозитория.

yaga CLI TUI установка

Если вы уже клонировали 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

bash · yaga

Не официальная программа Яндекса — внутренний практикум Bober AI Systems по фактам из cli/yaga.