Я сделал GitDOS — эмулятор DOS с ИИ-помощником, и вот что из этого вышло
Как я объединил MS-DOS, GitHub и нейросети в одном проекте
Привет, Пикабу! Хочу рассказать про свой проект, над которым я работал последнее время. Это GitDOS — веб-приложение, которое позволяет запускать DOS прямо в браузере, хранить диск в репозитории GitHub и управлять всем этим голосом или через ИИ-ассистента.
Звучит как безумный эксперимент? Возможно. Но у меня получилось, и я хочу поделиться результатом.
С чего всё началось
Всё началось с ностальгии. Как и многие из вас, я вырос на DOS-играх: Doom, Duke Nukem 3D, Warcraft, Commander Keen... Потом были Windows 95, 98, XP, а старые игры остались где-то в прошлом.
Я пробовал эмуляторы, настраивал DOSBox, скачивал образы дисков. Но это всегда было муторно: нужно помнить команды, настраивать конфиги, монтировать диски... А если хотелось поиграть с другом по сети — начинался настоящий ад.
И тогда я подумал: а что, если сделать эмулятор, который будет работать как современный сервис? Чтобы диск хранился в облаке, настройки применялись автоматически, а интерфейс был дружелюбным даже для тех, кто не помнит команды DOS.
Что такое GitDOS и как он работает
GitDOS — это веб-приложение, которое я собрал на основе js-dos (эмулятор DOSBox, портированный в JavaScript). Но я добавил к нему три ключевые вещи:
1. GitHub как диск C:
Вместо того чтобы хранить образ диска локально, GitDOS использует реальный Git-репозиторий. Все файлы диска — это файлы в репозитории. Синхронизация происходит в реальном времени: меняешь файл в DOS — изменения летят на GitHub.
Зачем это нужно?
История изменений (можно откатиться к любой версии диска)
Доступ с любого устройства (просто открываешь браузер)
Бэкапы автоматические
Можно подключить дополнительные диски как папки в C:\DISKS\
2. ИИ-ассистент Claude
Это, пожалуй, самая безумная фишка. Внутри DOS работает команда AI, которая вызывает нейросеть Claude. Ассистент может:
Объяснять команды DOS
Писать BAT-файлы и программы
Помогать устанавливать игры и утилиты
Генерировать код на Turbo Pascal, C и других языках
При этом он работает прямо в терминале: ответы выводятся через ECHO, а команды (если включён авто-режим) выполняются автоматически.
3. Голосовое управление
Я добавил поддержку Web Speech API. Можно говорить команды голосом, и система их выполнит. Или задать вопрос ассистенту — он ответит голосом же (встроенный синтез речи).
Горячие клавиши:
ScrollLock — голосовая команда DOS
Pause/Break — голосовой вопрос ассистенту
ContextMenu — старт/стоп записи экрана
Это особенно удобно в полноэкранном режиме, когда клавиатура не нужна.
Технические детали
Если кому-то интересно, как всё это работает "под капотом":
js-dos v8 — движок эмуляции (лежит локально, без CDN)
GitHub API — для чтения/записи файлов и работы с git-объектами
Claude API — нейросеть, которая понимает DOS
WebRTC/WebSocket — для IPX-мультиплеера (игры по сети через интернет)
Git Data API — поддержка файлов до 100 МБ (веб-интерфейс GitHub режет на 25 МБ)
Важно: все токены (GitHub, Anthropic) хранятся только в localStorage браузера. В код и репозитории они не попадают. Безопасность — приоритет.
Какие проблемы я решил
Проблема 1: "Эмуляторы сложные"
Я сделал интерфейс в стиле Windows 98 — всё наглядно, есть кнопки вместо команд. Диск монтируется автоматически при открытии ссылки. Можно поделиться диском с другом: просто кидаешь ссылку, и у него открывается твой репозиторий в эмуляторе.
Проблема 2: "Игры не работают"
Я добавил GitDOS Store — каталог программ, откуда можно установить игры и утилиты одной командой INSTALL. Установка автоматически правит AUTOEXEC.BAT и CONFIG.SYS. Никаких танцев с бубном.
Проблема 3: "Не помню команды"
Встроенный ИИ-ассистент всегда под рукой. Спросил — получил ответ. Или вообще голосом сказал, что нужно сделать, — система выполнит.
Проблема 4: "Хочу играть с другом по сети"
IPX-мультиплеер работает через WebSocket-релей. Создаёшь комнату — друг подключается по коду. Играете в Doom, как в старые добрые.
Что можно сделать в GitDOS прямо сейчас
Запустить DOS в браузере — без установки, без регистрации
Подключить свой репозиторий — и работать с ним как с диском C:
Установить игры из каталога — несколько кликов, и всё готово
Попросить ИИ написать программу — описал задачу — получил работающий код
Играть по сети с друзьями — классический мультиплеер через интернет
Вести разработку прямо в DOS — компиляторы, редакторы, отладка
Пример: как я написал игру с помощью ИИ
Я решил проверить, насколько хорошо работает ассистент. Попросил его написать на Turbo Pascal игру "Змейка".
Вот что произошло:
Я написал AI напиши игру "Змейка" на Pascal
Ассистент создал файл SNAKE.PAS через директиву MAKE
Запустил компиляцию RUN: TPC SNAKE.PAS
Увидел ошибку в коде, исправил её
Снова скомпилировал — на этот раз успешно
Запустил игру — и она заработала!
Весь процесс занял около минуты. И это при том, что я не написал ни строчки кода руками. Только описывал, что нужно сделать, и смотрел на магию.
Это полезно? Я думаю, да
GitDOS может пригодиться:
Ретроэнтузиастам — играть в старые игры без установки виртуальных машин
Разработчикам — писать код на исторических языках и сразу видеть результат
Преподавателям — показывать студентам, как работали компьютеры до GUI
Коллекционерам — хранить свои старые проекты в Git и запускать их в любой момент
Что дальше?
Планов много:
Добавить поддержку большего количества языков программирования
Улучшить ИИ-ассистента (чтобы он лучше понимал контекст DOS)
Расширить каталог игр и утилит
Сделать ещё более удобный интерфейс для встраивания на другие сайты
Но в целом GitDOS уже работает и доступен всем желающим.
Заключение
Я сделал GitDOS, потому что сам хотел иметь такой инструмент. Простой, удобный, с современными технологиями, но при этом сохраняющий дух старого доброго DOS.
Мне кажется, это отличный способ показать, что даже устаревшие технологии могут получить новую жизнь, если их правильно объединить с тем, что есть сейчас.
Исходный код тут, можно в любых целях, лицензия открытая, GPL-2:











