> ## Documentation Index
> Fetch the complete documentation index at: https://docs.innate.bot/llms.txt
> Use this file to discover all available pages before exploring further.

# Inputs

Inputs let you send additional data asynchronously to the Innate agent while an agent is running.

They are useful when integrating external signals such as added sensors (for example directional microphone or air-quality sensor), network events (for example incoming emails or webhook alerts), and internal robot status events. The most important part is that an input can send live feedback to the Innate agent while the agent is executing.

An input device is a small Python class with three pieces: a `name` property (how agents reference it), `on_open()` (called when an agent using it starts), and `on_close()` (called when it stops). In between, you call `self.send_data(...)` whenever you have something to report — that's the whole interface.

## Attach it to an agent

```python theme={null}
def get_inputs(self) -> list[str]:
    return ["my_input"]
```

When the agent starts, `on_open()` is called and the Innate agent begins receiving your input's updates.

## Go deeper

* [Definition](/software/inputs/definition) — the full interface, a copy-paste template, and the data types you can send
* [Example: Microphone](/software/inputs/example-microphone) — how the built-in `micro` input works under the hood
