Back to Blog
Guide

Mouse Jiggler for Mac: Free Apps, USB Jigglers and a Terminal Script

The working ways to jiggle the mouse on a Mac: the free Jiggler app, App Store movers, a USB jiggler, and a one-line cliclick script. What each needs, what IT can see, and why a jiggler keeps Teams green but not always Slack.

Slack Green Team
September 23, 2026
October 7, 2026
7 min read
Share:
mouse jiggler
mac
slack presence

A mouse jiggler for Mac moves your pointer every so often so macOS, and apps like Microsoft Teams, see input and do not mark you idle. The free options that work on current macOS are Jiggler from Stick Software (open source, brew install --cask jiggler), Mouse Jiggler - Mouse Mover from the Mac App Store, a USB hardware jiggler, or a one-line Terminal script with cliclick. Jiggler and cliclick ask for Accessibility permission. None of them work with the lid closed or the screen locked. We measured on macOS 26.5.2 what resets the idle timer that Teams reads: a 1-pixel synthetic move did, every time, and caffeinate did not.

Keep-awake apps such as Amphetamine, KeepingYouAwake, and the built-in caffeinate are a different tool. They stop your Mac from sleeping, but they do not move the pointer, so your status still goes idle. Setup for USB and turntable jigglers, and a ten-minute test, is in how to use a mouse jiggler.

Mac mouse jigglers compared

OptionPriceInstallNeeds AccessibilityWhat IT can see
Jiggler (Stick Software)Free, open source (GPL)brew install --cask jiggler or downloadYesAn app process
Mouse Jiggler - Mouse MoverFree, with in-app purchasesMac App StoreYesAn app process
USB hardware jigglerAbout $15 to $35Plug it inNoA USB input device
cliclick scriptFreebrew install cliclickYes, for TerminalA Terminal process
Amphetamine, KeepingYouAwake, caffeinateFreeApp Store, Homebrew, or built inNoNothing moves the pointer

Jiggler is the long-standing free choice. Its developer describes it as "a little freeware app with one purpose: to keep your Mac awake". It can jiggle only after the Mac has been idle for a set time, only while a chosen app runs, or only while the machine is busy. Version 1.10 added support for macOS 26 Tahoe. The source is on GitHub at bhaller/Jiggler.

Mouse Jiggler - Mouse Mover is a free App Store app with movement styles and a schedule. Buy from the App Store if your work Mac only allows App Store installs.

A USB jiggler is a small device that shows up as a mouse and moves the pointer by a pixel or two. No software, no permission prompt. On a Mac without USB-A ports you need a USB-C model or an adapter.

Set up Jiggler

  • Install it with Homebrew, or download it from sticksoftware.com:
  • brew install --cask jiggler

  • Open System Settings, then Privacy & Security, then Accessibility, and turn Jiggler on. Without this, macOS blocks the pointer movement.
  • In Jiggler's settings, choose when it jiggles. "Only when idle" keeps it out of your way while you work.
  • Leave the Mac for 10 minutes and check your status from your phone.
  • A free Mac jiggler in one line of Terminal

    If you would rather not install an app, cliclick moves the pointer from the command line. This loop moves the pointer one pixel right and back every 60 seconds: The same tool clicks too; auto clicker for Mac shows the click commands and the other free Mac clickers.

    brew install cliclick
    while true; do cliclick m:+1,+0 m:-1,+0; sleep 60; done

    Press Ctrl + C to stop it. The first run asks you to allow Terminal (or iTerm) in Accessibility. A C version of the same idea is on GitHub as joiellantero/macos-mouse-jiggler-c.

    To keep the Mac awake as well, run it under caffeinate, which ships with macOS:

    caffeinate -d -i sh -c 'while true; do cliclick m:+1,+0 m:-1,+0; sleep 60; done'

    Our test: what resets the Mac idle timer

    macOS keeps one idle counter for the whole machine, HIDIdleTime in the IOHIDSystem registry, in nanoseconds since the last keyboard, mouse or trackpad input. Apps that mark you away after a few idle minutes, such as Microsoft Teams, read this counter. You can watch it in Terminal:

    ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {printf "%.1f s\n", $NF/1000000000; exit}'

    On 5 October 2026 we ran three things on a MacBook running macOS 26.5.2 and read the counter right before and right after each one:

    What we ranIdle beforeIdle afterReset?
    1-pixel synthetic pointer move, right and back35.1 s1.0 sYes
    The same move, second run17.5 s1.1 sYes
    The same move, third run6.1 s1.0 sYes
    caffeinate -d -i -t 10 (keep display and system awake)25.0 s35.0 sNo
    caffeinate -d -i -t 15.2 s6.3 sNo
    caffeinate -u -t 1 (declare the user active)11.2 s12.3 sNo

    Other agents were using the same Mac, so the counter sometimes dropped between runs; the before and after readings in each row are about a second apart. Even caffeinate -u, whose manual page says it declares that the user is active, left HIDIdleTime counting on this macOS version. The manual page says it turns the display on if it is off; an app that reads the idle counter still sees you idle.

    The pointer move came from this Swift program. It posts a mouse-moved event 1 pixel right and then back, so the pointer ends where it started:

    import CoreGraphics
    import Foundation
    
    let pos = CGEvent(source: nil)!.location
    let src = CGEventSource(stateID: .hidSystemState)
    for dx in [1.0, 0.0] {
      let e = CGEvent(mouseEventSource: src, mouseType: .mouseMoved,
                      mouseCursorPosition: CGPoint(x: pos.x + dx, y: pos.y),
                      mouseButton: .left)!
      e.post(tap: .cghidEventTap)
      usleep(200_000)
    }

    Save it as jiggle.swift, build it with swiftc jiggle.swift -o jiggle, and run ./jiggle from a loop such as while true; do ./jiggle; sleep 60; done. In our test the process was not in the Accessibility list (AXIsProcessTrusted() returned false) and the move still reset the counter. Keyboard events and clicks are a different case, and apps like Jiggler ask for the permission anyway.

