side project

Luege

Luege is a native tvOS and iOS media player that streams from SMB network shares. Built with SwiftUI, VLCKit, and AMSMB2. But the interesting part is how it was built: almost entirely with agentic AI tools.

What worked

Screenshot tests as a feedback loop. The agent proposes a UI change, takes a simulator snapshot, compares it against a baseline. For UI-heavy work, visual feedback beats reading diffs.

Pre-commit hooks as guardrails. Unit tests before every commit kept things stable even during rapid multi-file changes. Cheaper than debugging a broken build later.

What didn’t

tvOS was rough. iOS output was consistently better. The agent struggled with focus-based navigation and tvOS-specific idioms. Less training data, worse results.

Autonomous runs drifted. Without frequent check-ins, the agent produced functional code that didn’t fit the project’s patterns. Short loops worked best: focused task, review, course-correct, repeat.

Boilerplate was easy, judgment was not. Wiring up standard patterns? Great. Deciding where to draw module boundaries or how to handle edge cases? Still needs a human.

The takeaway

Treat it as a fast pair programmer, not an autonomous developer. The more structure you provide (clear interfaces, automated tests, visual verification), the better the output.