Bare /loop ignores .claude/loop.md — shows usage prompt instead

Resolved 💬 1 comment Opened Apr 14, 2026 by LastStep Closed May 25, 2026

Bug

Running /loop with no arguments shows a usage prompt asking what to loop on, instead of picking up .claude/loop.md as documented.

Expected behavior

Per the scheduled tasks docs:

A loop.md file replaces the built-in maintenance prompt with your own instructions. [...] Claude looks for the file in two locations and uses the first one it finds. - .claude/loop.md — Project-level. - ~/.claude/loop.md — User-level.

And the behavior table states:

| What you provide | What happens |
|---|---|
| Interval only, or nothing | The built-in maintenance prompt runs, or your loop.md if one exists |

So bare /loop should either run the built-in maintenance prompt or the custom loop.md.

Actual behavior

Bare /loop prints:

You invoked /loop without a prompt. What would you like me to run on each iteration?

This happens regardless of whether .claude/loop.md exists.

Reproduction

  1. Create .claude/loop.md in a project root (any content)
  2. Run claude from the project root
  3. Type /loop with no arguments
  4. Observe: usage prompt appears instead of executing loop.md

Also tested from a subdirectory — same result.

Environment

  • Claude Code version: 2.1.107 (native, latest)
  • Platform: Linux (WSL2) — Windows host
  • Install method: native
  • Shell: bash

Workaround

/loop follow the instructions in .claude/loop.md works — the model reads and executes the file. But the auto-detection doesn't fire.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