CU - это инструмент командной строки для взаимодействия с API Central University. Утилита позволяет получать информацию о курсах, управлять аутентификацией и синхронизировать данные.
curl -fsSL https://raw.githubusercontent.com/EgorTarasov/cu/main/install.sh | shСкрипт скачивает последний релиз с GitHub, проверяет sha256, ставит бинарь в
~/.local/bin/cu и снимает quarantine-атрибут на macOS. Опции:
# Конкретная версия
curl -fsSL https://raw.githubusercontent.com/EgorTarasov/cu/main/install.sh | CU_VERSION=v0.1.5 sh
# Системная установка
curl -fsSL https://raw.githubusercontent.com/EgorTarasov/cu/main/install.sh | CU_INSTALL_DIR=/usr/local/bin shСкачайте подходящий архив со страницы Releases,
сверьте sha256 по checksums.txt, распакуйте cu куда-то в PATH (~/.local/bin или /usr/local/bin),
сделайте исполняемым.
Если в системе уже есть Go ≥ 1.26:
go install github.com/EgorTarasov/cu/cmd/cu@latestБинарь окажется в $(go env GOPATH)/bin/cu.
git clone https://github.com/EgorTarasov/cu.git
cd cu
make install # собирает в bin/cu и копирует в $GOPATH/bin
# или просто:
make build # bin/cucu --version
cu --helpДля работы утилиты необходимо пройти аутентификацию. Есть два способа:
cu loginКоманда откроет Chrome, перенаправит на страницу входа Keycloak. После успешного логина cookie будет автоматически сохранён в ~/.cu-cli/cookie и подхвачен всеми последующими командами.
Если cookie истёк — просто выполните cu login ещё раз.
Дополнительные флаги:
| Флаг | По умолчанию | Описание |
|---|---|---|
--timeout |
5m |
Таймаут ожидания завершения входа |
Требование: необходим установленный Google Chrome или Chromium. Если Chrome установлен в нестандартном месте, укажите путь через переменную
CHROME_PATH.
- Откройте браузер и войдите в Central University
- Откройте Developer Tools (F12) -> вкладка Network
- Обновите страницу и найдите любой запрос к API
- Скопируйте значение
bff.cookieиз заголовков
export CU_BFF_COOKIE="ваше-значение-cookie"Переменная окружения
CU_BFF_COOKIEимеет приоритет над сохранённым файлом.
| Команда | Описание | Документация |
|---|---|---|
cu login |
Авторизация через браузер | docs/login.md |
cu courses |
Список курсов с ID | docs/courses.md |
cu deadlines [course] |
Ближайшие дедлайны | docs/deadlines.md |
cu grades [course] |
Оценки и ведомость | docs/grades.md |
cu materials <course> |
Скачать PDF и ссылки на материалы | docs/materials.md |
cu task <id> |
Детали задания | docs/task.md |
Курс можно указать по ID (901) или по названию (go, sql, алгоритмы) — поиск регистронезависимый.
fetch помогает получить данные напрямую из API:
cu fetch student— профиль текущего студентаcu fetch course-summary <course-id>— краткая информация о курсеcu fetch theme <theme-id>— краткая информация о темеcu fetch longread <longread-id>— краткая информация о лонгриде
После make install запущенные хосты (Claude Code, IDE) продолжают держать
старый процесс — новые тулы и фиксы не подхватятся. После переустановки
перезапустите сервер в хосте:
claude mcp restart cu # или /mcp reconnect в Claude Code# Что горит?
cu deadlines
# Оценки по Go
cu grades go
# Скачать все лекции и семинары
cu materials алгоритмы --path ./downloads
# Подробности по заданию
cu task 1536681| Переменная | Описание | Обязательная |
|---|---|---|
CU_BFF_COOKIE |
Cookie аутентификации (приоритет над файлом) | Нет |
CHROME_PATH |
Путь к Chrome/Chromium (если не стандартный) | Нет |
Cookie validation failed: bff.cookie is invalid or expired: 403
Решение: Выполните cu login для получения нового cookie.
No authentication found.
Option 1 — login via browser:
cu login
Option 2 — set cookie manually:
export CU_BFF_COOKIE='your-cookie-value-here'
Решение: Выполните cu login или установите переменную окружения CU_BFF_COOKIE.
Chrome not found. Install Google Chrome or set CHROME_PATH environment variable
Решение: Установите Google Chrome или укажите путь через CHROME_PATH.
Убедитесь, что у вас есть доступ к интернету и серверы Central University доступны.
# Запуск всех тестов
go test ./...
# Запуск тестов с подробным выводом
go test -v ./internal/cu.
├── .github/workflows/ # GitHub Actions для CI/CD
├── cmd/cu/ # Основное приложение CLI
├── internal/
│ ├── cli/ # Команды CLI (Cobra)
│ └── cu/ # Клиент API Central University
├── integration_tests/ # Интеграционные тесты
├── build/ # Собранные бинарные файлы
├── Makefile # Задачи для разработки
├── go.mod
├── go.sum
└── README.md
# Показать все доступные команды
make help
# Запустить тесты
make test
# Собрать для текущей платформы
make build
# Собрать для всех платформ
make build-all
# Запустить приложение
make run ARGS='fetch courses'# Сборка для текущей платформы
go build -o cu ./cmd/cu
# Кросс-компиляция
GOOS=windows GOARCH=amd64 go build -o cu.exe ./cmd/cu
GOOS=linux GOARCH=amd64 go build -o cu-linux ./cmd/cu
GOOS=darwin GOARCH=amd64 go build -o cu-macos ./cmd/cuПроект использует GitHub Actions:
- test.yml — тесты на Go 1.25, покрытие кода,
go vet - build.yml — сборка для 6 платформ, контрольные суммы SHA256, релизы по тегам
- pr.yml — форматирование, тесты, Gosec, golangci-lint
- Форкните репозиторий
- Создайте ветку для фичи (
git checkout -b feature/amazing-feature) - Сделайте коммит изменений (
git commit -m 'Add amazing feature') - Запушьте ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
Этот проект распространяется под лицензией MIT. См. файл LICENSE для деталей.
- Авторизация через браузер (chromedp)
- Получение списка курсов
- Скачивание PDF-материалов
- Просмотр дедлайнов
- Просмотр оценок и ведомости
- Поиск курса по названию
- Скачивание лонгридов с GitLab
- Интерактивный режим
- Уведомления о приближающихся дедлайнах