How the Loop Works
- You provide tasks (inline text, existing note UUID, or resume)
- A green pinned note is created with checkboxes
- Claude starts executing the first task
- The Stop hook intercepts Claude’s exit and loads the next task
- Each completed task auto-checks in SlashNote
- Repeat until all tasks are done or you pause/stop
The Stop hook is the key mechanism — it blocks Claude from exiting while tasks remain.
Modes
New Tasks (Inline)
/note-loop Write tests, Implement feature, Update docs
Creates a green pinned note with checkboxes and starts executing immediately.
From Existing Note (UUID)
/note-loop A550DE30-9B73-4CE5-A138-38F848471329
Reads unchecked checkboxes from an existing note and starts executing them.
Schedule for Later (New Terminal)
/note-loop <uuid> --new-session 2h
/note-loop <uuid> --new-session --sonnet
Opens a new Terminal session with the specified delay. Choose model (Opus, Sonnet, Haiku) and permission mode (plan, acceptEdits, bypassPermissions).
Resume
/note-loop
Finds the existing note-loop note and resumes from unchecked items.
Loop Control
| Command | Effect |
|---|---|
/note-loop pause | Immediate pause — resume later with /note-loop |
/note-loop pause after | Graceful pause — finish current task, then stop |
/note-loop skip <reason> | Skip current task with reason, move to next |
/note-loop stop <reason> | Stop loop entirely, show final summary |
/note-loop list | List all active/scheduled loops |
/note-loop cancel <uuid> | Cancel a scheduled loop |
Every pause/stop action shows a progress summary: Done, Skipped, Remaining with completion percentage.
Safety Mechanisms
| Safety | Description |
|---|---|
| Max iterations | max(30, tasks * 3) — scales with task count |
| Per-task attempts | 3 tries before marking as blocked |
| Pause/stop | /note-loop pause or /note-loop stop at any time |
| State file | JSON state survives session restarts |
| Blocked tasks | Stay unchecked for manual follow-up |
Progress Tracking
A live progress chart on the pinned note shows:
- Done tasks (green)
- Remaining tasks (gray)
The chart updates automatically as the Stop hook processes each task.
Scheduling Menu
When using --new-session without a time, a menu appears:
| Option | Description |
|---|---|
| Run now | Opens new Terminal and starts immediately |
| In 1 minute | Short delay to verify setup |
| In 30 minutes | Finish current work first |
| In 2 hours | Schedule for later |
You can also enter a custom time (1h 30m, at 18:00).
Smart Directory Detection
When scheduling a loop in a new Terminal session, the skill auto-detects the working directory:
- Real directories (e.g.
/Users/you/project) are used directly - Virtual directories (e.g.
/code, Docker paths) are detected and rejected - If the directory can’t be determined, an editable config panel opens in SlashNote where you can set the directory manually
This ensures the new Terminal session always runs in the correct project root.
Existing Config
If a note already has a schedule configuration (from a previous /note-loop run), the skill reuses it:
- Directory, model, and permission mode are preserved
- You can edit any field in the config panel before starting
- The config panel shows the current settings for review
State File
Loop state is stored in .claude/slashnote-loop.local.md (JSON format). This file tracks:
- Active status, current task index
- Completed and blocked task lists
- Iteration count and limits
- Pause/stop reasons and timestamps