> For the complete documentation index, see [llms.txt](https://docs.sealsecurity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealsecurity.io/discovering/package-discovery-mode.md).

# Package discovery mode

**Package discovery mode** is a per-Seal-Project setting that controls how the Seal Platform learns about the packages in your codebase. A Seal Project uses exactly one mode at a time. There are four:

* [Source code](/discovering/package-discovery-mode/source-code.md): Seal's SCM integration reads your dependency manifests directly from the connected repository.
* [CLI](/discovering/package-discovery-mode/cli.md): the Seal CLI runs in your CI/CD pipeline, scans the manifest, and reports the result to the Seal Platform.
* [Artifact server](/discovering/package-discovery-mode/artifact-server.md): the Seal Artifact Server records each sealed package your build pulls.
* [Imported manifest](/discovering/package-discovery-mode/imported-manifest.md): a one-shot upload of a manifest, lockfile, or SBOM.

Each sub-page covers one mode in detail: what it sees, when to choose it, and how to set it up.

For the high-level orientation and trade-offs across the four modes, see [How Seal discovers your packages](/discovering/how-seal-discovers-your-packages.md).

## Discovery mode is not deployment method or fix mode

Package discovery mode answers "how does Seal see my packages?". Two adjacent settings answer different questions and should not be confused:

* **Deployment method** answers "how is Seal integrated into my environment?". Five values: Automatic Remediation, Remote, Local, Artifact Server, Manual.
* **CLI fix mode** answers "what does the Seal CLI do when it runs?". Three values: local, remote, all.

A single Seal Project has all three settings, and they interact. Most commonly, a Seal Project in CLI discovery mode runs the Seal CLI in remote fix mode under the Remote deployment method.

## Mode changes

The mode is set automatically when a Seal Project first sees signal. It moves up the reliability hierarchy automatically (imported manifest → artifact server → CLI → source code) when a more reliable signal source produces signal, but it never moves back. Signals from a less reliable source than the project's current mode are dropped silently rather than recorded under the project. The full mechanics live under [Mode changes in Creating a Seal Project](/getting-started/creating-a-seal-project.md#mode-changes).

## Related

* [How Seal discovers your packages](/discovering/how-seal-discovers-your-packages.md): the orientation page with the trade-off table.
* [Creating a Seal Project](/getting-started/creating-a-seal-project.md): where a project's mode is set, and the rules for changing it later.
