# discover_plugin_hook_sources

> **Function** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/plugins/adapters/hooks/discover_plugin_hook_sources)

Build hook sources from enabled or already-discovered plugins.

## Signature

```python
discover_plugin_hook_sources(
    *,
    project_dir: Path | None = None,
    plugins: tuple[PluginInstance, ...] | None = None,
) -> PluginHookSources
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `project_dir` | `Path \| None` | No | Project directory exposed as `${CLAUDE_PROJECT_DIR}`. (default: `None`) |
| `plugins` | `tuple[PluginInstance, ...] \| None` | No | Already-discovered plugins, or `None` to discover them here. (default: `None`) |

## Returns

`PluginHookSources`

Sourced hook documents and collection diagnostics.

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/e4c1ffe9ee63d7854147de490ca27495ef157a7b/libs/code/deepagents_code/plugins/adapters/hooks.py#L60)