Описание
codebase-snapshot — это утилита, предназначенная для преобразования кодового репозитория в набор частей, готовых для LLM, с соблюдением строгого байтового бюджета. Она решает проблемы подачи больших репозиториев языковым моделям, где файлы могут быть слишком большими, а контекстные окна слишком маленькими. Инструмент работает детерминированно, обеспечивая последовательный вывод при неизменном вводе.
Читать далее
Основная функциональность заключается в создании директории `snapshot/`, содержащей текстовые части. Каждая часть ограничена потолком `maxPartBytes`; файлы, превышающие этот бюджет, обрезаются с явными маркерами пропуска. Для очень больших файлов предоставляется выдержка из начала и конца. Наряду с частями кода он генерирует файл `manifest.json`. Этот манифест служит всеобъемлющим индексом, перечисляющим каждый включенный файл с такими деталями, как его слой, тип, язык, часть, хэш и структурное резюме. Критически важно, что он также фиксирует каждый исключенный файл вместе с конкретной причиной его исключения, такой как `gitignore`, `sensitive-file` или `binary`.
Ключевой функцией для поддержания целостности контекста является команда `validate`. Эта команда повторно хэширует репозиторий по сравнению с созданным снимком и завершает работу с ненулевым кодом, если обнаруживается любое отклонение. Это гарантирует, что контекст LLM остается свежим и точным, предотвращая работу моделей с устаревшим кодом. Инструмент разработан с учетом безопасности по умолчанию, пропуская файлы учетных данных, если это не запрашивается явно, редактируя строки, содержащие секреты, и предотвращая случайное удаление исходного кода, отказываясь перезаписывать директории, которые он не создал.
codebase-snapshot поддерживает широкий спектр языков программирования и фреймворков, включая TypeScript, JavaScript, Python, Go, Rust, Java/Kotlin, C#/.NET, PHP, Ruby, C/C++, Vue, Svelte, Astro, Next.js, Nuxt, Remix, Angular, Solid, NestJS, Express, Fastify, Koa, Django, FastAPI, Flask, Laravel и Rails, часто без необходимости в конфигурации. Он предоставляет 25 автоматических предустановок, которые добавляют слои, типы, шаблоны игнорирования экосистемы и рекомендуемые бюджеты частей. Для языков, отличных от TypeScript, он генерирует резюме импортов/экспортов/классов/функций, помечая их как `ast`, `structural` или `heuristic`, чтобы указать на их надежность.
Помимо взаимодействия с человеком, codebase-snapshot создан для ИИ-агентов. Он предлагает читаемый машиной контракт и устанавливаемый навык, позволяя агентам управлять всем процессом автономно. Агенты могут использовать команды, такие как `generate`, `validate`, `report` и `explain`, для управления снимками, проверки на отклонения, аудита секретов и понимания включений/исключений файлов. Инструмент также поддерживает программный доступ к API для интеграции в более крупные системы. Его обширная документация охватывает установку, справочник по CLI, конфигурацию, схему вывода снимков и руководства по эффективному использованию с LLM, такими как ChatGPT, Claude и Cursor.
- КатегорияAI-помощники для программирования
- Модель ценообразованияБесплатно
- РазвёртываниеCLI, Programmatic API
- ПлатформыNode.js 18+
Основные функции codebase-snapshot
Детерминированная генерация снимков
Строгий байтовый бюджет для частей
Всеобъемлющий индекс manifest.json
Валидация отклонений с помощью команды `validate`
Автоматическое обнаружение 25 предустановок проекта
Поддержка нескольких языков программирования и фреймворков
Редактирование секретов и исключение чувствительных файлов
Читаемый машиной контракт для ИИ-агентов
Устанавливаемый навык агента
Программный доступ к API
Подробная отчетность и аудит
Настраиваемая установка для первого запуска
Конфигурируемые выходные артефакты
Обработка с ограничением памяти для больших файлов
Сравнение снимков с помощью команды `diff`
Как использовать codebase-snapshot?
Установка: Используйте npm, yarn, pnpm или bun для глобальной установки `codebase-snapshot` или как зависимость проекта.
Быстрый старт: Запустите `snapshot` в директории вашего проекта для руководимого первого запуска или автоматической генерации.
Конфигурация: Используйте команду `init` для интерактивной настройки, которая создает самодокументирующийся файл `snapshot.config.ts`.
Генерация снимка: Выполните `snapshot generate`, чтобы создать директорию снимка, готовую для LLM.
Валидация снимка: Запустите `snapshot validate`, чтобы сравнить снимок с текущим репозиторием и проверить на отклонения.
Объяснение путей: Используйте `snapshot explain <path>`, чтобы понять, почему конкретный файл был включен, пропущен или где он оказался.
Аудит отчетов: Генерируйте `snapshot report` для метрик здоровья, деталей слоев и аудита секретов.
Варианты использования codebase-snapshot
- Генерация контекста LLM
- Анализ кода ИИ-агентом
- Автоматизация ревью кода
- Ввод новых разработчиков в курс дела
- Управление контекстными окнами
- Аудит кодовой базы
- Обеспечение свежести контекста
- Сравнение между репозиториями







