fallow CLI
CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы
- 5 219 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Читает весь исходный код проекта и запускает анализ локально, а команды `fallow fix --yes` и `fix_apply` удаляют неиспользуемый код и зависимости
- `fallow agent install` меняет проект и настройки агентов: пишет AGENTS.md, ставит скиллы и MCP и добавляет проверку на git commit и git push
- Облачные инструменты покрытия времени выполнения обращаются к облаку fallow по сети
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/fallowОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает весь исходный код проекта и запускает анализ локально, а команды `fallow fix --yes` и `fix_apply` удаляют неиспользуемый код и зависимости
- `fallow agent install` меняет проект и настройки агентов: пишет AGENTS.md, ставит скиллы и MCP и добавляет проверку на git commit и git push
- Облачные инструменты покрытия времени выполнения обращаются к облаку fallow по сети
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
fallow строит граф репозитория из модулей, экспортов, зависимостей, функций и токенов стилей и ищет по нему проблемы. Это один бинарный файл на Rust, которому не нужны ни компилятор TypeScript, ни настройка для первого запуска. Команда `npx fallow` в корне проекта выдает здоровье кода, дубликаты и неиспользуемые части одним отчетом. `fallow dead-code` находит неиспользуемые файлы, экспорты, типы, члены классов и зависимости, `fallow dupes` ищет копии кода в JS, TS, CSS и компонентах Vue, Svelte и Astro, `fallow health` считает сложность, оценку от 0 до 100 и цели рефакторинга, а `fallow architecture` проверяет циклические зависимости и границы слоев по готовым схемам `bulletproof`, `layered`, `hexagonal` и `feature-sliced`. Команда `fallow audit` сравнивает запрос на слияние с базовой веткой и роняет проверку только на проблемах, которые добавил сам запрос. Старые находки в изменения не попадают, поэтому файл с базовой линией не нужен. `fallow fix --dry-run` показывает автоисправления, `fallow fix` применяет их. Отдельные команды `fallow security` и `fallow similar-code` включаются по желанию: первая ранжирует кандидатов в уязвимости по достижимости от точек входа, вторая ищет функции с одной задачей и разным синтаксисом на локальной модели, которую скачивают один раз. Для агентов `npx fallow agent install` находит Claude Code, Codex и Cursor, пишет карту задач `AGENTS.md`, ставит скиллы `fallow` и `fallow-setup`, регистрирует MCP-сервер `fallow-mcp` и добавляет проверку на `git commit` и `git push`. Результаты команд с флагами `--format json --quiet` приходят типизированным JSON с массивом действий для каждой находки.
Для кого. Для команд и разработчиков проектов на TypeScript и JavaScript, которые хотят видеть мертвый код, дубли и разрастание сложности до слияния запроса и дать агентам Claude Code, Codex и Cursor проверяемые данные об этом.
Подходит, если
- Перед слиянием нужен барьер, который падает только на проблемах из самого запроса на слияние: `fallow audit` в GitHub Actions или GitLab CI
- Монорепозиторий на npm, yarn или pnpm разросся, и надо найти неиспользуемые файлы, экспорты и зависимости с предпросмотром автоисправлений
- Перед рефакторингом нужно найти функции с высокой сложностью, циклические зависимости и нарушения границ слоев
- Агент собирается удалять экспорт, и ему нужно доказать, что тот не используется: `fallow dead-code --trace` показывает цепочку
- В проекте уже есть настройки `knip`, `jscpd` или `stylelint`, и их надо перенести в конфиг `fallow migrate`
Не подходит, если
- Проект не на JavaScript или TypeScript: fallow анализирует только их и связанные стили
- Нужна проверка типов: ее делает `tsc`, а fallow с флагом `--type-aware` только использует данные проверки типов и ошибок компилятора не выдает
- Нужен проверенный поиск уязвимостей: `fallow security` выдает только непроверенных кандидатов, а доказать эксплуатацию он не может, для этого подойдут Snyk, CodeQL или Semgrep
- Нужны линтер и форматтер: fallow не проверяет стиль кода, для этого ESLint, Biome или Prettier
- Вы хотите оставить `fallow watch` в цикле агента: команда не завершается сама
Пример запроса к агенту
Запусти `fallow audit` для моей ветки относительно `main`, покажи новые циклические зависимости и неиспользуемые экспорты, а исправления сначала покажи через dry-runОграничения
- Анализ ограничен JavaScript и TypeScript и стилями CSS, а вместе с ними компонентами Vue, Svelte и Astro. Поиск функций с похожим смыслом и поиск кандидатов в уязвимости по умолчанию выключены.
- Для `fallow similar-code` один раз скачивается закрепленная локальная модель. Остальной анализ детерминирован: тот же ввод дает тот же вывод, ИИ внутри анализатора нет.
- Часть инструментов работает с данными продакшена: покрытие времени выполнения и облачные сводки. Автор помечает их как условно бесплатные, и только облачные из них обращаются к сети.
- Телеметрия по умолчанию выключена. Включается командой `fallow telemetry enable`, а `DO_NOT_TRACK=1` или `FALLOW_TELEMETRY_DISABLED=1` отключает ее везде.
- Для запроса на слияние Action проверяет только измененные файлы, поэтому результат может отличаться от полного локального запуска. Нужен `fetch-depth: 0` в `actions/checkout`.
- `fallow fix --yes` и MCP-инструмент `fix_apply` меняют файлы проекта: сначала запускайте `--dry-run`.
Как отключить. Команда `npx fallow agent uninstall` убирает все, что поставил `fallow agent install`: карту `AGENTS.md`, скиллы, регистрацию MCP-сервера и проверку на commit и push, а `npx fallow agent status` показывает, что установлено. Пакет удаляется как обычная зависимость, например `npm uninstall fallow`.
Частые вопросы
Чем `fallow audit` отличается от полного запуска `npx fallow`?
Полный запуск показывает все находки проекта, а `fallow audit` сравнивает ветку с базовой и роняет проверку только на проблемах из измененных файлов. Старые находки исключаются, поэтому подключить его к CI можно без чистки всего долга.
Как внедрить fallow на старом проекте без правки всех находок?
Сначала `npx fallow recommend` предложит конфиг по составу проекта и ничего не изменит. Для запросов на слияние подключите `fallow audit`. Для полных запусков сохраните базовую линию командой `npx fallow --save-baseline fallow-baseline.json` и передавайте ее флагом `--baseline`: падать будут только новые находки.
Как оставить намеренно неиспользуемый экспорт?
Над строкой добавьте комментарий `// fallow-ignore-next-line unused-export -- причина`. Весь файл закрывает `// fallow-ignore-file`, а публичный API библиотеки отмечают тегами JSDoc `@public` и `@internal`. Команда `npx fallow suppressions` перечисляет все такие пометки.
Что отдает MCP-сервер `fallow-mcp`?
Те же анализы как инструменты агента: `analyze`, `check_changed`, `check_architecture`, `find_dupes`, `check_health`, `audit`, `fix_preview`, `fix_apply` и другие. Подключить только его можно записью `npx --yes --package fallow fallow-mcp` в конфиг MCP, не запуская `agent install`.
Можно ли подключить fallow к редактору?
Да. Расширение VS Code показывает находки в редакторе, а `fallow-lsp` дает диагностику, подсказки и действия кода в любом редакторе с LSP, для Zed и Neovim в каталоге `editors/` лежат готовые настройки.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыMCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
CLI на Rust, который собирает кодовую базу в один промпт с деревом файлов, шаблонами и оценкой токенов
codesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер
CodeGraph на Rust
codegraph-rust
Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта
agnix — линтер для CLAUDE.md, AGENTS.md, SKILL.md, хуков и MCP-конфигов: 702 правила, автофикс и редакторские расширения для VS Code и JetBrains
Линтер и форматтер для JavaScript и TypeScript без настройки, с готовыми профилями под десятки ИИ-агентов и редакторов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
Коротко о README
Главная страница репозитория начинается с примера отчета `fallow audit` для вымышленного магазина, затем перечисляет четыре места работы (терминал, запрос на слияние, редактор, агенты) и таблицу анализов с командами. Дальше идут гарантии стабильности вывода, быстродействие на крупных монорепозиториях, пошаговое внедрение на существующем коде, настройка GitHub Actions и GitLab CI с таблицей кодов выхода, редакторы и привязка для Node, раздел для агентов и миграция конфигов `knip`, `jscpd` и `stylelint`. В репозитории лежат документация, схема вывода, дорожная карта, политика безопасности и скиллы для агентов в `.agents/skills`.