---
name: vakhunter-cli
description: VakHunter CLI — read-only диагностика движка ТОЛЬКО ДЛЯ НАС (не для юзера), вместо ad-hoc python -c
metadata: 
  node_type: memory
  type: reference
  originSessionId: 805ead91-dfa3-49d2-a5e6-01a980e715fd
---

**ТОЛЬКО ДЛЯ ВЛАДЕЛЬЦА/НАС, не для конечного пользователя бота** (явно сказал cebers 2026-07-14). Админ-инструмент по SSH: НЕ импортировать в bot/*/web/*, НЕ регистрировать командой бота, НЕ выставлять юзеру. Баннер-инвариант в docstring cli.py (коммит `2c2e8ed`); функционально уже изолирован (никем не импортируется). «user-invocable» в скилле = оператор/владелец, НЕ юзер VakHunter.

`~/Services/VakHunter/cli.py` на mini — единый read-only CLI для диагностики движка ВакХантера без Telegram и без ad-hoc `python -c` по SSH. Обёртка над существующим кодом (parsers/*, bot/ai_assistant, bot/vacancy_filters, scripts/parsers_smoke), НЕ пишет в прод. Коммит `b18ace7` (2026-07-14).

Команды: `parser <имя> <q> [город]` (живой search), `smoke`, `health`, `ai <parse|query|score|cover|career>`, `feed <спец> [--skills --city --employment --why]` (реальный filter_vacancies+релевантность на свежих вакансиях), `match <спец> "<заголовок>" [source]` (single-check), `db <sources-7d|employment-dist|users|subs|sent-24h>`.

Запуск: `ssh -i ~/.ssh/id_ed25519 cebers_mini@Cebers-mini.local "cd ~/Services/VakHunter && ./venv/bin/python cli.py <cmd>"`. Обёртка: скилл **vakhunter-cli** `tools/vh.sh`.

**How to apply:** любую боевую проверку движка (парсер вернул 0? официант видит IT? матчится ли вакансия? распределение источников?) гонять этим CLI, а не переписывать python-скрипт. Scope только read-only (мутации сознательно не включены). Для полного e2e через живой TG — скилл [[vakhunter_overview]] vakhunter-e2e. Смежное: [[vakhunter_hh_lux_format]].
