fallow CLI

CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы

  • 5 219 ★ репозитория
  • Последний коммит
  • MIT
CLI

Расширенный доступ

Почему такой уровень

  • Читает весь исходный код проекта и запускает анализ локально, а команды `fallow fix --yes` и `fix_apply` удаляют неиспользуемый код и зависимости
  • `fallow agent install` меняет проект и настройки агентов: пишет AGENTS.md, ставит скиллы и MCP и добавляет проверку на git commit и git push
  • Облачные инструменты покрытия времени выполнения обращаются к облаку fallow по сети
Все причины и проверки

fallow-rs/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/` лежат готовые настройки.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов

MCP-серверРасширенный доступ955Звезды репозитория

CLI на Rust, который собирает кодовую базу в один промпт с деревом файлов, шаблонами и оценкой токенов

CLIРасширенный доступ7,7 тыс.Звезды репозитория

codesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер

MCP-серверРасширенный доступ1,4 тыс.Звезды репозитория

CodeGraph на Rust

codegraph-rust

Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта

MCP-серверРасширенный доступ905Звезды репозитория
Официальный

agnix — линтер для CLAUDE.md, AGENTS.md, SKILL.md, хуков и MCP-конфигов: 702 правила, автофикс и редакторские расширения для VS Code и JetBrains

CLIМинимальный доступ457Звезды репозитория

Линтер и форматтер для JavaScript и TypeScript без настройки, с готовыми профилями под десятки ИИ-агентов и редакторов

CLIРасширенный доступ3,4 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
fallow (эта запись)нет5 219
jscpdдане нужна6 440ищет только дубликаты кода на более чем 220 языках, мертвый код и архитектуру не проверяет
CoalMineнет14набор из девяти скиллов-проверок для агентов, среди них мертвый код и дрейф контрактов

Коротко о README

Главная страница репозитория начинается с примера отчета `fallow audit` для вымышленного магазина, затем перечисляет четыре места работы (терминал, запрос на слияние, редактор, агенты) и таблицу анализов с командами. Дальше идут гарантии стабильности вывода, быстродействие на крупных монорепозиториях, пошаговое внедрение на существующем коде, настройка GitHub Actions и GitLab CI с таблицей кодов выхода, редакторы и привязка для Node, раздел для агентов и миграция конфигов `knip`, `jscpd` и `stylelint`. В репозитории лежат документация, схема вывода, дорожная карта, политика безопасности и скиллы для агентов в `.agents/skills`.

Бейдж для README

Сообщить о проблеме

Foxx AIfallow
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.