> For the complete documentation index, see [llms.txt](https://docs-lunar.earthly.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-lunar.earthly.dev/plugin-sdks.md).

# Plugin SDKs

- [Plugins configuration](https://docs-lunar.earthly.dev/plugin-sdks/plugins.md): Overview of the three Lunar plugin types — catalogers, collectors, and policies — that extend the platform's capabilities.
- [lunar-cataloger.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/cataloger-plugins.md): Reference for lunar-cataloger.yml, the manifest that defines a cataloger plugin used to sync software catalog information from external systems.
- [lunar-collector.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/collector-plugins.md): Reference for lunar-collector.yml, the manifest that defines a collector plugin used to gather live information about components from various sources.
- [lunar-policy.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/policy-plugins.md): Reference for lunar-policy.yml, the manifest that defines a policy plugin used to evaluate the health of components against rules.
- [Bash SDK](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk.md): Overview of the Lunar Bash SDK for building custom catalogers and collectors with shell scripts.
- [Installing dependencies](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/dependencies.md): How to install dependencies for Bash collectors and catalogers using a custom Docker image or an install.sh script.
- [Cataloger](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/cataloger.md): Write Lunar catalogers in Bash — environment variables and the lunar catalog CLI commands for saving catalog data.
- [Collector](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/collector.md): The lunar collect CLI for collecting SDLC metadata into a component's JSON, and the environment available to Lunar collectors.
- [Python SDK](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk.md): Overview of Lunar's Python SDK for writing custom Lunar policies (with collector support coming soon).
- [Installing dependencies](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/dependencies.md): How to install Python dependencies for Lunar policies, using a custom Docker image or native runtime execution.
- [Collector](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/collector.md): Placeholder for the upcoming Python Collector SDK used to gather component metadata in Lunar.
- [Policy](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy.md): Write Lunar policies in Python with the lunar\_policy package — load component metadata, make assertions, and handle pending data.
- [Check](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/check.md): Reference for the Check class in Lunar's Python Policy SDK — the fluent API for asserting on component metadata and tracking results.
- [CheckStatus](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/check-status.md): Reference for the CheckStatus enum used to mark Lunar policy outcomes as PASS, FAIL, PENDING, ERROR, or SKIPPED.
- [Node](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/node.md): Reference for the Node class in Lunar's Python Policy SDK — used to navigate, query, and iterate over component JSON data.
- [NoDataError](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/no-data-error.md): Reference for the NoDataError exception that signals required component data is not yet collected, marking a Lunar check as pending.
- [SkippedError](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/skipped-error.md): Reference for the SkippedError exception used to skip a Lunar check when it does not apply to the current component.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-lunar.earthly.dev/plugin-sdks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
