Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>Stepik ForkNew to Visual Studio Code? Get it now.
Stepik Fork

Stepik Fork

DanilProskurin

| (0) | Free
Fork of Stepik for VS Code: solve Stepik problems, read discussions and post comments
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Stepik для VS Code (Fork)

[EN]

Fork: su-mt/stepik-vscode. Автор: Данил Проскурин (꧁༒☬𝔉𝔜𝔡𝔡𝔡𝔡𝔰𝔰☬༒꧂). Расширение для решения задач Stepik прямо в VS Code.

Проект распространяется под лицензией GPL-3.0. В этой версии добавлены комментарии, форум решений, Markdown-форматирование, оценки, рендер формул, экзамены, навигация по шагам и встроенный видеоплеер.

Содержание

  • Что умеет расширение
  • Требования
  • Установка
  • Первый запуск
  • Настройка OAuth
  • Вход и выбор курса
  • Интерфейс
  • Решение задач
  • Экзамены
  • Видео
  • Комментарии и форум решений
  • Формулы
  • Команды и горячие клавиши
  • Папка решений
  • Обновление и удаление
  • Решение проблем
  • Сборка из исходников
  • Ограничения
  • Автор
  • Лицензия

Что умеет расширение

  • вход в Stepik по OAuth;
  • дерево курсов, разделов, уроков и шагов в боковой панели;
  • отметки пройденных и начатых шагов;
  • условие задачи и форма ответа в отдельной панели;
  • кнопки «Назад» и «Далее» для перехода между шагами раздела;
  • фоновая предзагрузка соседних шагов;
  • отправка решений из редактора;
  • папка решений ~/.stepik со структурой «курс → урок → шаг»;
  • папка решений создаётся автоматически и не требует открытия в VS Code;
  • все проверяемые типы заданий Stepik;
  • экзаменационные разделы с таймером и блокировкой отправки;
  • встроенный видеоплеер;
  • комментарии, ответы, оценки и сортировки;
  • форум решений для всех проверяемых типов заданий;
  • Markdown и подсветка кода в комментариях;
  • рендер математических формул через KaTeX/MathML.

Требования

  • VS Code 1.85 или новее;
  • аккаунт на stepik.org;
  • собственное OAuth-приложение Stepik (создаётся за пару минут, см. ниже);
  • для сборки из исходников — Node.js 18+.

Расширение не является официальным клиентом Stepik. Оно работает через публичный API Stepik и использует ваши OAuth-данные.

Установка

Готовый файл VSIX

  1. Откройте раздел Releases.
  2. Скачайте последний файл stepik-vscode-fork-0.4.1.vsix.
  3. Установите его одним из способов:
    • из терминала:

      code --install-extension stepik-vscode-fork-0.4.1.vsix
      
    • или в VS Code: Extensions → … → Install from VSIX…, затем выберите скачанный файл.

  4. Перезагрузите окно: Developer: Reload Window.

После установки в панели активности появится значок Stepik.

Из исходников

Требуется Node.js 18+.

npm ci
npm run build
npx @vscode/vsce package
code --install-extension stepik-vscode-fork-0.4.1.vsix

Готовые файлы сборки: dist/extension.js и dist/audioWorker.js. Установочный пакет: stepik-vscode-fork-0.4.1.vsix.

Первый запуск

  1. Нажмите на значок Stepik в панели активности слева.
  2. Расширение автоматически создаст папку решений ~/.stepik. Открывать её как рабочую папку не нужно.
  3. Выполните вход: значок входа в заголовке панели или команда Stepik: Login.
  4. Введите OAuth-данные приложения Stepik.
  5. Выберите курс командой Stepik: Select Course.
  6. Откройте любой шаг в дереве.

Папка решений не зависит от проекта, открытого в VS Code. Файлы и служебный файл сопоставления «файл → шаг» всегда хранятся в ~/.stepik. Подробнее — в разделе Папка решений.

Настройка OAuth

