Руководство по 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

Индекс командной поверхности

Используйте этот раздел как компактный инвентарь актуальных CLI entrypoint’ов. Он специально сделан command-first, чтобы docs-sync мог проверять публичную поверхность без дублирования всех учебных сценариев.

Группы root-команды codegraph

codegraph audit progress --help
codegraph audit markup-status --help
codegraph audit-diff --help
codegraph audit-log --help
codegraph audit-log export --help
codegraph audit-log stats --help
codegraph auth ldap-status --help
codegraph auth oauth-status --help
codegraph auth permissions --help
codegraph auth roles --help
codegraph auth service-account --help
codegraph changelog --help
codegraph compliance report-57580 --help
codegraph compliance report-57580-delta --help
codegraph compliance report-57580-history --help
codegraph coverage --help
codegraph coverage show --help
codegraph dashboard compare --help
codegraph dashboard compare-periods --help
codegraph dashboard dora-aggregates --help
codegraph dashboard dora-snapshot --help
codegraph dashboard gocpg-log --help
codegraph dashboard integration-profile --help
codegraph dashboard integration-profile show --help
codegraph dashboard notifications --help
codegraph dashboard red-zone --help
codegraph dashboard release-compare --help
codegraph dashboard saved-views --help
codegraph dashboard saved-views delete --help
codegraph dashboard saved-views get --help
codegraph dashboard saved-views list --help
codegraph dashboard saved-views save --help
codegraph dashboard snapshot --help
codegraph dashboard stability --help
codegraph dashboard trends --help
codegraph deps --help
codegraph dynamic --help
codegraph dynamic correlate --help
codegraph dynamic findings --help
codegraph dynamic fuzz-targets --help
codegraph dynamic report --help
codegraph dynamic runs --help
codegraph edit --help
codegraph gitverse bindings --help
codegraph gitverse review-dry-run --help
codegraph gitverse template --help
codegraph hypothesis --help
codegraph hypothesis export --help
codegraph hypothesis list-cwes --help
codegraph hypothesis providers --help
codegraph issues --help
codegraph issues bulk-create --help
codegraph issues create --help
codegraph issues sync --help
codegraph issues update --help
codegraph llm --help
codegraph llm providers --help
codegraph llm test --help
codegraph optimize --help
codegraph optimize analyze --help
codegraph optimize apply --help
codegraph optimize approve --help
codegraph optimize list-suggestions --help
codegraph optimize reject --help
codegraph optimize undo --help
codegraph projects --help
codegraph qualification --help
codegraph qualification coverage --help
codegraph qualification error-catalog --help
codegraph qualification metrics --help
codegraph qualification report --help
codegraph reindex --help
codegraph release --help
codegraph release suppressions --help
codegraph repos --help
codegraph repos connect-provider --help
codegraph repos slices --help
codegraph risk --help
codegraph risk anomalies --help
codegraph risk assess --help
codegraph risk checklist --help
codegraph risk checklist export --help
codegraph risk detail --help
codegraph risk events --help
codegraph risk events classify --help
codegraph risk matrix --help
codegraph risk org-docs --help
codegraph risk org-docs generate --help
codegraph risk org-docs status --help
codegraph risk report-fincert --help
codegraph risk threat-model-57580 --help
codegraph risk threat-model-57580 diff --help
codegraph risk threat-model-57580 review-status --help
codegraph sbom --help
codegraph sbom generate --help
codegraph sbom gost-report --help
codegraph sbom sync --help
codegraph security --help
codegraph security incident --help
codegraph siem --help
codegraph siem status --help
codegraph siem test --help
codegraph standards --help
codegraph supply-chain --help
codegraph vault --help
codegraph vault rotate --help
codegraph vault status --help

Отдельные Python CLI

python -m src.api.cli init-db
python -m src.api.cli migrate --revision head
python -m src.api.cli create-admin --username admin --password change-me
python -m src.cli.security_audit quick --path ./repo
python -m src.cli.security_audit settings --path ./settings.py
python -m src.cli.security_audit secrets --path ./repo
python -m src.cli.generate_docs section mvd_doc --language ru
python -m src.cli.generate_docs index --path ./docs/generated

Команды бинаря GoCPG

Отдельный entrypoint GoCPG: gocpg.

gocpg branches --help
gocpg branches list --help
gocpg branches prune --help
gocpg branches switch --help
gocpg callees --help
gocpg callers --help
gocpg ci-update --help
gocpg deps --help
gocpg frontends --help
gocpg frontends list --help
gocpg hierarchy --help
gocpg hooks --help
gocpg hooks install --help
gocpg hooks status --help
gocpg hooks uninstall --help
gocpg index --help
gocpg metrics --help
gocpg outline --help
gocpg quality-stats --help
gocpg resolve --help
gocpg scan --help
gocpg scope --help
gocpg search --help
gocpg serve --help
gocpg submodules --help
gocpg submodules list --help
gocpg submodules prune --help
gocpg symbols --help
gocpg type-stats --help
gocpg usages --help

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

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

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

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

Дополнительное покрытие команд

Эти команды входят в текущую публичную поверхность CLI и перечислены отдельно, потому что в сценарных руководствах их легко пропустить:

  • projects current возвращает effective active project после workspace-resolution, user preference и access checks.
  • projects resolve объясняет, какой проект будет выбран для текущего workspace и почему.
  • projects switch явно сохраняет предпочтение проекта, когда оператор хочет переопределить auto-resolution.
  • repos provider-health проверяет состояние, креденшелы и связность настроенного provider connection.
  • repos rotate-provider-token ротирует provider credentials без пересоздания repository binding.
  • repos repair-openviking восстанавливает OpenViking-backed состояние памяти репозитория и проекта для привязанного репозитория.
  • repos repair-context-sessions восстанавливает lifecycle records context sessions для проекта.
  • repos bootstrap-memory инициализирует project memory для repository binding без повторного импорта репозитория.