Instrument Neutral Distributed Interface INDI  1.6.0
Instrument Neutral Distributed Interface INDI


INDI is a simple XML-like communications protocol described for interactive and automated remote control of diverse instrumentation. INDI is small, easy to parse, and stateless.

In the INDI paradigm each Device poses all command and status functions in terms of settings and getting Properties.

Each Property is a vector of one or more names members. Each property has a current value vector; a target value vector; provides information about how it should be sequenced with respect to other Properties to accomplish one coordinated unit of observation; and provides hints as to how it might be displayed for interactive manipulation in a GUI.

Clients learn the Properties of a particular Device at runtime using introspection. This decouples Client and Device implementation histories. Devices have a complete authority over whether to accept commands from Clients. INDI accommadates intermediate servers, broadcasting, and connection topologies ranging from one-to-one on a single system to many-to-many between systems of different genre.

The INDI protocol can be nested within other XML elements such as constraints for automatic scheduling and execution. For a complete review on the INDI protocol, please refer to the INDI white paper.

Intended Audience

INDI is intended for developers who seek a scalable API for device control and automation. Hardware drivers written under INDI can be used under any INDI-compatible client. INDI serves as a backend only, you need frontend clients to control devices. Current clients include KStars, Xephem, and Cartes du Ciel.

Developing under INDI

Please refere to the INDI Developers Manual for a complete guide on INDI's driver developemnt framework.

The INDI Library API is divided into the following main sections:


INDI Library includes a number of tutorials to illustrate development of INDI drivers. Check out the examples provided with INDI library.


Simulators provide a great framework to test drivers and equipment alike. INDI Library provides the following simulators:


You can find information on INDI development in the INDI Library site. Furthermore, you can discuss INDI related issues on the INDI development mailing list.

Jasem Mutlaq
Elwood Downey

For a full list of contributors, please check Contributors page on Github.