Tool

CPS, milliseconds and clicks per minute calculator

To turn clicks per second into milliseconds, divide 1000 by the CPS: 10 CPS is a 100 ms gap, 20 CPS is 50 ms, and 15 CPS is 66.7 ms. Type any one number below and the other two follow, along with the value to type into an auto clicker and what InputConfig will really send on your Mac. The click test further down measures your own CPS and turns it into a setting.

Type in any one box.

Or start from a row of the built-in Auto Clicker preset:

What InputConfig sends, with the row's other two settings.

ms either way
presses (0 keeps going)

Work it out by hand

Every conversion on this page is one division. Clicks per second and milliseconds are two ways of writing the same gap:

  • Milliseconds from CPS. Divide 1000 by the clicks per second. 8 CPS is 125 ms.
  • CPS from milliseconds. Divide 1000 by the gap. 40 ms is 25 CPS.
  • Clicks per minute from CPS. Multiply by 60. 10 CPS is 600 clicks a minute.
  • Milliseconds from clicks per minute. Divide 60,000 by the clicks per minute. 120 a minute is 500 ms.

An auto clicker's gap field usually takes whole milliseconds, so a speed that does not divide 1000 evenly gets rounded. 15 CPS is 66.67 ms: type 67 and you get 14.9 a second, or 66 and you get 15.2. Round to the nearest whole millisecond and you are within a tenth of a click a second of the speed you wanted.

Look up a common speed

The first four columns hold for any auto clicker. The last three are what one InputConfig row really sends at each polling rate, which is where fast speeds part ways with the number you typed.

Clicks per secondGap in msType in EveryClicks per minuteAt 60 Hz (battery)At 120 Hz (power adapter)At 240 Hz
11000100060111
2500500120222
4250250240444
5200200300555
8125125480888
10100100600101010
1283.3383720121212
1566.676790014.914.914.9
2050501,200202020
2540401,500252525
3033.33331,80030.330.330.3
4025252,400404040
5020203,000505050
6016.67173,60058.858.858.8
10010106,00060100100
1208.3387,20060120125
2005512,00060120200

Up to 50 a second, all three columns agree. Above 60 a second, the power source matters more than the number you type.

Why a row can click slower than its number

InputConfig checks its controls a set number of times a second, and a row sends at most one click each time. That number is the polling rate, in Settings, Advanced, Polling rate. With Auto-switch on power source on, which is the default, it runs at 120 Hz on a power adapter and 60 Hz on battery. You can pick 60, 120, 180 or 240 Hz for each, and while a preset runs, a line in that section reads Engine running at 120 Hz or whatever the real rate is.

So a row set to 10 ms asks for 100 clicks a second, and on battery it sends about 60. Every also has a floor of 5 ms, and a ceiling of 60,000 ms, so one row clicks anywhere from once a minute to 200 times a second. The app's own note on battery holds here too: a lower rate on battery lasts longer. The fastest InputConfig row is 200 clicks a second: Every at 5 ms with the polling rate at 240 Hz.

Speed has a second limit that no auto clicker controls: the app on the other end. Many apps and games read clicks at their own pace and may drop the ones that come faster. InputConfig sends every click as its own single click, never chained into a double or triple click, but it cannot make an app count them.

Put the number in InputConfig

The quickest start is the built-in Auto Clicker preset, in the Desktop & Productivity folder. Activate it and fn F6 starts and stops left clicks at 10 a second, fn F7 does the same with right clicks at 5 a second, and on a controller the right trigger starts and stops left clicks. The fn matters on a MacBook, because the top-row keys send their system jobs without it. To change a speed, or to build a row of your own, it takes three steps.

Step 1: Choose how the row fires

  • You: Open the preset in the editor, click Options on the row that clicks, and in the How it fires box choose Repeats until pressed again. Choose Repeats while held instead if it should click only while you hold the control.
  • InputConfig: Shows three fields under the menu: Every, Vary by up to, and Stop after.
  • Check: The line under the menu reads Press once to start the output firing over and over, and press again to stop it.

Step 2: Type the gap

  • You: Type the calculator's Type in Every value into Every.
  • InputConfig: Keeps it between 5 and 60,000 ms and shows the rate it works out to beside the field.
  • Check: The rate in brackets, such as (14.9 per second), matches the calculator's line.

Step 3: Add variation and a limit

  • You: Set Vary by up to if you want an uneven pace, and Stop after if the run should end by itself. Close the editor, then start the run with the pointer over the click test box below.
  • InputConfig: Draws a new random gap after every click, and ends the run after that many presses. 0 keeps going until you press again.
  • Check: The click test reads close to the calculator's real rate. I would expect a small difference, because the browser adds timing noise of its own.

Close the editor before you test, because opening it ends every run. Set Stop after on long runs, so a run can never outlast your attention. If a run does get away, the emergency stop ends everything at once: Control Option Command period, or hold Back and Start together on a controller for three seconds. It is on the emergency stop page.

