# Command reference — list

> commitbrief list prints the full command reference straight from the binary you have installed, plus a "Current configuration" summary of the active provider, rules file, and cache footprint.

CommitBrief docs · v1.x · Reference

Canonical URL: https://commitbrief.com/docs/1.x/list/

---

import FlagTable from "../../../src/components/surface/FlagTable.astro";

`commitbrief list` prints every command CommitBrief has, grouped by task,
followed by a **Current configuration** section reporting what the binary
would actually do right now. It takes no arguments.

```sh
commitbrief list
```

## Why it exists

`--help` documents one command's own flags. `list` is the opposite view: a
single page covering every command, organized by what you're trying to do
(review, summarize, generate a commit message, inspect, gate CI, set up,
maintain) rather than by cobra's alphabetical command tree. It's the
fastest way to answer "is there a command for that?" without leaving the
terminal, and it always matches the binary you ran it against — it isn't
a copy of this site frozen at build time.

## Current configuration

Every run appends a second section reporting:

- **Active provider / model** — the resolved backend for this invocation.
- **Rules file (COMMITBRIEF.md)** — the path to the repo's `COMMITBRIEF.md`
  if one was found, or `built-in default`; `built-in default (not in a
  repo)` when run outside a git repository.
- **Output template (OUTPUT.md)** — repo override, user-level override, or
  `built-in default`.
- **Cache** — entry count and total size, or `unavailable (not in a repo)`.

API keys are never shown here — see
[`commitbrief providers list`](/docs/1.x/providers) for that. `list` works
outside a git repository (the command reference doesn't need one), but the
rules-file and cache lines fall back to their `not in a repo` wording when
there is none to inspect.

## Output

`list` has no findings to report, so it renders as plain text or markdown,
never as the JSON schema v1 envelope: `--json` and `--markdown` both
produce the same markdown-formatted reference (styled terminal output
renders only in an interactive TTY with no `--json`/`--markdown` flag and
color resolved on). **`-o, --output <file>` is accepted but has no effect
on `list`** — the reference always prints to stdout regardless of
`--output`, unlike most other commands. See
[Output formats](/docs/1.x/output-formats) for how `--output` behaves on
commands that do return findings.

## Flags

`list` accepts no command-specific flags — the table below is empty aside
from its headers on purpose. Every [global flag](/docs/1.x/flags) still
parses on `list`, since those are inherited from the root command, but
`list` never runs the review pipeline, so most of them have nothing to
act on:

- **`--json`, `--markdown`, `--color`** — control how the *entire* output
  renders (reference and Current configuration together, as one document),
  the same as on any other command.
- **`--provider`, `--model`, `--cli`** — don't change the reference text,
  but do change the **Current configuration** half: whatever they resolve
  to is exactly what the "Active provider" line reports, so `list` doubles
  as a preview of an override before you spend a real review on it.
- **`--ignore-unknown-config`** — without it, an unrecognized key in either
  config file makes `list` fail outright (the same config load every
  command uses); with it, `list` runs and the key is named in a stderr
  warning instead.
- **`--timeout`** — an invalid value (not a duration or a whole number of
  seconds) makes `list` fail before it prints anything; a valid one has no
  further effect, since `list` does nothing that can time out.
- **`--lang`** — only changes the language of `list`'s stderr messages: the
  unknown-key warning above, and the `Error:` prefix on any message `list`
  fails with (an invalid `--timeout`, a rejected flag pair, and so on); it
  doesn't touch the reference itself (which isn't translated).
- **`-o, --output`** — accepted, has no effect: `list` always prints to
  stdout regardless (see [Output](#output) above).
- **`-q, --quiet`** — accepted, has no effect: `list` doesn't emit the info
  messages `--quiet` suppresses.
- Every other global flag (the path/commit filters, `--fail-on`,
  `--compact`, `--copy`, `--no-cache`, `--verbose`, and the rest) is
  parsed but unused by `list`'s code path — no visible effect on what it
  prints.

Four flag pairs are mutually exclusive at the root command and stay that
way on every subcommand, `list` included: `--provider`/`--cli`,
`--cli`/`--json`, `--cli`/`--markdown`, and
`--update-baseline`/`--no-baseline`. Passing both flags of any one pair
fails `list` before it prints anything, the same as on `diff` or a
review.

<FlagTable command="commitbrief list" />

## See also

- [Which command do I need?](/docs/1.x/which-command) — task-to-command
  decision table, if you'd rather not read the full reference.
- [Flags](/docs/1.x/flags) — every flag, including the global ones `list`
  inherits.
- [Providers](/docs/1.x/providers) — where the active provider/model in the
  configuration summary comes from, and how to change it.