> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fallow.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# fallow list

> CLI reference for fallow list. Inspect discovered files, entry points, active plugins, and architecture boundary zones to debug configuration and verify project setup.

Inspect what fallow discovered in your project. Use this command to debug configuration issues or verify that the right files, entry points, plugins, and boundary zones are being picked up.

<Tip>
  Use `fallow list --plugins` to verify which of the 122 built-in plugins are active for your project.
</Tip>

```bash theme={null}
fallow list
```

## Options

| Flag                    | Description                                                                                                                                                                                     |
| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--files`               | Show all discovered files                                                                                                                                                                       |
| `--entry-points`        | Show entry point files                                                                                                                                                                          |
| `--plugins`             | Show active plugins                                                                                                                                                                             |
| `--boundaries`          | Show architecture boundary zones, rules, and per-zone file counts                                                                                                                               |
| `--workspaces`          | Show monorepo workspaces and workspace-discovery diagnostics (malformed `package.json`, unreachable glob matches, missing tsconfig references). Available as the `fallow workspaces` alias too. |
| `-f, --format <FORMAT>` | Output format: `human` (default), `json`                                                                                                                                                        |

## Examples

<CodeGroup>
  ```bash Inspect plugins theme={null}
  # Show active plugins
  fallow list --plugins

  # JSON output for scripting
  fallow list --plugins --format json
  ```

  ```bash Inspect files theme={null}
  # Show all discovered files
  fallow list --files

  # Show entry points
  fallow list --entry-points
  ```

  ```bash Inspect boundaries theme={null}
  # Show boundary zones and rules (requires boundaries config)
  fallow list --boundaries

  # JSON output with zone file counts
  fallow list --boundaries --format json
  ```

  ```bash Inspect workspaces theme={null}
  # Show monorepo workspaces and any discovery diagnostics
  fallow list --workspaces

  # Same, via the dedicated alias
  fallow workspaces

  # JSON output for scripting (workspace_diagnostics[] is also on
  # `fallow dead-code / dupes / health --format json`)
  fallow list --workspaces --format json
  ```
</CodeGroup>

### Workspace diagnostics

A malformed declared-workspace `package.json`, a workspace glob that matches a directory without `package.json`, or a tsconfig reference pointing at a missing directory all surface as `workspace_diagnostics[]` entries with a `kind` discriminator:

| `kind`                           | When                                                                                                                                                                |
| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `malformed-package-json`         | A declared workspace's `package.json` failed to parse. Includes the parse error.                                                                                    |
| `glob-matched-no-package-json`   | A workspace glob matched a directory that has no `package.json` (and is not in the conventional skip list or your `ignorePatterns`). Includes the matching pattern. |
| `malformed-tsconfig`             | `tsconfig.json` exists but failed to parse as JSONC. Includes the parse error.                                                                                      |
| `tsconfig-reference-dir-missing` | `tsconfig.json` references a `references[].path` that does not exist.                                                                                               |
| `undeclared-workspace`           | A directory contains `package.json` but is not declared as a workspace.                                                                                             |

A malformed ROOT `package.json` is treated as a hard config-load error and exits 2 instead of warning; everything else is warn-and-continue so analysis still runs on the remaining workspaces. The same workspace-discovery diagnostics are emitted on `fallow dead-code`, `fallow dupes`, and `fallow health` JSON envelopes (omitted when empty), so CI consumers can gate on discovery problems without a separate command. Those analysis envelopes can also include source-discovery skip diagnostics: `skipped-large-file` and `skipped-minified-file`, each with `size_bytes`.

## Example output

```bash title="$ fallow list --boundaries" theme={null}
Boundaries: 6 zones, 6 rules, 1 logical group

Zones:
  app                  3 files  src/app/**
  features/auth        4 files  src/features/auth/**
  features/billing     5 files  src/features/billing/**
  features             3 files  src/features/**
  shared               8 files  src/components/**, src/hooks/**, src/lib/**, ...
  server               4 files  src/server/**

Rules:
  features/auth        → shared, server
  features/billing     → shared, server
  app                  → features/auth, features/billing, features, shared, server
  features             → shared, server, features/auth, features/billing
  server               → shared
  shared               (isolated, no imports allowed)

Logical groups:
  features             12 files autoDiscover: src/features
    children: features/auth, features/billing
```

The `Logical groups:` section appears whenever the config (or a preset) uses
`autoDiscover` to fan a parent zone out into one zone per child directory.
Each entry shows the user-authored parent name, the exact `autoDiscover` paths
as written, the discovered children, and a summed file count. The human output
puts misconfigured entries (`invalid path`, `empty`) first inside the section
and splits the file count into `N files (X children + Y fallback)` when the
parent has both `patterns` and `autoDiscover` (e.g. the Bulletproof preset).
The `--format json` output mirrors this in a parallel
`boundaries.logical_groups[]` array, with extra fields for round-trip config
tooling: `auto_discover` (verbatim user strings), `source_zone_index`
(position in the pre-expansion `zones[]`), `status` (`ok` / `empty` /
`invalid_path`), `authored_rule` (the pre-expansion rule keyed on the parent),
`fallback_zone` (a back-reference when the parent kept its own `patterns` and
stayed in `zones[]`, as in the Bulletproof preset), `merged_from` (parent zone
indices when the user declared the same parent name twice; surfaces the
duplicate that would otherwise only appear in `tracing::warn!`),
`original_zone_root` (echo of the parent's `root` subtree scope so monorepo
patchers can tell whether `root` was authored on the parent or per-child), and
`child_source_indices` (parallel to `children`, attributing each child to a
specific `auto_discover` entry when multiple paths were authored). The full
shape is documented in
[`docs/output-schema.json`](https://github.com/fallow-rs/fallow/blob/main/docs/output-schema.json)
under `ListBoundariesOutput`.

```bash title="$ fallow list --plugins" theme={null}
Active plugins:
  - nextjs
  - vite
  - vitest
  - playwright
  - storybook
  - eslint
  - typescript
  - tailwind
  - drizzle
  - commitlint
  - sentry
```

```bash title="$ fallow list --entry-points" theme={null}
Found 42 entry points
src/app/layout.tsx                   (Plugin: nextjs)
src/app/page.tsx                     (Plugin: nextjs)
src/instrumentation.ts               (Plugin: nextjs)
src/proxy.ts                         (Plugin: nextjs)
src/lib/utils.test.ts                (Plugin: vitest)
e2e/auth.setup.ts                    (Plugin: playwright)
.storybook/main.ts                   (Plugin: storybook)
drizzle.config.ts                    (Plugin: drizzle)
scripts/db-migrate.ts                (PackageJsonScript)
scripts/db-seed.ts                   (PackageJsonScript)
...
```

Each entry point shows how it was discovered. The plugin name tells you which framework detected it.

## See also

<CardGroup cols={2}>
  <Card title="Built-in plugins" icon="puzzle-piece" href="/frameworks/built-in">
    Full list of fallow's 122 built-in framework plugins.
  </Card>

  <Card title="Custom plugins" icon="plug" href="/frameworks/custom-plugins">
    Create plugins for frameworks fallow doesn't cover yet.
  </Card>
</CardGroup>
