# What Are Plugins

In order for the Psiagram package to remain lightweight and flexible, **functionality specific to a certain style or type of diagram is generally moved into plugins**. This allows for picking and choosing specific functionality to include, while avoiding cramming unnecessary functionality into the core framework.

Each plugin is initialized with a set of properties, then passed into the Paper during initialization. Inside of Paper, a special initialize function of each plugin is called, and given access to many of Paper's internals. **This allows plugins to have a huge amount of control over the Paper**. As such, publishing your own plugin (or even just building one for internal use) is the most impactful way to augment the functionality of Psiagram. For more details, and for more insight into how plugins work, check out the [creating plugins](/plugins/creating-plugins.md) documentation.


---

# Agent Instructions: 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:

```
GET https://www.psiagram.org/plugins/what-are-plugins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
