Metadata-Version: 2.4
Name: hhcli
Version: 0.3.0
Summary: Неофициальный CLI-клиент для поиска работы и откликов на hh.ru.
License: MIT
License-File: LICENSE
Author: fovendor
Author-email: fovendor@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: flask (>=3.0.0,<4.0.0)
Requires-Dist: html2text (>=2025.4.15,<2026.0.0)
Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
Requires-Dist: textual (>=0.43.0,<0.44.0)
Description-Content-Type: text/markdown

# hh-cli

[![PyPI version](https://img.shields.io/pypi/v/hhcli.svg)](https://pypi.org/project/hhcli/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Follow on Telegram](https://img.shields.io/badge/Telegram-Join-blue?logo=telegram)](https://t.me/hhcli)

Неофициальный CLI-клиент для поиска работы и откликов на hh.ru.

`hh-cli` — это авторизованное приложение, позволяющее искать вакансии, просматривать их, отмечать понравившиеся и откликаться на них в интерфейсе терминала. У приложения есть [канал в Telegram](https://t.me/hhcli), где публикуются основные новости проекта.

> **Примечание:** hhcli — это авторизованное (легальное) приложение, одобренное hh.ru, однако, оно разрабатывается независимым разработчиком и не является официальным!

![gif-of-hhcli](img/review.gif "A short demo CLI TUI interface").

## Ключевые возможности

- **TUI-интерфейс:** Современный и отзывчивый интерфейс на базе [Textual](https://github.com/textualize/textual), работающий в любом современном терминале.
- **Два режима поиска:** Автоматический (на основе рекомендаций hh.ru для вашего резюме) и ручной (гибкий поиск по ключевым словам, городу, формату работы и другим критериям).
- **Отклики:** Возможно выбрать несколько вакансий и откликнуться на все одной командой, используя персональный шаблон сопроводительного письма.
- **Локальная база данных:** Вся информация: профили, история откликов, кэш вакансий и справочников — хранятся в локальной базе данных SQLite. [Сервер](https://github.com/fovendor/hhcli-server) `hhcli` ничего не хранит и не обрабатывает персональные данные, вся информация хранится у вас локально.
- **Интеллектуальная фильтрация:** Приложение позволяет скрывать дубликаты (sity spam) и выделять вакансии, на которые ранее уже были отклики (по точному ID или по связке "Название+Компания").
- **Профили:** Приложение позволяет создавать несколько профилей (аккаунтов hh.ru) с поддержкой нескольких резюме внутри профиля.
- **Конфигурация:** Все параметры ручного поиска, шаблоны сопроводительных писем и внешний вид приложения настраиваются через экран настроек внутри самого приложения.

## Установка

### Linux

#### Ubuntu / Debian / Mint (apt)

```bash
sudo apt update && sudo apt install python3 python3-pip pipx git -y
pipx install hhcli
```

#### Arch / Manjaro (pacman)

```bash
sudo pacman -Syu python python-pip pipx git
pipx install hhcli
```

#### Fedora / RHEL / Rocky (dnf / yum)

```bash
sudo dnf install python3 python3-pip pipx git  # либо sudo yum install ...
pipx install hhcli
```

#### Другие дистрибутивы

- Установите Python ≥3.9 и `pipx` из стандартного репозитория.
- Выполните `pipx install hhcli`.
- Если `pipx` отсутствует, можно поставить локально: `pip install --user pipx && pipx ensurepath`.

### Windows

#### Установка Python и pipx

1. Скачайте Python 3.9+ с [python.org](https://www.python.org/downloads/windows/) и поставьте галочку “Add Python to PATH”.
2. Установите `pipx` (PowerShell или CMD, права администратора не нужны):

```powershell
python -m pip install --upgrade pip
python -m pip install pipx
python -m pipx ensurepath
```

#### Установка hhcli

Перезапустите PowerShell (или CMD) и выполните:

```powershell
pipx install hhcli
```

#### Обновление / удаление

- Обновить: `pipx install hhcli --force`
- Удалить: `pipx uninstall hhcli`

## Удаление

Используйте `pipx uninstall hhcli` (Windows и Linux) или, если ставили из исходников, удалите виртуальное окружение/пакет. Данные профиля лежат в:

- Linux: `~/.local/share/hhcli`
- Windows: `%LOCALAPPDATA%\hhcli`

## Первый запуск и настройка

#### 1. Авторизация

После установки запустите процесс аутентификации. Вам нужно будет придумать короткое имя для вашего профиля (go, python, pm, analyst и т.д).

```bash
hhcli --auth analyst
```
В системном браузере загрузится страница hh.ru для аутентификации на сайте. После успешного входа нужно запустить приложение.

#### 2. Запуск

Выполните команду:

```bash
hhcli
```

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

#### 3. Настройка

Вся настройка (ключевые слова для поиска, шаблон сопроводительного письма, внешний вид) производится внутри приложения. Нажмите клавишу `c` на любом из основных экранов, чтобы перейти в меню настроек.

## Использование

Основное взаимодействие с приложением происходит через TUI-интерфейс.

### Основные команды (CLI)

| Команда | Описание |
| :--- | :--- |
| `hhcli` | Запускает основной TUI-интерфейс. |
| `hhcli --auth <имя_профиля>` | Выполняет аутентификацию для нового профиля или обновляет токен авторизации для существующего. |
| `hhcli -v` / `hhcli --version` | Показывает текущую версию (из PyPI). |

### Горячие клавиши (внутри приложения)

| Клавиша | Действие |
| :--- | :--- |
| `Пробел` | Выбрать/снять выбор с текущей вакансии. |
| `A` | Откликнуться на все выбранные вакансии. |
| `H` | Открыть экран с историей откликов для текущего резюме. |
| `C` | Открыть экран настроек профиля. |
| `Q` / `Esc` | Вернуться на предыдущий экран или выйти из приложения. |
| `←` / `→` | Переключение между страницами в списке вакансий. |

## Темы оформления

Интерфейс hhcli использует дизайн-систему на основе цветовых токенов Textual, которые настраиваются через файлы стилей. Чтобы создать новую тему, скопируйте содержимое любого существующего файла `.tcss` из каталога `hhcli/ui/styles/themes` в новый файл и настройте желаемую палитру.

**Переменные стилей:** базовые токены отвечают за основные цвета темы (остальные значения собираются автоматически в `hhcli/ui/themes/design_system.tcss`):

- `background1` — основной фон приложения.
- `background2` — фон панелей, карточек, списков.
- `background3` — фон шапок, рамок и выделений.
- `foreground1` — вторичный текст (подписи, подсказки).
- `foreground2` — основной текст.
- `foreground3` — акцентный текст/заголовки.
- `primary` — главный акцент (кнопки, ссылки, выделения).
- `secondary` — дополнительный акцент и ховеры.
- `red`, `orange`, `yellow`, `green`, `blue`, `purple`, `magenta`, `cyan` — цвета статусов и вспомогательных подсветок.
- `scrim` — полупрозрачная подложка для модальных окон.

## TO DO

Дальнейшие планы:

- Переработка первых двух экранов (были унаследованы от старой [bash-версии](https://github.com/fovendor/hhcli/tree/legacy)).
- Интерактивное добавление профилей без ввода команды `hhcli --auth <profile>`.
- Улучшение поддержки и тестирование на других ОС (macOS, Windows).
- Расширение возможностей фильтрации и аналитики по истории откликов.
- Добавление экрана с дашбордом на основе истории откликов.
- Добавление переписки с работодателями.
- Добавление кастомизации сопроводительного письма для некоторых из выбранных вакансий.

## История

Изначально hhcli не планировался как большой и долго поддерживаемый проект. Но текущая ситуация на рынке труда: глупые алгоритмы отбора, фейковые вакансии, некомпетентные HR'ы и в целом низкая эффективность ручного поиска и откликов через сайт мотивируют меня развивать этот инструмент дальше.

Прежняя версия hhcli делегировала практически всю работу с API утилите [hh-applicant-tool](https://github.com/s3rgeym/hh-applicant-tool), отчасти поэтому была полностью переписана в текущее исполнение. Подробнее можно ознакомиться в ветке [legacy](https://github.com/fovendor/hhcli/tree/legacy). 

Legacy-версия перестала поддерживаться 26.10.2025, её дальнейшая работоспособность не гарантирована и полностью зависит от `hh-applicant-tool`.

## Лицензия

Проект распространяется под лицензией MIT. Смотрите файл `LICENSE` для подробностей.