Расширение использует OAuth 2.0 с типом client-credentials. Это значит, что ему нужны client id и client secret вашего приложения Stepik. Логин и пароль от аккаунта Stepik вводить не нужно.

  1. Войдите на Stepik и откройте https://stepik.org/oauth2/applications/.
  2. Нажмите «Новое приложение» (или New application).
  3. Заполните поля:
    • Название — любое, например Stepik VS Code;
    • Client type — confidential;
    • Authorization grant type — client-credentials;
    • Redirect uris — можно оставить пустым.
  4. Сохраните приложение.
  5. Скопируйте Client ID и Client Secret.

В VS Code выполните Stepik: Login и вставьте сначала Client ID, затем Client Secret. Секрет вводится скрыто.

Данные хранятся в защищённом хранилище VS Code (SecretStorage), а не в обычных настройках. Access token обновляется автоматически, пока сохранены Client ID и Client Secret. Команда Stepik: Logout удаляет сохранённые учётные данные и открытую панель задачи.

Если нужно войти под другим аккаунтом Stepik, сначала выполните Stepik: Logout, затем Stepik: Login с данными другого приложения.

Вход и выбор курса

  • Stepik: Login — вход по Client ID и Client Secret.
  • Stepik: Logout — выход и удаление сохранённых данных.
  • Stepik: Select Course — выбор курса из списка ваших курсов.
  • Stepik: Refresh — обновление дерева курса и прогресса.

После входа выбранный курс сохраняется. При следующем запуске расширение восстанавливает его автоматически.

В список попадают курсы, на которые вы записаны на Stepik. Если нужного курса нет, проверьте запись на курс на сайте и нажмите Stepik: Refresh.

Интерфейс

Боковая панель

В панели Stepik отображается дерево выбранного курса:

  • разделы;
  • уроки;
  • шаги.

Цвета и значки подсказывают состояние:

  • зелёный — шаг или урок пройден;
  • жёлтый — шаг начат, но ещё не пройден;
  • замок — материал заблокирован или недоступен;
  • экзаменационный раздел показывает действие «Начать экзамен».

В заголовке панели доступны кнопки выбора курса, обновления, выхода и входа.

Панель задачи

При открытии шага справа открывается панель Stepik Task. В ней есть:

  • кнопки «← Назад» и «Далее →»;
  • ссылка Open on Stepik ↗;
  • тип задания;
  • условие задачи;
  • форма ответа или выбор языка для задач с кодом;
  • блок комментариев и вкладка решений.

Для задач с кодом файл решения открывается в редакторе, а панель задачи остаётся рядом.

Решение задач

Задачи с кодом

  1. Откройте шаг типа код в дереве.
  2. В панели задачи выберите язык программирования.
  3. Нажмите Open in Editor.
  4. Расширение создаст файл и откроет его в редакторе. Путь: ~/.stepik/<курс>/<урок>/step-<номер>.<расширение>.
  5. Напишите решение и сохраните файл.
  6. Отправьте решение:
    • кнопкой облака со стрелкой в заголовке редактора;
    • или командой Stepik: Submit Solution из палитры команд.

Расширение использует последнюю попытку задания. Результат появится в уведомлении, а подробности ошибки — в панели Output → Stepik.

Если файл не был создан через открытие шага или был перемещён после создания, отправка не сработает: расширение не найдёт связь файла с заданием. В этом случае откройте шаг заново из дерева.

Файл шаблона создаётся один раз. Если файл уже существует, расширение не перезаписывает его — можно спокойно продолжать работу.

Тесты и другие типы заданий

В панели задачи поддерживаются все проверяемые типы Stepik:

  • тест (choice) — один или несколько вариантов ответа;
  • короткий ответ (string) — текст;
  • число (number);
  • формула (math) — обычная запись или LaTeX;
  • развёрнутый ответ (free-answer) — текст;
  • сортировка (sorting) — перетаскивание и кнопки ↑/↓;
  • сопоставление (matching) — выпадающие списки;
  • таблица (table) — чекбоксы или радиокнопки;
  • пропуски (fill-blanks) — текстовые поля и списки;
  • SQL-запрос (sql);
  • HTML/CSS (html) — редакторы HTML и CSS и чек-лист требований;
  • файл данных (dataset) — данные попытки и поле для решения;
  • химическая формула (chemical) — слоты формулы;
  • пазл (puzzle) — отметка о собранном пазле;
  • код (code) — файл решения в редакторе.

