Руководство по CLI

Это руководство объясняет работу через командную строку простым языком.

CLI нужен, когда вам требуется:

  • импортировать или обновлять проекты;
  • запускать сценарии из скриптов;
  • встраивать проверки в CI;
  • работать напрямую, без плагина OpenCode.

Для чего нужен CLI

Для большинства людей CLI больше не является главным ежедневным интерфейсом. Эту роль теперь выполняет OpenCode.

CLI лучше всего подходит для четырёх задач:

  1. подготовить проект;
  2. проверить состояние системы;
  3. запустить проверку или отчёт;
  4. автоматизировать повторяемую работу.

Три вещи, которые нужны чаще всего

1. Импортировать проект

codegraph import --path /path/to/repo

Используйте это, когда впервые добавляете репозиторий в CodeGraph.

Что произойдёт:

  • GoCPG построит граф кода;
  • OpenViking подготовит память проекта;
  • проект станет доступен для API и плагина.

2. Посмотреть список проектов

codegraph projects list

Используйте это, чтобы убедиться, что проект есть в системе и готов к работе.

3. Запустить API

python -m src.api.cli run

Используйте это, когда серверная часть нужна для OpenCode, MCP или другого инструмента.

Типовые ежедневные задачи через CLI

Проверить изменения из CLI

python -m src.cli review --base-ref HEAD~3

Подходит, если нужен результат ревью без входа в плагин.

Запустить проектную проверку

python -m src.cli audit --db data/projects/codegraph.duckdb --language ru --format json

Подходит, если нужен широкий проход по качеству, рискам или соответствию.

Обновить состояние проекта

codegraph import --path /path/to/repo

Тот же путь импорта можно использовать повторно, когда репозиторий заметно изменился и нужен новый проход обновления.

Управлять сервисными учётными записями

python -m src.cli auth service-account create --name ci-bot
python -m src.cli auth service-account list
python -m src.cli auth service-account inspect --service-account-id sa_123
python -m src.cli auth service-account rotate --service-account-id sa_123
python -m src.cli auth service-account revoke --service-account-id sa_123 --credential-id cred_456
python -m src.cli auth service-account deactivate --service-account-id sa_123

Эти команды нужны, когда автоматизации требуется отдельная машинная учётная запись и вы хотите управлять её жизненным циклом прямо из CLI.

Проверять снимки и правила управления

python -m src.cli dashboard snapshot show --snapshot-id snap_123
python -m src.cli dashboard snapshot policy

Команда dashboard snapshot show нужна для просмотра конкретного сохранённого базового состояния, а dashboard snapshot policy помогает быстро проверить действующие правила управления перед сравнением или экспортом.

Как CLI вписывается в новую архитектуру

Даже при работе через CLI используется та же общая модель:

  • GoCPG даёт живой граф кода;
  • OpenViking даёт память проекта;
  • PostgreSQL хранит правила владения, передачи и доступа.

Это значит, что результаты CLI влияют на те же проекты, сессии и память, которыми потом пользуется OpenCode.

Когда лучше брать CLI, а когда OpenCode

Используйте CLI, если… Используйте OpenCode, если…
нужны повторяемые скрипты нужна ежедневная интерактивная работа
нужно импортировать или обновить репозиторий нужно быстро понять код или проверить изменения
нужна проверка серверной части в CI нужны команды вроде /onboard или /review
нужен прямой эксплуатационный контроль нужен самый короткий путь к ответу

Короткий список команд

# Импорт репозитория
codegraph import --path /path/to/repo

# Список проектов
codegraph projects list

# Запуск API
python -m src.api.cli run

# Проверка изменений
python -m src.cli review --base-ref HEAD~3

# Полный аудит
python -m src.cli audit --db data/projects/codegraph.duckdb --language ru --format json

# Жизненный цикл сервисной учётной записи
python -m src.cli auth service-account create --name ci-bot
python -m src.cli auth service-account list
python -m src.cli auth service-account inspect --service-account-id sa_123
python -m src.cli auth service-account rotate --service-account-id sa_123
python -m src.cli auth service-account revoke --service-account-id sa_123 --credential-id cred_456
python -m src.cli auth service-account deactivate --service-account-id sa_123

# Просмотр снимков и правил
python -m src.cli dashboard snapshot show --snapshot-id snap_123
python -m src.cli dashboard snapshot policy

Если что-то сломалось

Сначала проверьте:

  1. импортирован ли проект;
  2. запущен ли API;
  3. доступен ли OpenViking;
  4. доступен ли PostgreSQL;
  5. доступен ли GoCPG.

Потом откройте: Решение проблем