-
Notifications
You must be signed in to change notification settings - Fork 2
Home
AI-powered development assistant for Indigo home automation. This Claude Code plugin gives you expert guidance for building Indigo plugins, integrating with the Indigo API, and creating control pages — all from your terminal.
This is a plugin for Claude Code (Anthropic's AI coding assistant). When installed, it gives Claude deep knowledge of Indigo's plugin SDK, API, and control page system. Think of it as having an Indigo development expert available in your terminal.
- Plugin Development — Create new plugins, add device types, implement lifecycle methods, debug issues
- API Integration — Build iOS/web apps that connect to Indigo via WebSocket or HTTP
- Control Pages — Design and export control page XML with device controls and layouts
- Claude Code CLI installed
- An Indigo server (for testing plugins you build)
claude plugin add simons-plugins/indigo-claude-pluginThat's it. The plugin auto-activates when you're working on Indigo-related files.
Use these slash commands in Claude Code to invoke specific capabilities:
Your main command for building Indigo plugins. Provides:
- Quick Start Guide — Create your first plugin step by step
-
Plugin Lifecycle —
__init__,startup,shutdown,runConcurrentThread -
Device Design —
Devices.xml, ConfigUI fields, custom states -
Plugin Preferences —
PluginConfig.xml,pluginPrefs, validation -
Custom Events —
Events.xml, trigger definitions -
API Reference — Complete Indigo Object Model (IOM) split into focused topics:
- Architecture, Command Namespaces, Device Classes
- Trigger Classes, Filters, Subscriptions, Constants
-
16 SDK Example Plugins — Working code for every device type:
- Custom Device, Relay/Dimmer, Thermostat, Sensor
- Speed Control, Sprinkler, Energy Meter
- HTTP Responder, Action API, Broadcaster/Subscriber
- Variable Subscriber, Database Traverse
- Troubleshooting — Common issues and debugging techniques
- Patterns — API patterns, open-source contributing guide
Example usage:
> /indigo:dev
> "Create a plugin that monitors my UPS battery level"
For building client applications (iOS, web, etc.) that connect to Indigo:
- WebSocket API — Real-time device updates, command execution
- HTTP API — RESTful device control, variable management
- Authentication — Local and reflector authentication methods
- Device Commands — Control lights, thermostats, sprinklers remotely
Example usage:
> /indigo:api
> "How do I connect to Indigo via WebSocket from a Swift iOS app?"
Guided creation of Indigo control page XML:
- Schema Reference — All available control types and attributes
- Image Library — Built-in Indigo control page images
- Layout Guidance — Positioning, sizing, font selection
-
Export — Generate
.textClippingfiles for drag-and-drop import
Example usage:
> /indigo:control-pages
> "Build a control page for my living room with light controls and thermostat"
You don't always need to type a command. The plugin automatically activates when Claude detects you're working on relevant files:
| Skill | Triggers On |
|---|---|
| Plugin Development |
.indigoPlugin/ directories, plugin.py, Devices.xml, Actions.xml
|
| API Integration | WebSocket/HTTP integration code targeting Indigo |
| Control Pages | Control page XML, .textClipping files |
# Good
"Create a sensor plugin that reads temperature from a REST API every 5 minutes"
# Less helpful
"Make a plugin"
Indigo has specific device types with their own behaviors:
- Relay — On/off switches
- Dimmer — Lights with brightness
- Thermostat — HVAC with heat/cool setpoints
- Sensor — Read-only values (temperature, humidity, motion)
- Sprinkler — Multi-zone irrigation
- Speed Control — Fan speed levels
- Custom — Anything else with custom states
"Show me the SDK example for a thermostat device"
"How does the HTTP Responder example handle web requests?"
"My plugin's runConcurrentThread keeps crashing — here's the error"
"Why isn't my device state updating in Indigo?"
The plugin includes comprehensive offline documentation:
docs/
├── plugin-dev/
│ ├── quick-start.md # Getting started guide
│ ├── concepts/
│ │ ├── plugin-lifecycle.md # Lifecycle methods
│ │ ├── devices.md # Device types & ConfigUI
│ │ ├── plugin-preferences.md # Plugin prefs
│ │ └── events.md # Custom triggers
│ ├── api/
│ │ ├── indigo-object-model.md # API overview
│ │ └── iom/ # Modular IOM reference
│ ├── patterns/
│ │ └── api-patterns.md # Common patterns
│ ├── examples/
│ │ └── sdk-examples-guide.md # Example catalog
│ └── troubleshooting/
│ └── common-issues.md # Debugging guide
├── api/
│ ├── websocket-api.md # WebSocket reference
│ ├── http-api.md # REST API reference
│ ├── authentication.md # Auth methods
│ └── device-commands.md # Command reference
└── control-pages/
├── schema/ # XML schema docs
├── images/ # Built-in image catalog
├── layouts/ # Layout patterns
└── export/ # Export tooling
- Indigo Home Automation — The platform
- Plugin Developer's Guide — Official docs
- Object Model Reference — API reference
- Developer Forum — Community support
- Claude Code — The AI coding assistant
Found an issue or want to improve the documentation? PRs welcome at simons-plugins/indigo-claude-plugin.