Порядок работы:

  1. Откройте шаг.
  2. Заполните форму или выберите варианты.
  3. Нажмите «Отправить».
  4. Дождитесь результата. Если ответ неверный, расширение покажет сообщение или подробности в Output → Stepik.
  5. Кнопка «Новая попытка» создаёт новую попытку для тестовых заданий.

Для заданий string с файловым ответом и free-answer с вложениями есть ограничение: расширение отправляет только текст. Файлы-вложения нужно прикреплять на сайте Stepik.

Шаги text и random-tasks показываются как материал. При открытии они отмечаются просмотренными, поэтому прогресс курса обновляется.

Форум решений

Вкладка «Решения» доступна у всех проверяемых типов заданий. Пока форум закрыт, вкладка объясняет условие открытия и показывает кнопку «Проверить снова».

Обычно решения открываются:

  • после правильного ответа;
  • или после заданного числа попыток.

После отправки ответа расширение автоматически проверяет доступ к форуму.

В форуме можно:

  • переключаться между комментариями и решениями;
  • сортировать обсуждение;
  • открывать ответы;
  • приложить своё отправленное решение через список «Мое решение»;
  • посмотреть приложенный ответ: код, выбранные варианты, порядок сортировки, пары, ячейки таблицы, значения пропусков, SQL/HTML или файл;
  • увидеть решения преподавателя.

Если Stepik возвращает 403 или 404, форум считается недоступным до следующей проверки.

Экзамены

Если раздел является экзаменом, его шаги скрыты до начала экзамена.

  1. Нажмите «Начать экзамен» у экзаменационного раздела.
  2. Подтвердите старт.
  3. Расширение создаст экзаменационную сессию через API Stepik и откроет первый шаг.
  4. В панели задачи появится таймер «Осталось …».

После окончания времени кнопки отправки блокируются. Начать экзамен повторно нельзя.

Если экзамен уже начат на сайте или в другом окне, расширение продолжит существующую сессию и откроет шаги без повторного создания сессии. Активная сессия восстанавливается после перезагрузки окна.

Не открывайте экзамен в нескольких окнах одновременно: таймер и состояние сессии могут разойтись.

Видео

Видео-шаги открываются во встроенном плеере. Доступны:

  • выбор качества;
  • субтитры, если Stepik их отдаёт;
  • превью и длительность;
  • ссылка на оригинал;
  • кнопка «На весь экран»;
  • кнопка «Открыть в браузере».

При открытии шага расширение отправляет на Stepik запись о просмотре, поэтому прогресс курса обновляется без перехода на сайт.

Встроенный Chromium в VS Code не декодирует AAC-звук из MP4. При первом открытии видео расширение скачивает ролик в фоне, извлекает звуковую дорожку, конвертирует её в MP3 и кэширует. Прогресс показывается под плеером. При следующих открытиях звук доступен сразу.

Если звук не включился автоматически, нажмите «Включить звук». Если VS Code запрещает полноэкранный режим, плеер переходит в режим «театра» на всю панель. Кнопка «Открыть в браузере» открывает видео в браузере, где доступны настоящий полноэкранный режим и родной звук.

Комментарии и форум решений

Внизу панели задачи находится обсуждение Stepik.

Комментарии

  • первая страница комментариев загружается при открытии шага;
  • следующие страницы подгружаются при прокрутке или кнопкой «Показать ещё комментарии»;
  • закреплённые комментарии показываются отдельным блоком;
  • ответы открываются кнопкой «Показать ответы (N)»;
  • показываются автор, аватар, роль, дата, удалённые и закреплённые комментарии;
  • код подсвечивается;
  • HTML с сайта очищается перед вставкой в панель.

Комментарии доступны у всех шагов, включая text и video.

Сортировка

В списке сортировок доступны:

  • Сначала новые;
  • Сначала самые обсуждаемые;
  • Сначала популярные;
  • Сначала самые свежие обновления;
  • Сначала ответы преподавателя;
  • Мои комментарии — свои комментарии и ответы на чужие комментарии.

