Loop
Runs a prompt on a fixed cadence, skipping a tick while the previous run is still active.
Quick Answer & Overview
Loop is an open-source (MIT) OpenCode V2 plugin by @JadMadi. It resolves: Recurring checks need a timer, but naive timers fire while the last run is still going and pile work up.. Installed via opencode plugin add github:jadmadi/opencode-loop, it operates locally with 0% telemetry.
opencode plugin add github:jadmadi/opencode-loop Local manual setup:
Copy loop.ts into ~/.config/opencode/plugins/ and restart the TUI.
The Problem It Solves
Recurring checks need a timer, but naive timers fire while the last run is still going and pile work up.
Slash Commands
| Command | Description & Usage |
|---|---|
/loop | Register, list, or stop a recurring prompt on a fixed cadence. |
Design Guardrails & Limitations
One loop per session, because the turn-end event names the session, not the run.
Technical Specifications
- Target Host
- OpenCode V2 (CLI & TUI)
- Tested Runtime
- OpenCode
v2.0.16(builtUnder-2.0.16) - Artifact File
loop.ts- Version Scheme
- CalVer (YYYY.MM.MICRO) · Current:
v2026.9.0 - Default Install Path
~/.config/opencode/plugins/loop.ts- License
- MIT (Open Source)
- Last Updated
- 2026-09-25
Frequently Asked Questions
What problem does Loop solve?
Recurring checks need a timer, but naive timers fire while the last run is still going and pile work up.
How do I install Loop in OpenCode V2?
Run the terminal command: `opencode plugin add github:jadmadi/opencode-loop`. The runtime clones the repository into `~/.config/opencode/plugins/loop.ts` and activates it in your next session. Alternatively: Copy loop.ts into ~/.config/opencode/plugins/ and restart the TUI.
What are the guardrails and limitations for Loop?
One loop per session, because the turn-end event names the session, not the run.
What slash commands does Loop provide?
/loop (Register, list, or stop a recurring prompt on a fixed cadence.)