Never appear "away" on Slack again

Cloud-based. No downloads. Works 24/7 even when your laptop is off.

Jiggler vs keep-awake app

A mouse jiggler creates input; a keep-awake app only stops sleep

Keeping the Mac awake and making it look used are two jobs:

  • • A keep-awake app stops sleep and the screen saver. It sends no input, so the macOS idle time keeps counting. Teams still goes to Away after a few idle minutes, and Slack after 10. We tested this in does Amphetamine keep Slack active and does Caffeine keep Slack active.
  • • A mouse jiggler sends input. Apps that read the system idle time, such as Microsoft Teams, see you as active. See how to keep your Teams status Available.
  • The full Teams setup for a Mac is in how to keep Teams active on a Mac.

    If you only want to keep the Mac awake without a jiggler, caffeinate -d in Terminal or KeepingYouAwake from the menu bar does that.

    Does a Mac jiggler keep your Slack dot green?

    Only in one case. The Slack desktop app counts input anywhere on the Mac (Slack desktop 4.52.178 code, checked 7 Oct 2026). A jiggler that moves the pointer over your browser or your editor keeps the Mac awake and lets Slack go grey after 10 minutes. It helps wherever the pointer sits, until the screen locks or the lid closes. The rules are in how Slack decides when you are away.

    Some guides say every presence app reads macOS idle time. For Teams that holds. For the Slack desktop app it does too, while the Mac is awake and unlocked.

    If you want the dot green with the lid closed, Slack Green keeps your Slack session active on its own side during the working hours you pick, and nothing runs on your Mac. The full comparison is in a server-side presence tool vs mouse jigglers, and every other method is in how to keep Slack active on Mac.

    Can your employer see a Mac jiggler?

    On a managed Mac, IT tools can list running apps, so a software jiggler shows up by name. A USB jiggler shows up as an extra input device in the system report. Some monitoring tools also flag input that repeats on a perfect rhythm. What each kind of tool can see is in can a mouse jiggler be detected, and a mechanical mover, which never connects to the Mac, is compared with the other types in the best mouse jiggler.

    FAQ

    What is the best free mouse jiggler for Mac?

    Jiggler from Stick Software. It is free, open source, installs with brew install --cask jiggler, and supports macOS 26 Tahoe as of version 1.10. If your Mac only allows App Store apps, use Mouse Jiggler - Mouse Mover.

    Is there a mouse jiggler for Mac on GitHub?

    Yes. Jiggler's source is at bhaller/Jiggler, and joiellantero/macos-mouse-jiggler-c is a small C program that moves the pointer every 60 seconds.

    Does a mouse jiggler work with the lid closed?

    No. A closed lid or a locked screen stops input from reaching apps, and Slack and Teams set you to Away.

    Is there an online mouse jiggler?

    A web page cannot move your Mac's pointer. Browser "jiggler" pages can at most keep the screen on while their tab is open. They do not reset idle time in Slack or Teams.

    How do I keep my Mac awake without a mouse jiggler?

    Run caffeinate -d in Terminal, or use KeepingYouAwake or Amphetamine. They stop sleep but do not keep your Slack or Teams status active.

    Why does my Mac jiggler not work anymore?

    Check Privacy & Security, Accessibility. After an app update, macOS may ask you to allow it again. Without the permission the app runs but cannot move the pointer.

    Always Active

    Stop Jiggling Your Mouse.

    Join hundreds of remote workers who never worry about their Slack status. Set it up once, stay green forever.

    Related Articles

    Guide

    Slack Bot Scopes: The Scope Each API Method Needs, Measured on 44 Methods

    We gave a Slack bot one scope, called 44 common Web API methods, and read the needed field of every missing_scope error. Then we added the scopes and called them again. The table shows which scope clears each method.

    Slack Green Team
    Guide

    Slack File Size Limit: 1 GB Is Exactly 1,073,741,824 Bytes, Tested

    We uploaded files of 50 MB, exactly 1 GiB and 1 GiB plus one byte to Slack through its upload API. The limit is 1,073,741,824 bytes, and a failed upload can still leave a broken file behind.

    Slack Green Team
    Guide

    Slack Dark Mode: Where the Setting Is, and Which Custom Emoji Disappear

    Slack's dark mode is under Preferences > Appearance > Color Mode, with Light, Dark and System. We switched modes in Slack web with three test emoji and measured which ones vanish.

    Slack Green Team