fallow CLI

A Rust CLI for TypeScript and JavaScript: dead code, duplicates, cycles, complexity and architecture boundaries from one graph, plus MCP and skills

  • 5,200 ★ on the repository
  • Last commit
  • MIT
CLI

Extended access

Why this level

  • Reads the whole project source and runs analysis locally, while fallow fix --yes and fix_apply remove unused code and dependencies
  • fallow agent install changes the project and agent settings: it writes AGENTS.md, installs skills and MCP and adds a check on git commit and git push
  • Cloud runtime coverage tools reach fallow's cloud over the network
All reasons and checks

fallow-rs/fallow

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/fallow

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Reads the whole project source and runs analysis locally, while fallow fix --yes and fix_apply remove unused code and dependencies
  • fallow agent install changes the project and agent settings: it writes AGENTS.md, installs skills and MCP and adds a check on git commit and git push
  • Cloud runtime coverage tools reach fallow's cloud over the network

This is third-party code. Review the repository files before installing.

What it does

fallow builds a repository graph of modules, exports, dependencies, functions and styling tokens and looks for problems in it. It is a single Rust binary that needs neither the TypeScript compiler nor configuration for a first run. Running npx fallow in a project root gives code health, duplicates and unused parts in one report. fallow dead-code finds unused files, exports, types, class members and dependencies, fallow dupes finds copies of code in JS, TS, CSS and Vue, Svelte and Astro components, fallow health computes complexity, a 0 to 100 score and refactoring targets, and fallow architecture checks circular dependencies and layer boundaries with bulletproof, layered, hexagonal and feature-sliced presets. fallow audit compares a pull request with its base branch and fails only on problems the request itself adds. Older findings stay out of the verdict, so no baseline file is needed. fallow fix --dry-run previews auto-fixes and fallow fix applies them. The separate fallow security and fallow similar-code commands are opt-in: the first ranks vulnerability candidates by reachability from entry points, the second finds functions with the same job and different syntax using a local model downloaded once. For agents, npx fallow agent install detects Claude Code, Codex and Cursor, writes an AGENTS.md task map, installs the fallow and fallow-setup skills, registers the fallow-mcp MCP server and adds a check on git commit and git push. Commands with --format json --quiet return typed JSON with an actions array for every finding.

Who it is for. For teams and developers of TypeScript and JavaScript projects who want to see dead code, duplicates and growing complexity before a pull request merges and give Claude Code, Codex and Cursor agents verifiable data about it.

Good fit when

  • Before a pull request merges you need a gate that fails only on problems from that request itself: fallow audit in GitHub Actions or GitLab CI
  • An npm, yarn or pnpm monorepo has grown and you need to find unused files, exports and dependencies with a preview of the auto-fixes
  • Before a refactor you need high-complexity functions, circular dependencies and layer boundary violations
  • An agent is about to delete an export and has to prove it is unused: fallow dead-code --trace shows the chain
  • The project already has knip, jscpd or stylelint settings and you want to move them to a fallow config with fallow migrate

Not a fit when

  • The project is not JavaScript or TypeScript: fallow analyzes only those and related styles
  • You need type checking: tsc does that, and fallow with --type-aware only consumes type-check data and reports no compiler errors
  • You need verified vulnerability scanning: fallow security returns only unverified candidates and cannot prove exploitability, so use Snyk, CodeQL or Semgrep
  • You need a linter or formatter: fallow does not check code style, use ESLint, Biome or Prettier
  • You want to leave fallow watch in an agent loop: the command never exits on its own

Example request

Run fallow audit for my branch against main, show the new circular dependencies and unused exports, and preview the fixes with a dry run first

