name: loop description: >- Run a prompt or skill in this session on a recurring or variable interval (e.g. /loop 5m /foo). disabled-environments:
- cloud
Loop
Parse
Accept /loop [interval] <prompt>.
- Leading interval:
5m /foo,30s check status,2h run report. - Trailing interval:
check deploy every 5m,run tests every 10 minutes. - No interval: dynamic mode; the agent chooses the next delay after each run.
- Empty prompt: show
Usage: /loop [interval] <prompt>.
Use intervals like 30s, 5m, 2h, 1d. Convert unit words to short units.
Use monitored shell output to wake the agent for recurring local work.
Fixed Schedule
while true; do
sleep <seconds>
echo 'AGENT_LOOP_TICK_<purpose> {"prompt":"<prompt>"}'
done
- Check existing terminals for an already-running matching loop.
- Start one background shell loop with
notify_on_output. - Use a unique sentinel and a regex such as
^AGENT_LOOP_TICK_<purpose>. - Smoke-check once to confirm clean startup.
- Run the prompt once immediately after arming the loop.
- The first sentinel should arrive only after the initial sleep, so startup does not double-run the prompt.
- Track the PID so the agent can stop the loop if asked.
- Briefly confirm: the interval, that the prompt already ran once, when the first tick will arrive, and that the loop will fire on each tick until stopped. On later ticks, give a short update of what changed. On stop, say the loop has stopped and why.
Dynamic Schedule
The user wants the agent to self-pace. Decide what makes the next iteration worth running — a passage of time, or an observable event.
- Run the prompt now.
- If the next run is gated on an event (a git ref advancing, a log line matching, a file changing, a CI check completing), arm a background watcher that emits the sentinel only when the event fires, with
notify_on_outputon^AGENT_LOOP_WAKE_<purpose>. Arm once; skip on later ticks if it's still running. - At the end of the turn, arm a one-shot time-based wake:
sleep <seconds>
echo 'AGENT_LOOP_WAKE_<purpose> {"prompt":"<prompt>"}'
With a watcher armed, this is the fallback heartbeat — lean long so idle ticks aren't pure overhead. Without a watcher, this is the cadence — pick a delay based on when the result is worth checking again.
- On wake, read the latest payload, execute its
prompt, then re-arm the next heartbeat (and re-arm the watcher only if it exited). If both an output wake and a completion notification arrive, act on the output and ignore the completion. - To stop, kill any watcher PID and don't arm the next heartbeat.
- Briefly confirm: that you're self-pacing, whether a watcher is the primary wake signal, what fallback delay you picked, and that the prompt already ran.
Prompt Payload
Wake notifications include an output file path, not a submitted prompt. Put the prompt beside the sentinel, preferably as JSON. On wake, read the latest matching line and act on its prompt. The prompt may vary by tick.
Guidance
- Title shell commands as
Loop <schedule>: <prompt>(e.g.Loop every 5m: check deploy status). - Adapt loop syntax to the user's shell (e.g. PowerShell
while ($true) { ... Start-Sleep }on Windows). The examples above use bash. - Prefer monitored shell output over OS cron when the agent needs wake notifications; stdout stays attached to the monitored task.
- Use a unique sentinel per loop so unrelated output does not trigger notifications.
- Avoid noisy commands inside the loop.
- Do not create duplicate fixed loops or dynamic sleepers.
- If the user asks to stop, kill any tracked loop/sleeper PID, then await the shell task so its completion notification is consumed and does not wake the agent later. Do not schedule another dynamic wake.
Overview
loop is a free skill on OpenRuna. Run a prompt or skill in this session on a recurring or variable interval (e.g. /loop 5m /foo).
What this skill does
Reach for "loop" whenever you need a reliable skill for real work across ChatGPT, Claude, Gemini, and Cursor. Run a prompt or skill in this session on a recurring or variable interval (e.g. /loop 5m /foo). It is catalogued next to similar resources on OpenRuna, so the rest of the toolkit you need is close by. Open a new conversation and paste it in, wire it into an agent, or keep it in your team's prompt library.
Use cases
- Fork it as a baseline and layer in your own project context, constraints, and examples.
- Keep it in a shared library as the canonical version of this skill for your organisation.
- Combine it with related tools and prompts in the same OpenRuna category to build an end-to-end workflow.
- Reach for it during planning or review sessions when you want consistent, AI-assisted structure.
Example output
Running this skill produces output shaped like the source material below:
# Loop
## Parse
Accept `/loop [interval] <prompt>`.
- Leading interval: `5m /foo`, `30s check status`, `2h run report`.
- Trailing interval: `check deploy every 5m`, `run tests every 10 minutes`.
- No interval: dynamic mode; the agent chooses the next delay after each run.
- Empty prompt: show `Usage: /loop [interval] <prompt>`.
Use intervals like `30s`, `5m`, `2h`, `1d`. Convert unit words to short units.
Use monitored shell output to wake the agent for recurring local work.
## Fixed Schedule
```bash
while true; do
sleep <seconds>
echo 'AGENT_LOOP_TICK_<purpose> {"prompt":"<prompt>…
Results vary by model and temperature; treat the first response as a draft and refine it with follow-up prompts.Tips by platform
Claude
Claude works best when you paste this skill up front and ask it to outline its plan before writing. Use the artifact panel to refine structured output turn by turn.
ChatGPT
For ChatGPT, save this skill as a Custom Instruction or a saved prompt so it is one click away. Add your specifics in a follow-up rather than editing the original.
Cursor
Add this skill to your Cursor rules and invoke it from Agent mode for repeatable results. Link back to its OpenRuna page in the rule so the source stays discoverable.
Frequently asked questions
- What is "loop"?
- It is a skill listed on OpenRuna — Run a prompt or skill in this session on a recurring or variable interval (e.g. /loop 5m /foo). You can copy and adapt it for ChatGPT, Claude, Cursor, or any other AI assistant.
- Is "loop" free to use?
- Most OpenRuna resources are open or CC0-licensed. Check the license shown on this page before commercial use; premium collections are clearly marked as such.
- How do I get the best results from this skill?
- Replace any placeholders, add your project context, and ask the model to confirm its assumptions first. Iterate over 2–3 follow-up turns rather than expecting a perfect first response.
- Does "loop" work with both Claude and ChatGPT?
- Yes — it is model-agnostic text, so it runs on Claude, ChatGPT, Gemini, and Cursor. The tips on this page cover each of those assistants specifically.
- Where can I find resources related to "loop"?
- Scroll to the Related resources section on this page, or open the matching category hub on OpenRuna to find connected prompts, tools, agents, and datasets in the same topic area.
Related resources
- Tool
v0 Prompts and Tools — ReadFile
Reads file contents intelligently - returns complete files when small, paginated chunks, or targeted chunks when large based on your query. **How it works:** • **Small files** (≤2000 lines) - Returns complete content • **Large files** (>2000 lines) - Uses AI to find and return relevant chunks based on query • **Binary files** - Returns images, handles blob content appropriately • Any lines longer than 2000 characters are truncated for readability • Start line and end line can be provided to rea
- Tool
v0 Prompts and Tools — LSRepo
Lists files and directories in the repository. Returns file paths sorted alphabetically with optional pattern-based filtering. Common use cases: • Explore repository structure and understand project layout • Find files in specific directories (e.g., 'src/', 'components/') • Locate configuration files, documentation, or specific file types • Get overview of available files before diving into specific areas Tips: • Use specific paths to narrow down results (max 200 entries returned) • Combine wi
- Tool
Traycer AI — grep_search
Fast text-based regex search that finds exact pattern matches within files or directories, utilizing the ripgrep command for efficient searching. Results will be formatted in the style of ripgrep and can be configured to include line numbers and content. To avoid overwhelming output, the results are capped at 50 matches. Use the include patterns to filter the search scope by file type or specific paths. This is best for finding exact text matches or regex patterns. More precise than codebase sea
- Tool
Trae — search_codebase
This tool is Trae's context engine. It: 1. Takes in a natural language description of the code you are looking for; 2. Uses a proprietary retrieval/embedding model suite that produces the highest-quality recall of relevant code snippets from across the codebase; 3. Maintains a real-time index of the codebase, so the results are always up-to-date and reflects the current state of the codebase; 4. Can retrieve across different programming languages; 5. Only reflects the current state of the codeba
- Tool
Trae — todo_write
Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user. It also helps the user understand the progress of the task and overall progress of their requests.
- Tool
Same.dev — task_agent
Launches a highly capable task agent in the USER's workspace. Usage notes: 1. When the agent is done, it will return a report of its actions. This report is also visible to USER, so you don't have to repeat any overlapping information. 2. Each agent invocation is stateless and doesn't have access to your chat history with USER. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt shou
- Tool
Replit — shell_command_application_feedback_tool
This tool allows you to execute interactive shell commands and ask questions about the output or behavior of CLI applications or interactive Python programs. ## Rules of usage: 1. Provide clear, concise interactive commands to execute and specific questions about the results or interaction. 2. Ask one question at a time about the interactive behavior or output. 3. Focus on interactive functionality, user input/output, and real-time behavior. 4. Specify the exact command to run, including any ne
- Tool
Replit — str_replace_editor
Custom editing tool for viewing, creating and editing files * State is persistent across command calls and discussions with the user * If `path` is a file, `view` displays the result of applying `cat -n`. If `path` is a directory, `view` lists non-hidden files and directories up to 2 levels deep * The `create` command cannot be used if the specified `path` already exists as a file * If a `command` generates a long output, it will be truncated and marked with `<response clipped>` * The `undo_edi