Преподаватель

  • комментарий преподавателя подсвечивается и получает отметку «Ответ преподавателя»;
  • родительский комментарий получает рамку и отметку «Преподаватель ответил»;
  • отметки обновляются после загрузки ответов и после отправки своего ответа.

Как написать комментарий

  1. Прокрутите панель задачи к обсуждению.
  2. Введите текст в поле «Написать комментарий…».
  3. При необходимости используйте панель форматирования: B, I, </>, ссылка, цитата, список, блок кода.
  4. Нажмите «Отправить» или Ctrl+Enter.

Чтобы ответить на конкретный комментарий, нажмите «Ответить» под ним.

Поддерживается Markdown:

  • заголовки, списки, цитаты, таблицы;
  • зачёркивание, встроенный код, блоки кода;
  • ссылки и автоссылки;
  • формулы.

Сырой HTML не исполняется: Markdown рендерится с html: false, результат проходит очистку.

Оценки комментариев

  • кнопки ▲ и ▼ показывают текущий счёт;
  • повторное нажатие убирает голос;
  • переключение между ▲ и ▼ меняет оценку;
  • счётчики обновляются сразу, при ошибке состояние восстанавливается;
  • кнопки скрываются, если Stepik запрещает голосовать.

Форум решений

Вкладка «Решения» находится рядом с «Комментариями». Она доступна у всех проверяемых типов Stepik, а не только у задач с кодом.

  • вкладки переключают обсуждение без перехода на сайт;
  • шапка с вкладками закрепляется при прокрутке;
  • сортировки и подгрузка работают и для решений;
  • ответы внутри решений загружаются по кнопке;
  • в форме нового решения можно выбрать «Мое решение» из отправленных решений;
  • решения преподавателя подсвечиваются.

Формулы

Формулы рендерятся в условиях задач, вариантах ответа и комментариях.

Поддерживаются:

  • $...$ и $$...$$;
  • \(...\) и \[...\];
  • \dfrac, \sqrt, дроби, степени, интегралы и другие команды KaTeX.

Используется MathML-вывод KaTeX, поэтому внешние шрифты и ослабление CSP не нужны. Кириллица внутри формул автоматически оборачивается в \text{...}. Код внутри <pre>, <code>, <script>, <style> и готовые <math>-блоки не разбираются.

Встроенные формулы остаются в строке с текстом, выключные — на отдельной строке по центру.

Команды и горячие клавиши

Палитра команд: Ctrl+Shift+P (Windows/Linux) или Cmd+Shift+P (macOS).

Команда Действие
Stepik: Login Вход по Client ID и Client Secret
Stepik: Logout Выход и удаление сохранённых данных
Stepik: Refresh Обновление дерева и прогресса
Stepik: Select Course Выбор курса
Stepik: Submit Solution Отправка текущего файла решения

Команды Stepik: Open Step и Stepik: Start Exam вызываются из интерфейса и скрыты из палитры команд.

Горячие клавиши в поле комментария или решения:

Клавиши Действие
Ctrl+B Жирный
Ctrl+I Курсив
Ctrl+E Встроенный код
Ctrl+K Ссылка
Ctrl+Enter Отправить комментарий или решение

На macOS используйте Cmd вместо Ctrl. Отдельных пользовательских настроек у расширения нет: все параметры задаются при входе и выборе курса.

Папка решений

Решения всегда сохраняются в ~/.stepik и не зависят от папки, открытой в VS Code:

~/.stepik/
├── Курс 1/
│   ├── Урок 1/
│   │   ├── step-1.py
│   │   └── step-2.py
│   └── Урок 2/
│       └── step-1.cpp
└── .stepik/
    └── mapping.json

Файлы называются step-<номер>.<расширение>. Расширение определяется по языку задания: Python — .py, C++ — .cpp, Java — .java и так далее.

Служебный файл .stepik/mapping.json хранит соответствие между абсолютным путём файла и заданием Stepik. Без него команда отправки не понимает, какое решение и на какой шаг отправлять.

