
I built a local OpenCode GUI for long-running AI coding tasks
I’ve been building LoopTroop, an open-source local GUI that runs on top of OpenCode.
The reason is pretty specific: OpenCode is already a strong execution layer, but for bigger coding tickets I kept wanting more structure around it. Not a smarter single prompt. More like a full ticket lifecycle around the agent.
https://i.redd.it/djjw22sirlah1.gif
LoopTroop treats an AI coding task as a pipeline:
- Start with a ticket.
- Run an interview to clarify missing requirements.
- Generate a PRD.
- Break the work into small implementation units called beads.
- Execute each bead through OpenCode.
- Retry failed beads with a fresh session and a compact failure note.
- Keep the human in the loop before important transitions and final review.
The main thing I’m trying to solve is context rot. Long agent sessions collect old logs, failed attempts, stale assumptions, and half-fixed code. After a while the model is no longer working from clean intent.
LoopTroop stores the useful parts as durable artifacts instead:
- ticket
- interview answers
- PRD
- bead plan
- acceptance criteria
- validation commands
- retry notes
- logs and final diffs
For planning, it can use an LLM Council. Multiple configured models draft independently, vote on the strongest result, then the winning draft is refined with useful ideas from the others. I use this for the interview, PRD, and bead planning phases.
For execution, OpenCode stays the coding engine. LoopTroop is the orchestration layer around it: project/ticket state, model configuration, phase-specific context, logs, retries, GUI visibility, and review gates.
It is intentionally slower than opening a coding assistant and asking for a patch. For small changes, that is still the better path. This is for the annoying multi-file work where the plan, context boundaries, retries, and review artifacts matter.
GitHub: https://github.com/looptroop-ai/LoopTroop
Full 16-minute demo: https://www.youtube.com/watch?v=LYiYkooc_iY
Any feedback is more than welcome. If you try it with OpenCode and it works, breaks, or feels wrong for your workflow, give me a sign. Happy to talk about it.