lifx
LIFX Light TUI and MCP Server
A gorgeous terminal UI and MCP server for controlling LIFX lights. Built with Charm (Bubble Tea + Lip Gloss) with support for both LAN and Cloud API backends.

Features
- Dual Backend: supports both LAN protocol and LIFX Cloud API.
- Groups & Lights: rooms/groups with per-light controls.
- Brightness, Color, Kelvin: keyboard-driven adjustments.
- Scenes: activate saved scenes via the API backend.
- Search: filter lights by name.
- MCP Server: integrate with AI agents via the Model Context Protocol.
Install
Via Go:
go install github.com/blacktop/lifx@latest
Via Homebrew
brew install blacktop/tap/lifx
Backend selection
- Default is auto: tries API if
LIFX_API_KEY is set, otherwise uses LAN.
- Force backend with
--backend:
lifx --backend lan
lifx --backend api --api-key "$LIFX_API_KEY"
Environment
Get your API key from cloud.lifx.com/settings:
export LIFX_API_KEY=... # Required for API backend and MCP server
Configuration
Customize color presets by creating a config file:
| Platform |
Location |
| macOS |
~/Library/Application Support/lifx/config.yaml |
| Linux |
~/.config/lifx/config.yaml |
| Windows |
%AppData%\lifx\config.yaml |
Example config with custom presets:
presets:
- name: Sunrise
hue: 35
saturation: 80
kelvin: 2500
- name: Daylight
hue: 0
saturation: 0
kelvin: 5500
- name: Red
hue: 0
saturation: 100
kelvin: 3500
- name: Green
hue: 120
saturation: 100
kelvin: 3500
See docs/config.example.yaml for a complete example.
Keybindings
Navigation
| Key |
Action |
j / ↓ |
Move down |
k / ↑ |
Move up |
Tab |
Toggle side panel |
Light Control
| Key |
Action |
Space |
Toggle power |
0-9 |
Set brightness to 10-100% |
h/l |
Decrease/increase brightness |
p |
Cycle color preset |
w/c |
Warmer/cooler temperature |
Group Control
| Key |
Action |
a |
Turn all lights in group on |
x |
Turn all lights in group off |
Other
| Key |
Action |
/ |
Search lights |
s |
Scenes modal |
r |
Refresh |
q |
Quit |
MCP Server
Run lifx as an MCP (Model Context Protocol) server for AI agent integration:
lifx mcp
| Tool |
Description |
list_lights |
List all lights with current state (power, brightness, color) |
set_power |
Turn a specific light on or off |
set_all_power |
Turn all lights on or off |
set_brightness |
Set brightness level (0-100) |
set_color |
Set hue, saturation, brightness, and/or kelvin |
list_scenes |
List all available scenes |
activate_scene |
Activate a scene by ID |
Configuration
claude mcp add lifx -e LIFX_API_KEY=your_api_key -- lifx mcp
codex mcp add lifx --env LIFX_API_KEY=your_api_key -- lifx mcp
gemini mcp add lifx lifx mcp -e LIFX_API_KEY=your_api_key
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"lifx": {
"command": "lifx",
"args": ["mcp"],
"env": {
"LIFX_API_KEY": "your_api_key"
}
}
}
}
Testing
make mcp-test
Notes
- LAN protocol requires lights to be on the same network.
- MCP server and scenes require the LIFX Cloud API (
LIFX_API_KEY).
License
MIT Copyright (c) 2025 blacktop