Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
readme2demo — Проверенные руководства и демонстрационные видео из вашего README. ИИ-агент запускает их в защищенной Docker-песочнице и воспроизводит в новом контейнере перед публикацией. | Kitploit
Инструменты/GitHubGitHub/alphacrack/readme2demo
Динамический анализ (песочница)Скриптинг и автоматизацияDevSecOpsУтилиты и фреймворкиОбучение и Образование
GitHubalphacrack/readme2demo

readme2demo

Проверенные руководства и демонстрационные видео из вашего README. ИИ-агент запускает их в защищенной Docker-песочнице и воспроизводит в новом контейнере перед публикацией.

Репозиторий
823305 дней назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться
# readme2demo — проверенные руководства и демо-видео из вашего README

[![tests](https://github.com/alphacrack/readme2demo/actions/workflows/ci.yml/badge.svg)](https://github.com/alphacrack/readme2demo/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/alphacrack/readme2demo/blob/main/LICENSE)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://github.com/alphacrack/readme2demo/blob/main/pyproject.toml)

<!-- HERO:START — scripts/self-demo.sh перезаписывает этот блок свежим результатом самозапуска.
     Запустите локально (требуются Docker + VHS + учётные данные модели):
       ./scripts/self-demo.sh
     Он запускает readme2demo на этом же репозитории, следуя docs/step-by-step.md,
     и вставляет проверенное demo.gif прямо сюда. -->
[![readme2demo, выполняющийся на своём собственном репозитории — проверенное демо](https://assets.kitploit.com/production/public/readmes/7263/3c81afa11b497fff6014f0fe5d31c7f755aaa97cc1fe0fee1a570cbf0746f1e3.gif)](https://github.com/alphacrack/readme2demo/tree/main/examples/readme2demo)

<sub>▶ readme2demo создаёт собственное руководство: AI-агент запускает README этого репозитория в изолированной среде, свежий контейнер воспроизводит каждый шаг, затем демо-ролик рендерится. Полные результаты выполнения в <a href="https://github.com/alphacrack/readme2demo/blob/main/examples/readme2demo">examples/readme2demo</a> · запуск на другом проекте в <a href="https://github.com/alphacrack/readme2demo/blob/main/examples/toolhive">examples/toolhive</a>.</sub>
<!-- HERO:END -->

**Генератор руководств и демо-видео с AI-верификацией.** Укажите репозиторий. AI-агент читает README и фактически запускает его внутри защищённого Docker-песочницы. Только после успешного воспроизведения в чистой комнате он рендерит демо-видео (VHS) и публикует руководство, пошаговое руководство и документ по устранению неполадок.

Ценность не в том, что «AI пишет руководство», а в том, что руководство **выполнялось дважды**, прежде чем вы его увидели.

**Посмотрите в действии:** просмотрите [проверенные примеры запусков](https://github.com/alphacrack/readme2demo/tree/main/examples) — настоящие руководства, пошаговые инструкции и демо-видео, каждое независимо воспроизведённое в чистом контейнере перед публикацией.

## Как это работает

```
URL репозитория → ingest/plan → запуск агента (в Docker) → нормализация транскрипта
        → выделение минимального пути → ПРОВЕРКА воспроизведения в свежем контейнере
        → создание tutorial.md + troubleshooting.md → рендеринг VHS видео
```

Полная архитектура описана в [architecture/README.md](https://github.com/alphacrack/readme2demo/blob/main/architecture/README.md).

## Требования

- Python ≥ 3.10, Docker
- Аутентификация, один из вариантов:
  - **Ваша подписка Claude (без API-ключа):** локальная установка Claude Code. Планировщик/дистиллятор/руководство выполняются по вашей подписке через `--llm-backend claude-cli` (`claude -p`), а агент в песочнице аутентифицируется с помощью `CLAUDE_CODE_OAUTH_TOKEN` (создайте его: `claude setup-token`). Полностью поддерживается для **самостоятельных однопользовательских** запусков на ваших собственных репозиториях — планы Pro/Max включают ежемесячный кредит Agent SDK, покрывающий `claude -p`.
  - `ANTHROPIC_API_KEY` — поминутная оплата API; лучше всего для масштаба и параллелизма, и **обязательно, если вы предоставляете readme2demo как сервис для других** (согласно условиям Anthropic, аутентификация по подписке не может использоваться для многопользовательского продукта — см. [ROADMAP.md](https://github.com/alphacrack/readme2demo/blob/main/ROADMAP.md)). Добавьте `--anthropic [model]` для запуска агента в песочнице на движке OpenHands с моделью Claude вместо claude-code.
  - **Google Gemini (`--gemini [model]`):** один `GEMINI_API_KEY` управляет всем сеансом без Claude — планировщик/дистиллятор/руководство используют Gemini, а агент в песочнице работает на движке OpenHands (также на Gemini). Ни одно имя модели не встроено (Google удаляет старые модели с ошибкой 404): укажите его при каждом запуске (`--gemini gemini-3.5-flash`) или один раз экспортируйте `GEMINI_MODEL`. Установите дополнительный пакет: `pip install 'readme2demo[gemini]'`.
  - **OpenAI (`--openai [model]`):** то же самое, что и Gemini — один `OPENAI_API_KEY` управляет проходами и агентом OpenHands, имя модели не встроено (`--openai gpt-5.1` или экспорт `OPENAI_MODEL`). Установите дополнительный пакет: `pip install 'readme2demo[openai]'`.
- Опционально: `LLM_API_KEY` + `LLM_MODEL` для `--engine openhands` (экспериментально) с любым другим провайдером litellm — предустановки выше заполняют их автоматически

```bash
# запуск по вашей подписке Claude (без API-ключа) — поддерживается для самостоятельных запусков
claude setup-token        # интерактивно: подтвердите в браузере, затем СКОПИРУЙТЕ
                          # токен sk-ant-oat01-..., который он выводит (НЕ используйте $(...))
export CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
readme2demo run <repo-url> --llm-backend claude-cli

# запуск с поминутной оплатой API (масштаб, параллелизм или хостинг для других)
export ANTHROPIC_API_KEY=sk-ant-...
readme2demo run <repo-url>              # --llm-backend auto автоматически выбирает api

# запуск всего сеанса на Google Gemini (агент OpenHands + проходы Gemini)
pip install 'readme2demo[gemini]'
docker build -t readme2demo/openhands:latest images/openhands   # однократно: образ песочницы OpenHands
export GEMINI_API_KEY=...
readme2demo run <repo-url> --gemini gemini-3.5-flash   # модель указана при запуске
export GEMINI_MODEL=gemini-3.5-flash                   # ...или установите один раз, затем:
readme2demo run <repo-url> --gemini                    # голый флаг читает GEMINI_MODEL

# запуск всего сеанса на OpenAI (агент OpenHands + проходы OpenAI)
pip install 'readme2demo[openai]'
export OPENAI_API_KEY=sk-...
readme2demo run <repo-url> --openai gpt-5.1            # или один раз экспортируйте OPENAI_MODEL

# запуск агента OpenHands с моделью Claude по API
export ANTHROPIC_API_KEY=sk-ant-...
readme2demo run <repo-url> --anthropic                 # по умолчанию использует модель из конфига
```

## Установка

```bash
pip install -e ".[dev]"
docker build -t readme2demo/base:latest images/base/
docker build -t readme2demo/openhands:latest images/openhands/   # только для --engine openhands / --gemini / --openai / --anthropic
```

## Использование

```bash
readme2demo run https://github.com/example/tool
readme2demo run -gr https://github.com/example/tool             # то же самое через флаг
readme2demo run -s my_guide.md                                  # только руководство: без репозитория, ваше руководство самодостаточно
readme2demo run -gr https://github.com/example/tool -s my_guide.md   # оба: ваше руководство управляет всем
readme2demo run https://github.com/example/tool --gemini gemini-3.5-flash  # запуск на Google Gemini (требуется GEMINI_API_KEY; используется агент OpenHands; голый --gemini читает GEMINI_MODEL)
readme2demo run https://github.com/example/tool --openai gpt-5.1           # запуск на OpenAI (требуется OPENAI_API_KEY; используется агент OpenHands; голый --openai читает OPENAI_MODEL)
readme2demo run https://github.com/example/tool --anthropic                # агент OpenHands с моделью Claude по ANTHROPIC_API_KEY
readme2demo run https://github.com/example/tool --allow-docker-socket  # для инструментов, управляющих контейнерами (КОМПРОМИСС БЕЗОПАСНОСТИ: нарушает изоляцию песочницы — только доверенные репозитории)
readme2demo run https://github.com/example/tool --skip-video --budget-usd 3
readme2demo resume runs/tool-20260702-... --from-stage render
readme2demo report runs/tool-20260702-...
```

Репозиторий **необязателен**: передайте его позиционно или с помощью `-gr/--github-repo`, укажите руководство с `-s/--step-by-step`, или оба. Требуется хотя бы один. Только с руководством репозиторий не клонируется — руководство должно быть самодостаточным (установите опубликованный пакет или клонируйте необходимое как явный шаг); воспроизведение в свежем контейнере всё равно проверяет каждую команду.

Результаты сохраняются в `runs/<run-id>/`: `tutorial.md`, `step_by_step.md`, `troubleshooting.md`, `commands.sh`, `demo.tape`, `demo.mp4`, `demo.gif`, а также `manifest.json` с состояниями этапов и общей стоимостью.

## GitHub Action — проверка README в CI

Получите красный крестик, когда ваш README перестаёт работать. Составное действие в корне репозитория устанавливает readme2demo из его собственного закреплённого чекаута, собирает образ песочницы, запускает полный конвейер для URL вашего репозитория и **завершает проверку ошибкой, когда воспроизведение в свежем контейнере не проходит**:

```yaml
name: readme-check
on:
  push:
    branches: [main]        # режим url тестирует HEAD ветки по умолчанию — см. предупреждение ниже
    paths: ["README.md"]
  schedule:
    - cron: "0 6 * * 1"     # еженедельно: отслеживать изменения мира под неизменным README

permissions:
  contents: read

jobs:
  verify-readme:
    runs-on: ubuntu-latest
    steps:
      - uses: alphacrack/readme2demo@main   # после релиза закрепите тег или SHA
        with:
          anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
          skip-video: "true"
```

> **⚠ Только режим URL — это пока НЕ проверяет HEAD PR.** Действие клонирует **удалённый HEAD ветки по умолчанию** `repo-url` (по умолчанию: репозиторий, запускающий рабочий процесс); приёмка принимает только URL https, `--depth 1`, без закрепления ref. На `pull_request` он бы тестировал README *базовой* ветки, а не PR — поэтому не подключайте его к PR, ожидая предварительной проверки. До [#74](https://github.com/alphacrack/readme2demo/issues/74) (приёмка локального пути) честными триггерами являются `on: push` на ветку по умолчанию и cron; вход `repo-path` для реальной проверки HEAD PR появится вместе с ним.

**Стоимость:** каждый запуск тратит реальные деньги агента на ваш `ANTHROPIC_API_KEY` — обычно несколько долларов, с жёстким лимитом `budget-usd` (по умолчанию `"5"`; запуск прерывается при превышении). Фильтр `paths:` плюс cron поддерживают расходы пропорциональными изменениям README, а `skip-video: "true"` сокращает реальное время (рендеринг не тратит деньги API в любом случае).

Проверка завершается ошибкой двумя различимыми способами, названными в логе шага: **README сломан** (конвейер завершён, воспроизведение в чистой комнате не удалось — обнаружено через `readme2demo report --json`, потому что `readme2demo run` намеренно завершается с кодом 0 для завершённого, но не проверенного запуска) и **инфраструктура действия сломана** (ненулевой выход конвейера: предварительная проверка, бюджет, Docker). Выходные данные: `verified` (`"true"`/`"false"`) и `run-dir`; `tutorial.md`, `step_by_step.md`, `verify.log` (и `demo.gif` при включённом видео) загружаются как артефакт `readme2demo-run`.

## step_by_step.md — источник видео

Демо-видео всегда строится **из** `step_by_step.md`: его шаги разбираются, и каждая безопасная для демо, обоснованная команда становится набранной командой в видео, а заголовок шага отображается как комментарий на экране. Три способа его появления, в порядке приоритета:

1. **Вы передаёте свой**: `readme2demo run <url> -s my_guide.md` — внедряется в клон как авторитетное руководство; планировщик и агент следуют ему, видео его воспроизводит. `<url>` здесь необязателен: `readme2demo run -s my_guide.md` запускается только с руководством в пустой песочнице.
2. **Репозиторий содержит свой** (`step_by_step.md` / `step-by-step.md` в корне или в `docs/`, любой регистр): та же обработка, автоматически.
3. **Ничего нет**: конвейер *генерирует* подробный `step_by_step.md` — каждая команда из проверенного `commands.sh` в виде пронумерованного шага с реальными захваченными выводами — затем строит видео из него. Готово для внесения обратно в репозиторий.

Шаги настройки (клонирование, установка, сборка) документируются в руководстве, но исключаются из видео — оно воспроизводится на проверенном, уже собранном рабочем дереве, показывая результат.

Каждое руководство содержит значок верификации: `✅ Verified on <date> · image <digest> · commit <sha>` — или громкий `⚠ UNVERIFIED`, если воспроизведение не прошло. Непроверенный вывод никогда не публикуется молча.

## Конфигурация

Флаги CLI > `readme2demo.toml` > значения по умолчанию:

```toml
engine = "claude-code"      # или "openhands"
model = "claude-sonnet-5"   # планировщик/дистиллятор/руководство
max_turns = 60
budget_usd = 5.0
base_image = "readme2demo/base:latest"
skip_video = false
```

## Разработка

```bash
python -m pytest tests/ -q            # 175 модульных тестов, не требуется docker/сеть
ruff check src/ tests/               # проверка корректности (соответствует CI)
python -m pytest -m integration      # требует docker + API-ключи (пока нет)
```

## Модель безопасности

README-файлы — это ненадёжный код. Агент работает *внутри* жёсткого контейнера (cap-drop ALL, no-new-privileges, лимиты памяти/процессов/PID, не от root) — этот контейнер является границей разрешений. Известный компромисс MVP: API-ключ попадает в песочницу; используйте выделенный ключ с низким лимитом. Планируется прокси для исходящего трафика с внедрением ключа на стороне хоста (Milestone 4).

Полная модель угроз и сообщение о частных уязвимостях: [SECURITY.md](https://github.com/alphacrack/readme2demo/blob/main/SECURITY.md).

## Проект и сообщество

- [Примеры](https://github.com/alphacrack/readme2demo/tree/main/examples) — проверенные результаты, зафиксированные как доказательство
- [Дорожная карта](https://github.com/alphacrack/readme2demo/blob/main/ROADMAP.md) — куда это движется (включая исследовательское направление хостинга/SaaS)
- [Участие](https://github.com/alphacrack/readme2demo/blob/main/CONTRIBUTING.md) — единственное необсуждаемое правило и как начать
- [Политика безопасности](https://github.com/alphacrack/readme2demo/blob/main/SECURITY.md) · [Кодекс поведения](https://github.com/alphacrack/readme2demo/blob/main/CODE_OF_CONDUCT.md)
- [Архитектура](https://github.com/alphacrack/readme2demo/blob/main/architecture/README.md) — границы этапов и диаграммы

Лицензия MIT. CLI и конвейер верификации являются и останутся бесплатными и открытыми.

## Участники

Огромное спасибо всем, кто внёс вклад в readme2demo!

[![Contributors](https://img.shields.io/github/contributors/alphacrack/readme2demo?style=flat-square)](https://github.com/alphacrack/readme2demo/graphs/contributors)

<a href="https://github.com/alphacrack/readme2demo/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=alphacrack/readme2demo" alt="Contributors" />
</a>
Скачать инструмент