Командная строка и агенты
Как работать с Disputa из терминала командой disputa и подключить своего агента — Claude Code, Codex, Cursor.
disputa — Disputa в терминале. Всё, что вы делаете на сайте, можно сделать
командой: посмотреть работы и сроки, сдать работу и прочитать вердикты агента,
отметить посещаемость, выгрузить ведомость, прислать курс как код, нарисовать
на доске. Те же команды понимает ваш агент: он работает от вашего имени и не
шире ваших прав.
Установить
Нужен Node.js 22 или новее.
npm install -g disputa # или: pnpm add -g disputa, bun add -g disputa
disputa --versionПосле установки команда disputa доступна в терминале сразу.
Войти
disputa login- Откроется браузер — войдите в Disputa как обычно.
- Нажмите «Войти в терминале».
- Терминал войдёт сам — за пару секунд.
Если терминал на другом компьютере (сервер по SSH) или запущен с
--no-browser, он напечатает ссылку и код: откройте ссылку на любом устройстве
и введите код.
Секрет входа создаётся на вашем компьютере и не передаётся ни в ссылке, ни через браузер: страница отдаёт подтверждение только терминалу на этом же компьютере. Вход действует 90 дней с вашими правами в организации; он виден в меню аккаунта → «Токены API», там его можно отозвать.
Только свой вход
Подтверждайте вход, только если сами только что запустили disputa login.
Код из чужого сообщения не вводите: так вы впустите в свой аккаунт чужой
терминал.
| команда | что делает |
|---|---|
disputa login | войти |
disputa login --no-browser | не открывать браузер: ссылка и код — для другого устройства |
disputa login --server https://… | своя установка Disputa (вуз, компания) |
disputa login --token dsp_… | войти готовым токеном со страницы «Токены API» |
disputa whoami | кто вошёл, куда, какой курс выбран |
disputa logout | выйти и отозвать вход |
Выбрать курс
Почти все команды работают с одним потоком курса. Выберите его один раз:
disputa use # ваши курсы
disputa use "4 курс" # выбрать по части названия
disputa use --clear # забыть выборЕсли курс один, он выбирается сам при входе. Другой поток для одной команды —
--run <id>.
Команды
disputa --help # разделы
disputa work --help # команды раздела
disputa work submit --help # аргументы и флаги команды| раздел | что внутри |
|---|---|
work | мои работы: задание, критерии, сдача, вердикты агента, перепроверка |
teams | моя команда, тема, что дальше |
course | материалы и лекции, история приёмок, доска потока |
notify | что ждёт моего действия |
schedule | сроки и личные продления |
attendance | занятия, отметки, сводка посещаемости |
people | люди и команды потока глазами преподавателя |
decisions | что ждёт решения организатора |
outcome | итоги и ведомость |
content | содержание курса: работы, критерии, темы, версии |
forge | репозитории и хостинги кода |
boards | доски |
api | любой запрос к API, если нужной команды нет |
Команды приходят с сервера: когда на сайте появляется новая возможность, в
disputa появляется команда — переустанавливать не нужно. Показываются только
команды, которые открывают ваши права: студент не видит разделов преподавателя.
Получили новую роль — disputa whoami обновит список сразу.
Студенту
disputa work mine # работы, сроки, состояние
disputa work get 2 # задание, критерии, сдача и вердикты агента
disputa work submit 2 --url https://github.com/org/repo/pull/7
disputa work recheck <submissionId> --note "исправил метрику"
disputa teams get # команда и тема
disputa notify inbox # что ждёт моего действияПреподавателю и организатору
disputa people flow # поток: кто где, кто молчит, кто выбыл
disputa people work <personId> 2 # работа участника: сдача, вердикты, долги
disputa attendance summary # посещаемость потока
disputa schedule get # сроки потока
disputa outcome sheet # ведомость; если не готова — что мешаетАвтору курса
disputa content courses # курсы, которые я могу править
disputa content submit <courseId> --data @course.json # курс как код: снимок и разбор
disputa content check <courseId> # что мешает опубликовать
disputa content publish <courseId>Ответы и ошибки
- Ответ — JSON. Короче и нагляднее —
--format toon(илиyaml,md), только нужные поля —--filter-output items.title,items.dueAt. - Простые поля — флагами (
--title "…"). Сложное тело запроса — целиком:--data '{"…"}',--data @file.jsonили--data -(из stdin); флаги ложатся поверх. - Ошибка — JSON с
codeиmessage: что не так и что делать. Код выхода:0— успех,1— ошибка,3— данные изменились с момента чтения (перечитайте и повторите). - Команду безопасно повторить после обрыва связи: одно и то же действие дважды не выполнится.
Подключить агента
disputa skills add # навыки для Claude Code, Codex, Cursor и других
disputa mcp add # или: disputa как MCP-сервер агента
disputa --llms # каталог всех команд одной таблицейПосле этого попросите агента, например: «какие у меня работы в Disputa и сроки?», «почему агент не засчитал критерий про метрику?» или «нарисуй на доске схему архитектуры нашего проекта». Сдать работу, отозвать сдачу, опубликовать курс или удалить что-либо агент должен только после вашего «да».
Доски
disputa boards list # свои доски и доски курса
disputa boards create --title "Архитектура"
disputa boards inspect <id> --overview # что на доске
disputa boards render <id> --out board.png # снимок доски картинкой
disputa boards export <id> --out ./board # выгрузить; --as excalidraw — одним файломДля render нужен Google Chrome или Chromium. Как рисовать на доске и
вставлять интерактивные блоки, агент узнаёт из навыков после disputa skills add.
Подробнее о досках — Доски.
Без терминала, в CI и скриптах
Чату без терминала (claude.ai, ChatGPT) подходит MCP-сервер платформы — адрес и команда подключения на странице «Токены API».
Скрипту и CI — токен со страницы «Токены API» в переменных окружения:
| переменная | что задаёт |
|---|---|
DISPUTA_TOKEN | токен dsp_… |
DISPUTA_URL | адрес платформы, если не основной |
DISPUTA_RUN | курс (поток) по умолчанию |
DISPUTA_CONFIG_DIR | где хранить вход |
Переменные сильнее сохранённого входа. Вход хранится в
~/.config/disputa/config.json (Windows — %APPDATA%\disputa), доступ к файлу
— только у владельца. Сам API описан на странице /api/v1/docs.
Обновить
disputa раз в сутки проверяет новую версию и подсказывает:
disputa --updateАвтодополнение команд: eval "$(disputa completions zsh)" (или bash, fish).