# Overview

While Grid Studio comes packed with native support for industry-standard protocols and hardware, the Extension System transforms the software into an open ecosystem. This feature allows users and developers to write their own Python-based plugins that integrate so deeply they become indistinguishable from the software’s native features.

Rather than just writing logic for a single project, the Extension System allows you to build reusable modules—new IO types, custom device actions, and unique event triggers—that live in the Grid Studio plugin folder and appear across all your projects.

### A Native-Level Experience

The power of an Extension lies in its "seamlessness." When you create an extension, you aren't just running a script; you are adding new building blocks to the Grid Studio UI.

* Custom IO Connections: Write a driver for a niche hardware device or a proprietary network protocol. Once installed, this appears in the IO Connections list alongside native options like OSC or Art-Net.
* Global Actions: Define specific commands for your hardware. These become "Normal Actions" within Grid Studio, allowing any user to drag them into a Cuelist or Action List without ever seeing the code behind them.
* Event Surfacing: Create "Listeners" that watch your hardware. When a specific state is reached on your device, the extension surfaces this as a native Event in Grid Studio, which can then trigger any other part of the system.

### Building Your Own Objects

The Extension System is not limited to simple data exchange. Virtually any native object type—from complex trackers to specialized logic controllers—can be replicated or invented through an Extension.

* Bespoke UI: Extensions can define their own properties and parameters in the Inspector, providing a familiar interface for the end-user.
* Device Abstraction: You can create an Extension that represents a physical piece of gear (like a specific projector or media server) and expose only the controls that matter for your specific workflow.

### Why Use Extensions?

The Extension System is designed for developers and power users who need to:

* Standardize Workflows: Build a tool once and distribute it across a fleet of Grid Studio machines.
* Support New Hardware: If a manufacturer releases a new device, you don't have to wait for an official update. You can write your own integration immediately.
* Proprietary Logic: Keep your complex, "secret sauce" logic tucked away inside an extension file, making your main project files cleaner and easier for operators to manage.


---

# 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://stage-precision.gitbook.io/grid/extensions/overview.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.
