# Pick a format
The default is `--input-format auto`. [Detection](../detection.md) uses specific
signatures and asks you to pick when they're ambiguous. Choose a format explicitly
to skip detection. Bring the file; network fetching isn't implemented.
```sh
logloom parse CHANGELOG.md --input-format conventional-changelog
```
| `keep-a-changelog` | [Keep a Changelog Markdown](keep-a-changelog.md), including [component categories](extended-keep-a-changelog.md) |
| `conventional-changelog` | [Generated Markdown histories](conventional-changelog.md) |
| `generic-markdown` | [Custom Markdown release headings or notes](generic-markdown.md) |
| `github-release-notes` | [Saved Markdown bodies and release JSON](github-release-notes.md) |
| `changesets` | [Package histories and individual changeset fragments](changesets.md) |
| `towncrier` | [Markdown/reStructuredText histories and named fragments](towncrier.md) |
| `debian-changelog` | [Debian package records](debian-changelog.md) |
| `gnu-news`, `gnu-changelog` | [GNU release notes and date/author records](gnu.md) |
The original text and order stay intact. The default input cap is 16 MiB;
`--yes-i-know-i-am-stupid` (alias `--no-size-limit`) lifts it. Markdown still
allows at most 128 nested containers. That's already quite a few blockquotes.
Changeset summaries copied across packages and component names repeated across
sections each have a 16 MiB expansion limit. Pass individual documents or
fragments. Custom templates, directory aggregation, and Git history generation
aren't part of this tool. Pick an [output format](../output-formats.md) to export
the parsed releases.
Start with an [example file](../../examples/README.md), then see what ends up
in the [JSON](../json.md).