Test your clicking speed

Click the box as fast as you can. The timer starts on your first click and stops on its own. Space or Return works too, one press per click; holding a key down does not count.

0 clicks, 5.0 s left

How the test becomes a setting

The test keeps the time of every click and works out two numbers from them:

  • Every, from your average gap. The time from your first click to your last, divided by the gaps between them. A 7.4 CPS run comes out near 135 ms.
  • Vary by up to, from your spread. How far your gaps strayed from that average, as a standard deviation, times 1.73. A random spread of that width, plus or minus, strays by the same amount on average as you did.

Your own rhythm is not evenly random, so the match is in size, not in shape. The suggestion also keeps Vary by up to small enough that InputConfig never has to raise a short gap. A human pace is a comfort setting, not a disguise. Variation changes how a run feels and sounds. It does not hide an auto clicker from a game or site that looks for one, and I would not count on it to.

Pick a pace for the job

These are my starting points, chosen for comfort and for what the built-in preset uses. They are choices, not measured thresholds for any app or game.

  • One a second or slower. Steady jobs where each click has to land and finish: a Next button, a page that reloads, a slow repeated test of a form.
  • 5 to 10 a second. Most clicking jobs, and clicker games in a browser. The preset's triggers sit here, 10 a second on the right and 5 on the left.
  • 15 to 20 a second, held. Short bursts. The preset's mouse side button clicks 15 a second and the right bumper 20, both only while held.
  • 50 and up. Mostly for testing how an app copes. Many apps drop or merge clicks this fast, so I would not expect every one to count.

Start slower than you think, and speed up only when the job needs it.

If the rate looks wrong

A row that clicks slower than this page says nearly always has a reason you can see. Climb this ladder, smallest step first:

  1. Check the power source. On battery the default polling rate is 60 Hz, so anything above 60 a second is held to 60. Plug in, or raise On battery in Settings, Advanced, Polling rate.
  2. Read the engine's real rate. With a preset running, the Polling rate section shows Engine running at, then the rate in Hz. That is the ceiling for every row.
  3. Close the editor. Opening the preset editor ends every run, so test with it closed.
  4. Lower Vary by up to. Up to half of Every is fine for any gap of 20 ms or more. Past about 60 percent, the shortest gaps get raised and the run averages slower than Every. The Gaps line in the calculator shows when that happens.
  5. Look at Stop after. A run that ended by itself may simply have reached its count.
  6. Ask whether the app counts them. InputConfig sends the clicks, but an app or game that reads clicks at its own pace drops the extras. If the test on this page reads the right rate and the app does not, the limit is in the app.

What this page cannot tell you

  • Whether a game allows it. Many online games forbid auto clickers in their rules, and some detect them. No speed on this page is a safe speed, and I will not promise that any is allowed. Check the rules of the game or site first.
  • The exact timing on your Mac. The real-rate lines follow InputConfig's timing code: one click per poll at most, each held for 40 percent of the gap up to 80 ms, and the due times kept on schedule so the average matches Every. A busy Mac can still miss a beat now and then. That is caution, not something I measured on every Mac.
  • A lab-grade click test. The test reads each click when the browser sees it. That is close enough to set a pace, not to settle an argument about milliseconds.
  • Other auto clickers. The real-rate lines describe InputConfig only. Other apps have their own floors and ceilings, and their own polling.

The conversion is exact; what an app does with the clicks is up to the app.

What to do next

InputConfig is free on the Mac App Store, with no in-app purchase for features. Like every app that clicks for you, it needs the Accessibility permission. The full setup is in the free auto clicker for Mac answer and the auto clicker guide.

Questions

How many milliseconds is 20 CPS?

50 ms. Divide 1000 by 20. In InputConfig, type 50 into Every and the row shows (20.0 per second).

How many clicks per second is 100 ms?

10 clicks per second, or 600 a minute. That is the speed of the Auto Clicker preset's right trigger and fn F6 rows.

How do I convert clicks per minute to milliseconds?

Divide 60,000 by the clicks per minute. 300 a minute is 200 ms, and 60 a minute is 1000 ms.

What is the fastest an auto clicker can click on a Mac?

One InputConfig row tops out at 200 clicks a second, with Every at 5 ms and the polling rate at 240 Hz. By default it is 120 a second on a power adapter and 60 on battery. Some apps advertise 1 ms gaps, but the app you click in decides how many it counts.

What is a normal CPS for a person?

Many people land somewhere around 5 to 8 clicks a second on a plain test like the one on this page. That is a common range, not something I measured, so the test is the better answer for you.

Does Vary by up to change the average speed?

No, as long as it stays under about 60 percent of Every. InputConfig draws a new gap after each click, evenly either side of Every, so the average stays put. A larger variation gets its shortest gaps raised and the run comes out a little slower.

Download InputConfig on the Mac App StoreFree. macOS 14 or later. No account, nothing leaves your Mac. Open source on GitHub.