Limitations

  • Analysis is limited to JavaScript and TypeScript and CSS styles, including Vue, Svelte and Astro components. Search for functions with similar intent and for vulnerability candidates is off by default.
  • fallow similar-code downloads a pinned local model once. The rest of the analysis is deterministic: the same input gives the same output, and there is no AI inside the analyzer.
  • Production-data tools, meaning runtime coverage and cloud summaries, are marked freemium, and the cloud ones are the only tools that use the network.
  • Telemetry is off by default. fallow telemetry enable turns it on, and DO_NOT_TRACK=1 or FALLOW_TELEMETRY_DISABLED=1 disables it everywhere.
  • In a pull request the Action analyzes only changed files, so the result can differ from a full local run. fetch-depth: 0 is required in actions/checkout.
  • fallow fix --yes and the MCP tool fix_apply change project files: run --dry-run first.

How to disable. The npx fallow agent uninstall command removes everything fallow agent install put in place: the AGENTS.md map, the skills, the MCP server registration and the commit and push check, while npx fallow agent status shows what is installed. The package is removed like any dependency, for example npm uninstall fallow.

FAQ

How does fallow audit differ from a full npx fallow run?

A full run shows all findings in the project, while fallow audit compares the branch with its base and fails only on problems in changed files. Older findings are excluded, so you can connect it to CI without cleaning up all the debt first.

How do I adopt fallow on an old project without fixing every finding?

First npx fallow recommend proposes a config from the project's stack and changes nothing. Use fallow audit in pull requests. For full runs, save a baseline with npx fallow --save-baseline fallow-baseline.json and pass it with --baseline: only new findings will fail.

How do I keep an export that is unused on purpose?

Add a comment above the line: // fallow-ignore-next-line unused-export -- reason. // fallow-ignore-file covers a whole file, and a library's public API is marked with the JSDoc tags @public and @internal. npx fallow suppressions lists all such marks.

What does the fallow-mcp MCP server provide?

The same analyses as agent tools: analyze, check_changed, check_architecture, find_dupes, check_health, audit, fix_preview, fix_apply and others. You can connect only it by putting npx --yes --package fallow fallow-mcp into the MCP config, without running agent install.

Can I connect fallow to an editor?

Yes. The VS Code extension shows findings in the editor, and fallow-lsp gives diagnostics, hover and code actions in any LSP editor, with ready-made setups for Zed and Neovim in the editors/ folder.

Discussion

No questions or reviews yet.

CLI tools
Official

An MCP server and CLI for code research: search and understand your project and all of GitHub with fewer tokens

MCP serverExtended access952Repository stars

A Rust CLI that packs a codebase into one prompt with a file tree, templates and token estimates

CLIExtended access7.7KRepository stars

codesight maps a project in one run: routes, DB models, dependencies, env vars. It gives the map to an agent as files or through an MCP server

MCP serverExtended access1.4KRepository stars

CodeGraph (Rust)

codegraph-rust

A Rust code graph for agents: four MCP tools show what an edit will touch, how the architecture fits together and where the fragile spots are

MCP serverExtended access902Repository stars
Official

agnix lints CLAUDE.md, AGENTS.md, SKILL.md, hooks and MCP configs with 702 rules, autofix and editor extensions for VS Code and JetBrains

CLIMinimal access454Repository stars

A zero-config linter and formatter for JavaScript and TypeScript, with ready presets for dozens of AI agents and editors

CLIExtended access3.3KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
fallow (this entry)no5,200
jscpdyesnot required6,431finds only duplicated code across more than 220 languages and does not check dead code or architecture
CoalMineno14a set of nine check skills for agents, including dead code and contract drift

README in short

The repository's main page opens with a sample fallow audit report for a fictional storefront, then lists four places it runs (terminal, pull requests, editor, agents) and a table of analyses with commands. Next come the stability promises for output, speed on large monorepos, a staged adoption path on existing code, GitHub Actions and GitLab CI setup with an exit code table, editors and Node bindings, a section for agents and migration of knip, jscpd and stylelint configs. The repository holds documentation, the output schema, a roadmap, a security policy and agent skills in .agents/skills.

README badge

Report a problem

Foxx AIfallow
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.