Склеивает твой проект в один файл для скармливания нейросетям. Теперь с блэкджеком и веб-интерфейсом.
Иногда хочется показать весь проект ИИ, но кидать 50 файлов — кринж.
Вот и придумалось: склеить весь проект в один файл, чтобы можно было отправить в чат типа Gemini или ChatGPT.
Основные кейсы:
- Проанализировать весь проект на наличие багов или рефакторинг.
- Получить общую документацию по коду.
- Просто показать ИИ, над чем ты работаешь.
Старый скрипт эволюционировал. Теперь это не просто скрипт, а полноценный веб-инструмент:
- 🖥️ Полноценный веб-интерфейс: Забудь про консоль. Теперь всё красиво и с кнопочками.
- 🚀 Лаунчер с авто-установкой: Один файл для запуска, который сам установит все зависимости.
- 🧠 Умное игнорирование: Автоматическая поддержка
.gitignoreи ручная настройка исключений. - 🔐 Удаление секретов: Опция для автоматической вырезки API-ключей, токенов и паролей. (Может работать криво!!!)
- ✨ Очистка для ИИ: Специальный режим, который убирает все комментарии и лишние пустые строки, чтобы не тратить драгоценный контекст модели.
- 📄 Гибкий экспорт: Сохраняй результат в
.txt.mdили.pdfс подсветкой синтаксиса. - 🎨 Темная и светлая темы: Чтобы глаза не вытекали.
- 📁 Интерактивное дерево проекта: Раскрывай папки и выбирай файлы галочками.
- 🌐 Локализация: Русский и English.
- 🎉 Конфетти при успехе: Потому что захотел.
- 👨💻 CLI-режим: Если не нужны кнопочки или нужна интеграция.
Для запуска нужен только Python 3.
# 1. Клонируй репозиторий
git clone https://github.com/MKultra6969/ProjectMergerTool
# 2. Перейди в папку
cd ProjectMergerTool/App/
# 3. Запусти лаунчер
python ProjectMergerWeb.pyСкрипт сам установит нужные зависимости (Flask, pathspec, WeasyPrint, Pygments), запустит локальный веб-сервер и откроет страницу в твоем браузере.
- Запустил
ProjectMergerWeb.py. - В открывшейся вкладке браузера вставил путь к своему проекту.
- Нажал "Сканировать".
- В дереве файлов поснимал галочки с того, что не нужно.
- Справа выбрал нужные опции: формат
.mdи "Очистить для ИИ" (рекомендуется). - Нажал "Склеить выбранные файлы".
- Скачал файл и скормил его боту со словами: «Анализируй, кожаный мешок».
Отличный README! Сочный, дерзкий и по делу. Обновим его, чтобы отразить всю мощь CLI-режима, сохраняя твой неповторимый стиль.
Если тебе лень запускать браузер, а мышка покрылась пылью, весь основной функционал доступен прямо из командной строки. Скрипт app.py можно запустить с аргументами для полной автоматизации.
Запуск в режиме CLI:
# Общий вид
python app.py [аргументы]CLI-режим автоматически использует те же правила исключений, что и веб-интерфейс, но с некоторыми особенностями:
.gitignore: По умолчанию всегда используется для фильтрации файлов. Если это поведение не нужно, его можно отключить флагом--no-gitignore.merger_exclusions.json: Этот файл используется всегда, если он существует в папке с приложением. CLI-режим не имеет опции для его отключения. Это тот же самый файл, который вы настраиваете через веб-интерфейс.
Как редактировать merger_exclusions.json для CLI?
- Путь воина: Открыть
merger_exclusions.jsonв редакторе и править руками. - Путь хитреца: Один раз запустить веб-интерфейс (
ProjectMergerWeb.py), настроить все исключения через удобные поля, нажать «Сохранить», а затем пользоваться CLI, который будет подхватывать эти сохраненные настройки.
-p,--path— Путь к проекту, который нужно обработать (по умолчанию: текущая папка).-o,--output— Путь и имя выходного файла. Если не указан, создастся файл типаимя_проекта.txtв текущей директории.-f,--format— Формат вывода:txt,mdилиpdf(по умолчанию:txt).--remove-secrets— Активирует удаление секретов.--clear-ai— Активирует очистку для ИИ (удаляет комменты и пустые строки, включает удаление секретов).--no-gitignore— Заставляет скрипт полностью игнорировать файл.gitignore.-l,--lang— Язык заголовков в итоговом файле:ruилиen(по умолчанию:en).--help— Показать полную справку со всеми командами.
# 1. Просто собрать текущую директорию в .txt
python app.py
# 2. Собрать проект из другой папки в Markdown-файл с очисткой для ИИ
python app.py -p "C:\Users\User\Desktop\MyProject" -f md --clear-ai
# 3. Собрать проект в PDF с кастомным именем, игнорируя .gitignore
python app.py -p ../my-awesome-app -f pdf --no-gitignore -o "D:\merged\AwesomeApp.pdf"
# 4. Увидеть все доступные опции
python app.py --helpMKultra69
- Создано с ненавистью, как всегда. Лицензия — WTFPL. DO WHAT THE FUCK YOU WANT.
- В коде куча говна, комменты, калл, возможно нечитаемый местами код, но мне как то всеравно.