v2.14.0 — Cleanup pass · CI linter · dep refresh
First minor bump since v2.13. No new features — a foundation pass that pays down accumulated debt, adds a Python linter to CI, refreshes dependenci...
- · release
- · ai
- · scenes
Notes
First minor bump since v2.13. No new features — a foundation pass that pays down accumulated debt, adds a Python linter to CI, refreshes dependenci...
Earlier · 27 entries
Small follow-up to v2.13.1. A refresh now lands you on the same tab you were on, and tab URLs are shareable.
Two follow-ups after the v2.13.0 visual identity pass: a regression that had been silently broken for three releases, plus a UX clarification for P...
The admin always shared the ink/paper palette and uppercase tracking-widest register with the marketing site. What was missing was the **commitment...
A polish-and-foundation release. The web UI now feels native on phones (and installs like one), and the codebase finally has a real test suite + CI...
**The Chat tab is now the default landing on the web UI.** Replaces the v2.2-era one-shot interpreter with a proper Claude/ChatGPT-style conversati...
**The web UI now exposes everything the MCP layer does.** Until now the browser interface was built around the v2.2 surface (AI chat + scenes + con...
**Audio-synced cue lists** — the QLab / ETC Ion "cue stack" model. An ordered list of cues with absolute timestamps; press GO and the server fires ...
**Time-based programming has arrived.** QLC+ chases — ordered sequences of saved scenes with per-step timing — are now first-class. Until now every...
**`strobe(rate, intensity?, groups?)`** — first-class abstraction over each fixture's dedicated strobe channel. Agents no longer need to know per-f...
**`palette(assignments)`** — assign different colors or Kelvin values to different groups in a single round trip. The "set the room" primitive.
**`color_temperature(kelvin, intensity?, groups?)`** — agents and operators can now speak in the white-balance terms studio video, photography, and...
**Three new diagnostic primitives** so an agent (or operator) can debug a misbehaving rig without SSHing in. Verify the DMX signal reaches your fix...
**MCP tool catalog grows from 16 → 28.** Twelve new tools across five categories close the biggest gaps from v2.2: agents can now *manage* groups a...
**MCP Server — Connect Claude Desktop, ChatGPT, Cursor, or any MCP-capable agent** to the rig. New `lighting-mcp.service` exposes the entire contro...
**Persistent WebSocket Architecture** — The control server now maintains a single long-lived WebSocket to QLC+ on a dedicated background asyncio lo...
- **Groups drawer**: Groups tab replaced with a slide-out panel, toggled from a button next to the status widget. Each group shows scene template b...
Easily sync your local `.env` configuration to the Pi with a single command:
The Virtual Console now controls your fixtures in **real-time** via QLC+ WebSocket integration!
- **Tabbed Interface**: AI Control, Groups, and Virtual Console tabs
Bidirectional sync between fixture groups and QLC+ workspace.
Organize fixtures into named groups for easier control and management.
Control your lights in real-time using voice or text commands via a beautiful web interface.
Pre-defined templates for common lighting scenarios - fast and predictable without AI.
Generate multiple variations of a scene from a single description and interactively select the best one.
Generate QLC+ lighting scenes from natural language descriptions using AI.
**Auto-Load Default Workspace** - Configure QLC+ to automatically load your workspace on boot, ensuring everyone sees the same control board withou...
- Headless Raspberry Pi lighting controller