Skill Recorder: превращаем один ручной сеанс работы в SKILL.md для агента
📂 Исходный код на GitHubДесктопное приложение, которое записывает рабочую сессию на экране и через GitHub Copilot CLI восстанавливает её как намерение плюс упорядоченные шаги, а затем собирает из этого переиспользуемый Skill или Automation для Microsoft Scout, Microsoft Copilot Cowork или Copilot Studio.
Ручное написание SKILL.md — это всегда пересказ того, что вы уже умеете делать. Формально звучит изящно, но на практике процедура рождается из двадцати пробных прогонов, пока агент не перестанет ошибаться. Microsoft предложила ответ на это: Skill Recorder — десктопное приложение, которое записывает ваш реальный рабочий сеанс и превращает его в переиспользуемый навык.
Логика простая до банальности: сделайте задачу один раз, записьте себя, а агент потом сможет повторять это снова и снова.
Что делает приложение
Skill Recorder захватывает экран и активность локально, а затем через GitHub Copilot CLI реконструирует не «список кликов», а одно общее намерение плюс упорядоченный список шагов. Дальше из этого разбора можно сгенерировать один из двух артефактов:
- Skill — процедура в формате
SKILL.md, которую агент запускает по требованию; - Automation — та же процедура, но по расписанию или по триггеру.
Ключевая деталь, на которой строится вся ценность проекта: сгенерированная инструкция предпочитает нативные инструменты агента (например, CLI gh или web_fetch) вместо повторения щелчков мышью по интерфейсу. И она обобщается с одного примера: если вы записали отправку одной формы, агент сможет отправить все формы. Это принципиально отличается от записи макроса.
Целевые потребители — Microsoft Scout, Microsoft Copilot Cowork и Copilot Studio.
Цикл работы
Процесс состоит из четырёх шагов.
- Запись. Нажмите кнопку записи или комбинацию
⌘⇧Rна macOS /Ctrl+Shift+Rна Windows — и просто выполняйте задачу. Приложение работает в фоне, локально. - Управление. Во время записи поверх всех окон висит небольшая панель поверх всего: она показывает состояние захвата экрана, микрофона и записанного терминала. Оттуда можно открыть терминал текущей сессии, отключить или включить звук, сменить микрофон, а затем завершить или отбросить запись с подтверждением.
- Анализ. Кнопка Analyze запускает GitHub Copilot, который собирает одно намерение и упорядоченные шаги. Дальше вы читаете результат и правите его, пока он не начнёт звучать правильно.
- Создание. Из утверждённого разбора приложение генерирует переиспользуемый Skill и/или Automation по расписанию.
Для навыков есть необязательный шаг Review SKILL.md — он показывает полный текст файла в режиме только для чтения (включая frontmatter) до установки или экспорта. Важно понимать границы этой фичи: подготовка превью не записывает файлы навыка, повторное открытие без перегенерации использует ровно тот же превью, а правка плана отбрасывает превью. При этом Review даёт видимость сгенерированных инструкций, но не является гарантией безопасности.
Что именно захватывается
Запись, хранение, извлечение кадров и опциональная транскрибация речи происходят на вашем компьютере — во время записи ничего не уходит наружу. В облако GitHub данные отправляются только в момент нажатия Analyze.
Приложение собирает:
| Что | Детали |
|---|---|
| Окна | Переключения активных приложений и окон |
| URL браузера | Открытая страница (только на macOS) |
| Видео экрана | Пишется через Chromium; низкочастотные снимки сохраняются только при изменении картинки или по heartbeat |
| Буфер обмена | Короткие превью скопированного текста, которые связывают шаги между собой |
| Речь | Опционально, транскрибируется на устройстве, 99 языков Whisper, разовая загрузка модели ~252 МБ |
| Терминал | Только если открыт из плавающей панели: команда, рабочая папка, шелл, код возврата, длительность и полный вывод |
Транскрипт терминала не имеет верхнего предела размера и входит в объём сохранённой сессии. При этом приложение не внедряет глобальные хуки, не правит профили, не мониторит фоновые команды и не наблюдает за уже существующими терминалами — только за собственным терминалом этой записи.
Приватность: что уходит в облако
По нажатию Analyze отправляются: лента событий (заголовки окон и документов, URL, превью буфера обмена, команды терминала), извлечённые изображения экрана, текст речи и ограниченные фрагменты вывода терминала, которые запросил сам анализ. Если включена защита, команды терминала и полный локальный транскрипт проходят тот же on-device скан на секреты и персональные данные, что и остальные данные, до того как любой фрагмент будет отправлен.
Отсюда прямое практическое правило: не записывайте пароли, токены, ключи API и любую конфиденциальную информацию. Не вводите их, не вставляйте и не проговаривайте вслух во время сессии. Кнопка Analyze отправляет данные в облако GitHub — приложение напоминает об этом перед каждой записью.
Установка
Skill Recorder публикуется как source release: одна команда скачивает закреплённую среду Node.js, собирает нужный коммит релиза локально и добавляет приложение Skill Recorder (Source), которое потом можно запускать в любой момент. Ничего не ставится глобально.
macOS — основная целевая платформа. Windows 11 (x64 и ARM64) тоже поддерживается, что описано в WINDOWS-VALIDATION.md. Полный список платформ — macOS, Ubuntu, Windows 11 x64 и ARM64.
Порядок установки:
- Откройте страницу последнего релиза и найдите секцию Commit-pinned installation.
- Скопируйте всю команду целиком кнопкой в правом верхнем углу блока кода. Подставлять версию руками не нужно — идентификатор уже вписан.
- Вставьте команду в PowerShell (Windows) или Terminal (macOS / Ubuntu) и нажмите Enter.
- Не закрывайте окно до конца установки: скрипт скачивает зависимости, собирает приложение на вашей машине, создаёт ярлыки и запускает Skill Recorder. Первая установка занимает несколько минут.
Важные оговорки из README: не вставляйте команды, где <40-character-release-commit> стоит буквально, вам не нужен ни Git, ни отдельная установка Node.js, а ссылки Source code (zip) и Source code (tar.gz) в разделе Assets — это не установщики. Если хотите сначала посмотреть скрипт, на странице релиза есть инструкция inspect-first. Дальнейшие настройки, обновление и удаление описаны в INSTALL.md.
После первого запуска macOS попросит разрешение на запись экрана. Дальше — запись, Analyze, создание.
Авторизация в Copilot
При первом Analyze приложение предложит Sign in to Copilot, если вы ещё не вошли. Авторизация открывает браузер по умолчанию через web OAuth flow CLI, а не через device code. Это сделано намеренно: GitHub Copilot CLI закреплён на версии 1.0.78 и запускается с флагами --no-auto-update login --web-flow, чтобы вход не зависел от другой версии CLI в кэше автообновлений пользователя. Более старые встроенные версии вроде 1.0.71 флага --web-flow не поддерживают.
Вход можно отменить, он истекает через пять минут. Если логин в браузере не удался, приложение покажет ошибку и готовую команду для встроенного CLI — после ручного входа повторите анализ самостоятельно. Вход из билдера навыка или автоматизации сам по себе не повторяет ни сборку, ни установку.
На Windows локальная подсказка тенанта Microsoft Entra может предложить выбор между Microsoft Enterprise SSO и Personal GitHub account. Это подсказка маршрутизации, а не доказательство трудоустройства. У входа Microsoft два отдельных шага: закончить SSO в браузере, затем авторизовать приложение GitHub Copilot. Если SSO приземлился на github.com/enterprises/microsoft, закройте вкладку, вернитесь в приложение и нажмите Authorize Copilot — сам по себе SSO приложение не авторизует. Используйте один и тот же профиль браузера.
Разработка из исходников
Для тех, кто меняет код, а не просто ставит приложение, нужен Node.js 24. После переключения на ревизию релиза:
npm ci
npm run compliance:licenses
npm run dev
npm run dev поднимает Vite и запускает Electron-приложение с горячей перезагрузкой; ⌘⇧R / Ctrl+Shift+R переключает запись из любого места. Сборка, скрипты для dist и граница лицензирования между локальными сборками и распространяемыми пакетами описаны в INSTALL.md, регламент релиза — в RELEASING.md.
Оценки качества
У Copilot есть fixture-based набор evals для компонента describer и для билдеров, описанный в evals/README.md:
npm run eval # score the describer against synthetic recordings
npm run eval:terminal # score indexed terminal-output use and redaction
npm run eval:builder # score the skill/automation generalization
Отдельная проверка eval:terminal оценивает использование проиндексированного вывода терминала и редактирование секретов — то есть проверяет не только полезность, но и аккуратность обращения с чувствительными данными.
Практический вывод
Проект решает конкретную боль: навыки агентов обычно пишутся от третьего лица, по памяти, и потому разъезжаются с реальностью. Skill Recorder меняет источник знания — вместо пересказа он берёт фактическую сессию. Цена этого подхода — приватность: анализ отправляет запись в облако, поэтому дисциплина «никаких секретов в кадре» становится обязательной, а не рекомендуемой.
Репозиторий написан на TypeScript, распространяется под лицензией MIT, и на момент публикации собрал более 4 000 звёзд. Баги и запросы — через GitHub Issues, поддержка ограничена ресурсами из SUPPORT.md, уязвимости — по SECURITY.md, лицензии зависимостей — в THIRD-PARTY-NOTICES.md.