Skip to main content
Glama
README.md
# edu-by-agent

CLI, MCP-сервер и навыки для Claude Code, чтобы вести сайт учреждения образования в конструкторе сайтов edu.by (`wp.<регион>.edu.by/explorer.aspx`).

## Быстрый старт

Нужны Docker и X-сервер (для окна входа). Python на хосте не нужен.

```bash
cp .env.example .env        # сайт, логин, пароль, способ выхода в сеть
./edu build                 # собрать образ
./edu proxy up              # поднять прокси для edu.by
./edu proxy check           # конструктор доступен?
./edu session login         # окно браузера: ввести капчу и нажать «Авторизация»
./edu session check         # 0 – сессия жива, 2 – истекла
```

Если маршрут по умолчанию идёт через VPN, который не достаёт до сайта, укажите в `.env` `EDU_INTERFACE` (`wlo1` для Wi-Fi, `eno1` для кабеля): трафик edu.by пойдёт через этот интерфейс.

## Как пользоваться

### С Claude Code

Откройте Claude Code в папке репозитория и попросите словами:

- «Опубликуй новость о выпускном, вот текст и три фото из `photos/`»
- «Где на сайте страница с расписанием звонков? Покажи её текст»
- «Поправь телефон приёмной на странице „Контакты“»
- «Добавь в „Родителям“ подраздел „Питание“ и положи туда ссылку на меню (PDF на Яндекс.Диске)»
- «Скрой объявление о собрании»

Агент найдёт нужное, покажет, что изменится (было → станет), и запишет только после вашего «да». Навыки лежат в `.claude/skills/`.

### Через MCP

`.mcp.json` подключает сервер к Claude Code в этой папке автоматически (после перезапуска). Для другого клиента: команда `./edu mcp` в папке репозитория, транспорт stdio. Инструменты записи без `confirm_token` возвращают только предпросмотр. Подробно: [`docs/mcp.md`](docs/mcp.md).

### Из терминала

```bash
./edu browse                          # браузер через прокси, сразу в конструкторе
./edu tree --depth 2                  # дерево разделов
./edu objects 1001/1431/1031          # объекты раздела (по пути из номеров – быстрее)
./edu object show 2283                # объект: тип, статус, HTML, поля
./edu object set 2283 --set name="Новое"         # план изменения
./edu object set 2283 --set name="Новое" --yes   # выполнить
./edu object upload 2283 photo.jpg --shrink      # картинка, ужатая до ~300 КБ
./edu object trash 2283 --token <из плана>       # удаление требует токен
./edu session keepalive               # не дать сессии истечь (час без активности)
```

Все команды: `./edu --help`.

## Важно

- Капчу при входе всегда вводит человек.
- Пароль хранится в `.env`, cookie сессии в `.session/` (оба вне git) и нигде не печатаются.
- Трафик edu.by идёт только через настроенный прокси, остальное напрямую.
- Документы (PDF, DOCX) сайт не хранит: на сайт ставится ссылка на файл.
- Если работаете через Claude Code, всё, что агент читает с сайта, уходит в API Anthropic.

Факты о конструкторе: [`knowledge/`](knowledge/README.md). Правила для агента: [`CLAUDE.md`](CLAUDE.md). План работ: [`TASKS.md`](TASKS.md).

## Лицензия

GPL-3.0, см. [`LICENSE`](LICENSE).