TinyTask Loop Tutorial: How to Repeat Macros on Loop
Recording a macro is only half the job. The real power of TinyTask comes from looping: replaying that recording 10, 100, or 1,000 times while you do something else. Whether you need to fill forms, process files, or automate clicks for hours, looping is what turns a one-time recording into a genuine productivity tool.
This tutorial covers every looping method TinyTask offers, from simple counted loops to continuous playback, plus the tricks that keep long-running loops stable and reliable.
How Looping Works in TinyTask
When you play a recording in TinyTask, it replays your mouse movements, clicks, and keystrokes in the exact order and timing you recorded them. Looping simply means: when the recording finishes, start it again from the beginning.
Each loop iteration replays the recording identically. TinyTask does not adjust timing, change positions, or modify anything between loops. The recording plays the same way on loop 1 as it does on loop 500. This is both TinyTask’s strength (predictable, consistent) and its limitation (no adaptation to changing conditions).
The most important thing about looping is where your recording starts and ends. The last action of your recording becomes the setup for the first action of the next loop. If your macro ends with the cursor at position (500, 300) and the next loop starts with a click at (500, 300), the transition is seamless. If there is a mismatch, every loop after the first will fail.
TinyTask supports three types of looping:
- Counted loop – plays the recording a specific number of times (1 to 9999)
- Continuous playback – plays indefinitely until you manually stop it
- EXE loop – compile with loop settings baked in, double-click to run
Method 1: Counted Loop (Specific Number of Repeats)
This is the most common looping method. You tell TinyTask exactly how many times to repeat the recording, and it stops automatically when done.
Press Ctrl+Shift+Alt+R to start recording. Perform one complete cycle of your task. Make sure the recording ends with the screen in the same state it was when you started. Press Ctrl+Shift+Alt+R again to stop.
Look for the loop counter next to the playback controls in TinyTask’s toolbar. Click the number field and type the number of times you want the macro to repeat. For example, enter 50 to process 50 records, or 200 for a large batch.
Press Ctrl+Shift+Alt+P or click the Play button. TinyTask will play the recording, then immediately restart it. Each cycle counts down until the loop count reaches zero, then playback stops automatically.
When to Use Counted Loops
- You know exactly how many repetitions you need (e.g., 150 form entries)
- You want the macro to stop automatically when the batch is complete
- You are processing a fixed dataset and need one loop per record
- You want to walk away and come back to a finished task
Method 2: Continuous Playback (Infinite Loop)
Continuous playback repeats the recording forever until you manually stop it. This is useful when you do not know in advance how many repetitions you need, or when the task should run indefinitely.
Click the wrench/gear icon in TinyTask’s toolbar to open Preferences. Look for the “Continuous playback” option and check the box. Some versions display this as a toggle button directly on the toolbar (a circular arrow icon).
Press Ctrl+Shift+Alt+P or click Play. The recording will loop indefinitely. TinyTask’s title bar or status area may show the current loop count as it runs.
Press Ctrl+Shift+Alt+P again to stop. Some versions also stop on Scroll Lock, Pause/Break, or Escape. Keep the stop hotkey ready at all times during infinite loops.
When to Use Continuous Playback
- Monitoring tasks that should run until you decide to stop (e.g., refreshing a page every 30 seconds)
- Idle game automation where the macro runs for hours
- Keeping an application alive by simulating periodic activity
- Testing scenarios where you need to observe behavior over many cycles
Method 3: Loop via Compiled EXE
TinyTask can compile your recording into a standalone .exe file with loop settings baked in. The resulting EXE runs your macro without needing TinyTask installed, and it can include a specific loop count.
Record your macro normally. Save it as a .rec file first as a backup. You can always recompile from the .rec file later if you need different loop settings.
Set your desired loop count in TinyTask’s toolbar before compiling. The compiled EXE will use whatever loop count is active at compile time. For continuous playback, enable the continuous toggle before compiling.
In TinyTask, look for the Compile option (some versions show this under a menu or as a toolbar button). Select it, choose a save location and filename, and TinyTask will create a standalone EXE. The file will be small – typically under 100KB including the recording data.
Double-click the EXE to run. It will immediately start playing the macro with the compiled loop count. To stop a compiled EXE, use the same stop hotkeys (Ctrl+Shift+Alt+P) or close it from the taskbar/Task Manager.
Advantages of Compiled EXE Loops
- No TinyTask installation needed on the target machine
- One double-click to start the entire loop
- Can be shared with coworkers
- Can be launched by Task Scheduler
- Loop settings are permanent
- Cannot change loop count without recompiling
- Cannot edit the recording inside the EXE
- Antivirus may flag unknown EXEs
- Only works on screens with the same resolution
- Larger file than .rec (but still very small)
Method 4: Scheduled Loops with Windows Task Scheduler
For macros that need to run at specific times (daily reports, morning setup routines, periodic data exports), combine a compiled EXE with Windows Task Scheduler.
Set the loop count, compile the EXE, and test it by running it manually. Confirm it starts, loops the correct number of times, and stops cleanly.
Search “Task Scheduler” in the Start menu and open it. Click “Create Basic Task” in the right panel.
Give the task a name (e.g., “Daily Report Macro”). Set the trigger: Daily, Weekly, or One time. Set the start time. Under Actions, choose “Start a program” and browse to your compiled EXE file.
In the Conditions tab, uncheck “Start the task only if the computer is on AC power” if you use a laptop. In the Settings tab, check “Stop the task if it runs longer than” and set a reasonable limit (e.g., 1 hour) as a safety net against runaway macros.
Recording Tips for Reliable Loops
A loop is only as good as the recording it repeats. These recording practices prevent the most common loop failures.
Rule 1: End Where You Started
This is the golden rule of looping. Your recording must end with the screen in exactly the same state as when it started. If you click a “Next” button that changes the screen layout, the second loop will not find the same buttons in the same place. Design your macro so that the last action returns the application to its starting position.
Rule 2: Use Keyboard Navigation
Keyboard shortcuts (Tab, Enter, Arrow keys) are immune to window position changes. A mouse click at pixel (400, 300) fails if the window moves. A Tab keypress moves to the next field regardless of where the window is on screen.
Rule 3: Maximize All Windows
Maximized windows always occupy the same screen area, so mouse coordinates recorded in a maximized window will match during playback. Press Win+Up to maximize before recording.
Rule 4: Add Pauses for Slow Applications
If you click “Save” and the application takes 2 seconds to process, wait those 2 seconds during recording before performing the next action. TinyTask records your wait time and replays it. Without the pause, the loop will try to click the next button before the previous operation finishes.
Rule 5: Keep Recordings Short
Shorter recordings loop more reliably. A 30-second recording looped 100 times is more stable than a 5-minute recording looped 10 times. Long recordings accumulate tiny timing inconsistencies that compound over many loops. If your task takes 5 minutes, try breaking it into shorter sub-tasks and looping each one separately.
Rule 6: Minimize Mouse Movement
Every pixel of mouse movement is recorded. Unnecessary cursor travel between clicks adds to the recording size and creates more opportunities for timing drift. Move the mouse only when you need to click something specific. Use keyboard shortcuts for everything else.
Speed Control and Timing
TinyTask’s speed slider adjusts how fast the recording plays back. This directly affects loop behavior.
| Speed Setting | Effect | Best For | Loop Risk |
|---|---|---|---|
| 0.5x (Slow) | Plays at half speed, doubling all delays | Slow web apps, CRM systems with lag | Low – extra time prevents timing errors |
| 0.8x | Slightly slower than recorded | General-purpose safety margin | Low |
| 1.0x (Normal) | Exact recorded speed | Most tasks; matches your recorded timing | Medium – works if pauses are adequate |
| 1.5x | 50% faster, shortens all delays | Fast local apps (Notepad, file explorer) | Medium-High – reduced wait times |
| 2.0x+ (Fast) | Doubles speed or more | Simple tasks with no app response delay | High – may outrun application processing |
Speed and Loop Count Interaction
Higher speed means each loop finishes faster, which means more loops per hour. But if you increase speed too much, the application cannot keep up and the macro breaks. Here is a practical approach:
- Test at 1.0x speed with 3 loops
- If all 3 loops pass, increase to 1.2x and test again with 3 loops
- Keep increasing by 0.2x increments until you find the maximum stable speed
- Set your production speed 0.1-0.2x below the maximum to add a safety margin
How to Stop a Running Loop
Knowing how to stop a loop quickly is just as important as knowing how to start one. Here are all the ways to stop TinyTask playback, from fastest to last resort.
| Method | How | Speed | Notes |
|---|---|---|---|
| Stop Hotkey | Ctrl+Shift+Alt+P | Instant | Default stop key; customizable in Preferences |
| Pause/Break Key | Press Pause on keyboard | Instant | Works in some TinyTask versions |
| Scroll Lock | Press Scroll Lock | Instant | Alternative stop key in some versions |
| Security Screen | Ctrl+Alt+Delete | 1-2 seconds | Pauses all foreground automation; use if hotkey fails |
| Task Manager | Ctrl+Shift+Esc then End Task | 3-5 seconds | Force-closes TinyTask entirely |
| Lock Screen | Win+L | Instant | Locks PC; TinyTask cannot click through lock screen |
Fixing Loops That Break
Loop Works Once Then Fails on Repeat
Cause: The recording does not return the screen to its starting state. After the first cycle, the application is in a different state than when recording began.
Fix: Add actions at the end of your recording that navigate back to the starting position. For example, if you are filling a form and clicking “Submit,” add actions that navigate back to a blank form after submission.
Timing Drift After Many Loops
Cause: TinyTask’s playback adds tiny timing discrepancies (fractions of a second) per action. Over hundreds of loops, these accumulate. A Reddit user reported a 4-minute-48-second recording gaining an extra minute after many loops.
Fix: Minimize unnecessary mouse movements during recording. Each mouse movement event adds a timing data point that can drift. Use keyboard shortcuts instead of mouse clicks. Keep recordings under 2 minutes and rely on the loop count for volume.
Clicks Miss Their Targets After Loop 10+
Cause: The target application’s UI shifts slightly after processing multiple records. Scroll positions change, new elements appear, or the window resizes due to content changes.
Fix: Add a “reset” action at the end of each cycle. Scroll back to the top (Ctrl+Home), click a fixed navigation element, or press Home to return to a known position. Run in smaller batches (20-50 loops) and manually verify between batches.
Macro Suddenly Starts Typing in Wrong Window
Cause: A notification, dialog box, or Windows update pop-up stole focus from the target application between loops.
Fix: Enable Focus Assist (Windows 10/11) before running loops. Close all applications except TinyTask and the target app. Disable scheduled notifications and updates during macro runs.
Compiled EXE Does Not Loop
Cause: The loop count or continuous playback setting was not active when you compiled the EXE.
Fix: Open TinyTask, load the .rec file, set the loop count or enable continuous playback, then compile again. The EXE captures whatever settings are active at compile time.
Loop Runs But Application Freezes
Cause: The macro runs faster than the application can process. Each loop sends inputs before the previous loop’s actions finish processing.
Fix: Reduce playback speed to 0.8x or lower. Re-record with longer pauses after heavy operations (saving, loading, submitting). If the application consistently freezes after N loops, run N-5 loops, wait for the application to catch up, then start another batch.
5 Real-World Loop Examples
Data Entry: 200 Form Submissions
Recording: Tab to first field, type data, Tab to next, type, Tab, type, click Submit, wait 2 seconds. 45 seconds per cycle. Loop: 200 counted loops. Speed: 1.0x. Total time: ~2.5 hours unattended.
Idle Game: Overnight Click Farming
Recording: Click resource button, wait 1 second. 2 seconds per cycle. Loop: Continuous playback. Speed: 1.5x. Duration: Runs all night until manually stopped in the morning.
Page Refresh: Monitor a Website
Recording: Press F5, wait 30 seconds. 31 seconds per cycle. Loop: Continuous playback. Speed: 1.0x. Use: Monitoring a dashboard or waiting for a product to come back in stock.
File Processing: Rename 500 Files
Recording: Click file, press F2, type prefix, press Enter, arrow down to next file. 4 seconds per cycle. Loop: 500 counted loops. Speed: 1.2x. Total time: ~28 minutes.
Related Articles
Morning Setup: Open Daily Apps
Recording: Open browser, navigate to dashboard, open email client, open project management tool, arrange windows with Win+Arrow keys. 30 seconds total. Loop: 1 (no looping needed). EXE: Compiled, pinned to taskbar, double-click every morning.
Frequently Asked Questions
What is the maximum number of loops TinyTask supports?
TinyTask’s loop counter typically supports values from 1 to 9999 in the standard interface. For anything beyond that, use the continuous playback option instead, which loops indefinitely until manually stopped.
In practice, the limiting factor is not TinyTask but the target application and your computer’s stability over time. After thousands of loops spanning several hours, you may encounter:
- Memory buildup in the target application causing slowdowns
- Timing drift accumulating to the point where clicks miss their targets
- Windows updates or background processes interrupting the macro
For very high loop counts (500+), run in batches of 100-200 with manual verification between batches. This catches problems early and prevents large-scale data issues.
Can I add a delay between loops?
TinyTask does not have a dedicated “delay between loops” setting. However, you can achieve the same effect by building the delay into your recording.
At the end of your recording, simply wait for the desired delay time before stopping the recording. For example, if you want 5 seconds between loops:
- Perform your task actions
- When the task actions are complete, wait 5 seconds (do nothing)
- Stop recording
The 5-second wait becomes part of the recording and replays at the end of every loop, creating a gap between cycles. You can adjust this effective delay by changing the playback speed: at 2x speed, a recorded 5-second pause becomes 2.5 seconds.
For more precise timing control, consider using AutoHotkey, which has a dedicated Sleep command that can insert exact delays between loop iterations.
How do I loop a TinyTask macro overnight?
Running a macro overnight requires a few extra precautions beyond normal looping:
Before starting:
- Disable Windows sleep and screen timeout: Settings > System > Power & Sleep > set all timers to “Never”
- Disable screen saver: it can interrupt macro focus
- Enable Focus Assist to block notifications
- Plug in your laptop (battery saving mode throttles performance)
- Close all unnecessary applications to prevent pop-ups
- Disable Windows Update automatic restart: Settings > Windows Update > Advanced options > set active hours
Looping setup:
- Use continuous playback or set the loop count high enough to cover the full night (calculate: hours needed x loops per hour)
- Set playback speed to 0.8x-1.0x for maximum stability
- Test with 10 loops first while watching, then start the overnight run
In the morning: Check the target application to see how far the macro got. If it ran all night without errors, the last record entered should match your expected count. If it stopped early, check for pop-ups, errors, or timing drift.
Why does my loop work 10 times then break?
This is the most common loop problem. It almost always means the application’s state changes after N cycles in a way your recording does not account for. Common causes:
- Scroll position drift: After entering 10 rows, the spreadsheet scrolls down and buttons move out of their original positions. Fix: add Ctrl+Home at the end of each cycle to reset scroll position.
- Pagination: A web app shows 10 records per page. After 10 entries, a “Next Page” button appears or the form moves to page 2. Fix: break the macro into page-sized batches.
- Confirmation dialogs: Some apps show a “Are you sure?” dialog after every 10th save, or an “Auto-save complete” notification. Fix: record one extra cycle that handles the dialog, or increase the loop’s built-in pause to wait for the dialog to auto-close.
- Session timeout: Web applications sometimes refresh the session after a certain number of actions. Fix: add a page refresh (F5) periodically, or run shorter batches.
The fix is almost always: add a “reset” step at the end of your recording that forces the application back to a known state, regardless of how many cycles have run.
Can I nest loops (loop within a loop) in TinyTask?
TinyTask does not support nested loops directly. It has one recording and one loop counter. You cannot create an inner loop that runs 5 times within an outer loop that runs 10 times.
Workarounds for nested-loop behavior:
- Record the inner loop manually: If your inner loop is 5 iterations, perform all 5 during recording. Your recording now contains one complete outer-loop cycle with 5 inner iterations baked in. Set TinyTask’s loop counter for the outer loop count.
- Chain compiled EXEs: Create one EXE for the inner task (set to loop 5 times), then record a second macro that launches the first EXE, waits for it to finish, then does the outer-loop setup. Loop the second macro.
- Use AutoHotkey: For genuine nested loops with variable iteration counts, AHK’s
Loopcommand supports nesting:Loop 10 { Loop 5 { ... } }
For most practical purposes, recording the inner loop as part of the macro and looping the outer cycle is sufficient and much simpler than trying to simulate nested loops.
Does looping use more memory or CPU?
TinyTask itself uses almost no memory or CPU regardless of how many loops run. The entire program is 36KB, and its memory footprint stays constant whether it has looped 1 time or 10,000 times. It does not accumulate data between loops.
However, the target application may accumulate resource usage:
- Browsers: Each page reload or form submission can increase memory usage. After hundreds of loops, Chrome or Firefox may use significantly more RAM.
- Spreadsheets: Adding rows to large Excel files increases memory usage linearly.
- CRM/ERP systems: Some enterprise applications cache data locally, growing memory usage over many operations.
If you notice the target application slowing down after many loops, stop the macro, close and reopen the application, then resume. This clears accumulated memory and restores normal performance.
How do I make TinyTask loop faster?
There are two ways to speed up loops: increase playback speed and optimize your recording.
Increase playback speed:
- Move the speed slider to the right (1.2x, 1.5x, 2x)
- Test at each speed level with 3 loops before committing
- Maximum safe speed depends on the target application’s response time
Optimize the recording:
- Remove unnecessary mouse movements: move directly between click targets
- Use keyboard shortcuts instead of menu navigation
- Reduce wait times to the minimum the application needs
- Avoid scrolling when keyboard navigation can reach the same element
A well-optimized recording at 1.5x speed can be 3-4 times faster than a sloppy recording at 1.0x speed. The recording quality matters more than the playback speed.
Can I pause a loop mid-cycle and resume later?
TinyTask does not have a pause/resume function. When you stop playback, the macro stops wherever it is in the cycle. Restarting playback begins from the start of the recording, not from where it stopped.
Workarounds:
- Plan your stop points: Watch the macro and stop at the end of a complete cycle rather than mid-cycle. This way, restarting the loop picks up cleanly.
- Track your progress: If you are processing 200 records and need to stop at record 50, note that you completed 50 loops. When resuming, set the loop counter to 150 for the remaining records.
- Use the lock screen trick: Pressing Win+L locks the PC and stops TinyTask from sending inputs, but does not close TinyTask. When you unlock, TinyTask may still be in the “playing” state. The macro effectively pauses, but the resume behavior is not reliable across all versions.
For tasks that genuinely need pause/resume, AutoHotkey scripts can implement this with a toggle hotkey that pauses and resumes mid-execution while maintaining state.
Is there a way to loop different macros in sequence?
TinyTask can only play one recording at a time and does not support chaining multiple recordings in sequence. However, you can achieve sequential execution with these approaches:
- Record everything as one macro: Instead of separate recordings for Task A and Task B, record one continuous session that does Task A then Task B. Loop this combined recording.
- Chain compiled EXEs with a batch file: Compile each macro as an EXE, then create a Windows batch file (.bat) that runs them in sequence:
start /wait TaskA.exestart /wait TaskB.exe
The/waitflag ensures each macro finishes before the next one starts. - Use Task Scheduler: Schedule Macro A to run at 9:00 AM and Macro B to run at 9:30 AM (with enough gap for Macro A to finish).
The batch file approach is the most flexible since it runs macros in strict sequence regardless of how long each takes.
My loop count resets every time I open TinyTask. How do I save it?
TinyTask’s loop count setting may not persist between sessions depending on your version. The most reliable way to save loop settings permanently is to compile the macro to an EXE with the loop count set.
Steps:
- Open TinyTask and load your .rec file
- Set the loop count to your desired number
- Compile to EXE
- The EXE now has the loop count baked in and will always use it
If you need to change the loop count frequently, keep the .rec file and set the loop count manually each time you run it. Alternatively, create multiple compiled EXEs with different loop counts (e.g., “FormEntry-50loops.exe” and “FormEntry-200loops.exe”) for your most common batch sizes.
Ready to Put Your Macros on Loop?
Download TinyTask and automate repetitive tasks with counted loops, continuous playback, or compiled EXEs. Free, portable, 36KB.
Download TinyTask