Поэтому:

  • открывать ~/.stepik как рабочую папку не нужно — расширение создаёт её автоматически при первом запуске;
  • можно работать в любом проекте: решения всё равно сохраняются в ~/.stepik;
  • не перемещайте файлы решений вручную без повторного открытия шага.

Если папку ~/.stepik всё же открыть в VS Code, расширение продолжит работать как обычно.

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

Обновление

  1. Скачайте новый .vsix из Releases.
  2. Установите его поверх старой версии: Extensions → … → Install from VSIX….
  3. Перезагрузите окно.

Сохранённые OAuth-данные, выбранный курс и файлы решений остаются на месте.

Удаление

  1. Откройте Extensions, найдите Stepik.
  2. Нажмите Uninstall.
  3. Перезагрузите окно.

При желании можно удалить папку ~/.stepik с решениями. Перед удалением сделайте резервную копию, если решения нужны. Команда Stepik: Logout удаляет сохранённые учётные данные из VS Code.

Решение проблем

Не удаётся войти

  • Проверьте, что приложение Stepik имеет тип confidential и grant type client-credentials.
  • Скопируйте Client ID и Client Secret заново, без лишних пробелов.
  • Убедитесь, что используете данные того приложения, которое создали.
  • Посмотрите Output → Stepik и уведомление с текстом ошибки.

Нет курсов в списке

  • Проверьте, что вы записаны на курс на stepik.org.
  • Выполните Stepik: Refresh.
  • Выйдите и войдите снова, если аккаунт сменился.

Шаг не открывается

  • Раздел может быть заблокирован до прохождения предыдущих уроков.
  • Экзаменационный раздел требует нажатия «Начать экзамен».
  • Проверьте, не истекло ли время экзамена.

Отправка решения не работает

  • Убедитесь, что папка ~/.stepik доступна для записи.
  • Откройте шаг из дерева заново, чтобы создать или обновить связь файла с заданием.
  • Проверьте, что файл не был перемещён после создания.
  • Для экзамена — проверьте, что сессия активна и время не истекло.

Ответ не принимается

  • Для string с файловым ответом расширение отправляет только текст.
  • В free-answer вложения не поддерживаются.
  • Проверьте формат ответа: для number — число, для math — формула.
  • Для HTML/CSS проверьте пункты чек-листа в панели.

Решения не открываются

  • Форум может открываться после правильного ответа или после нескольких попыток.
  • Нажмите «Проверить снова».
  • Если Stepik возвращает 403/404, доступ ограничен на стороне Stepik.

Нет звука в видео

  • Подождите завершения скачивания и конвертации — прогресс виден под плеером.
  • Нажмите «Включить звук», если автовоспроизведение заблокировано.
  • Нажмите «Открыть в браузере» — там звук и полноэкранный режим работают нативно.

Ошибки API

  • Откройте Output → Stepik.
  • Выполните Stepik: Refresh.
  • Перезагрузите окно: Developer: Reload Window.
  • API Stepik может меняться без предупреждения; если ошибка повторяется, проверьте раздел Issues репозитория.

Сборка из исходников

Требуется Node.js 18+.

npm ci
npm run build
npx @vscode/vsce package

Проверка типов:

npx tsc --noEmit

Готовая сборка: dist/extension.js и dist/audioWorker.js. Установочный пакет: stepik-vscode-fork-0.4.1.vsix.

Ограничения

  • нужен аккаунт Stepik и собственное OAuth-приложение;
  • отправка комментариев, голосование и форум решений зависят от прав аккаунта и ограничений Stepik;
  • файловые ответы и вложения в free-answer не поддерживаются;
  • расширение не является официальным клиентом Stepik;
  • API Stepik может меняться без предупреждения;
  • встроенный плеер зависит от кодека и возможностей Chromium в VS Code.

Автор

Автор проекта — Данил Проскурин
Псевдоним: ꧁༒☬𝔉𝔜𝔡𝔡𝔡𝔡𝔰𝔰☬༒꧂

Репозиторий: https://github.com/danilproskurin291-cmd/stepik-vscode

Оригинальный проект: https://github.com/su-mt/stepik-vscode

Лицензия

GNU General Public License v3.0. См. LICENSE.txt.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft