INDIGO is open source astronomical imaging and instrument control software for observatories, remote setups and backyard telescopes, on Linux, macOS and Windows.
Taiwan-built, self-hosted AI agent harness in a single Go binary — writes its own tools, sandbox-tests them, and shares them over MCP with Claude Code and Codex.
INDIGO is a system of standards and frameworks for multiplatform and distributed astronomy software development designed to scale with your needs.
翻译准备中
取自仓库 README
README
正在加载完整 README。 以下为已保存的摘录。
INDIGO is a next generation astronomy software framework, based on layered architecture and software bus.
INDIGO is a separate and independent project. It is not INDI, and it is not a fork, a rewrite
or a branch of it — it was written from the ground up and it is an alternative to INDI.
INDIGO is a next generation astronomy software framework, based on layered architecture and software bus.
INDIGO is not INDI
INDIGO is a separate and independent project. It is not INDI, and it is not a fork, a rewrite
or a branch of it — it was written from the ground up and it is an alternative to INDI.
The two share one thing only, the wire format: INDIGO can fall down to the legacy INDI wire
protocol 1.7, which is what makes INDI drivers and INDI clients usable with INDIGO. Everything
above that line is INDIGO's own. The properties and their items, the API and the architecture
are different: INDIGO is a software bus that drivers, agents and clients attach to, and which
can live in a single process or be distributed over a network, while INDI runs every driver as
a separate process connected by pipes or sockets. INDIGO is designed around scalability,
stability and robustness.
The native client applications of the project are Ain INDIGO Imager on Linux and Windows and
INDIGO A1 on macOS, iOS and iPadOS. Ain is the INDIGO counterpart of what Ekos is in the INDI
world - it is developed by the INDIGO Initiative and shares no code with Ekos.
This is the list of requirements taken into the consideration:
No GPL dependency to allow commercial use under application stores licenses.
ANSI C for portability and to allow simple wrapping into .Net, Java, GOlang, Objective-C or Swift in future
Layered architecture to allow direct linking of the drivers into applications and or to replace wire protocol.
Atomic approach to device drivers. E.g. if camera has imaging and guiding chip, driver should expose two independent simple devices instead of one complex. It is much easier and transparent for client.
Drivers should support hot-plug at least for USB devices. If device is connected/disconnected while driver is running, its properties should appear/disappear on the bus.
FITS, XISF, JPEG, TIFF, RAW, AVI and SER format supported directly by the framework.
This is already done
Framework
INDIGO Bus framework
XML & JSON protocol adapter for client and server side
indigo_server - server with loadable (indigo .so/.dylib and indi executables) drivers
indigo_server_standalone - server with built-in drivers
INDIGO Server for macOS wrapper (provided just as an example)
Integrated HTTP server for BLOB download & server control (= web based INDI control panel)
indigo_prop_tool - command line tool to list and set properties
Drivers
CCD (with wheel, guider, AO and focuser) simulator
Mount simulator
Atik CCD (Titan, 3xx/4xx/One with built in wheel, VS/Infinity, 11000/4000) driver
Atik EFW2 filterwheel driver
SX CCD driver
SX wheel driver
Shoestring FCUSB focuser driver
SSAG/QHY5 CCD driver
ASI wheel driver
IIDC CCD driver
ASI CCD driver
NexStar mount driver (supports Celestron NexStar and Sky-Watcher mounts)
LX200 mount driver (supports Meade, Avalon, Losmandy, 10microns, AstroPhysics, ZWO and PegasusAstro mounts and EQMac)
and connect from any INDIGO/INDI client or web browser to localhost on port 7624...
No pthread_yield()
New linux distributions come with the latest glibc that does not provide pthread_yield() However libqhy.a depends on it. We do not have control over this library and it is not officially supprted by QHY any more. So if you get complaints by the linker for missing pthread_yield call please execute the folowing command in indigo_drivers/ccd_qhy/bin_externals/pthread_yield_compat/: