# great-docs api-snapshot


Capture a JSON snapshot of a package's public API.


``` bash
great-docs api-snapshot [OPTIONS] [VERSION_TAG]
```


Snapshots record every public symbol, its parameters, type annotations, and other metadata. They are used to build versioned API reference pages and compute diff annotations without needing access to old source code.

With no arguments, snapshot the *current* working-tree API: `great-docs api-snapshot`

Snapshot a specific git tag: `great-docs api-snapshot v1.0.0`

Snapshot all version tags at once: `great-docs api-snapshot --all-tags`

Snapshots are saved to `.great-docs/snapshots/<version>.json` by default.


<span class="gd-details-chevron" aria-hidden="true"></span>Full --help output


    Usage: great-docs api-snapshot [OPTIONS] [VERSION_TAG]

      Capture a JSON snapshot of a package's public API.

      Snapshots record every public symbol, its parameters, type annotations, and
      other metadata. They are used to build versioned API reference pages and
      compute diff annotations without needing access to old source code.

      With no arguments, snapshot the *current* working-tree API:
        'great-docs api-snapshot'

      Snapshot a specific git tag:
        'great-docs api-snapshot v1.0.0'

      Snapshot all version tags at once:
        'great-docs api-snapshot --all-tags'

      Snapshots are saved to '.great-docs/snapshots/<version>.json' by default.

    Options:
      --project-path DIRECTORY  Path to your project root directory (default:
                                current directory)
      --package TEXT            Python package name (auto-detected from
                                'pyproject.toml' if omitted)
      -o, --output FILE         Output file path (default: '.great-
                                docs/snapshots/<version>.json')
      --all-tags                Snapshot all version tags in the repository
      --force                   Overwrite existing snapshot files
      --help                    Show this message and exit.


# Arguments


`VERSION_TAG: TEXT`  
Optional.


# Options


`--project-path: DIRECTORY`  
Path to your project root directory (default: current directory)

`--package: TEXT`  
Python package name (auto-detected from `pyproject.toml` if omitted)

`-o, --output: FILE`  
Output file path (default: `.great-docs/snapshots/<version>.json`)

`--all-tags`  
Snapshot all version tags in the repository

`--force`  
Overwrite existing snapshot files
