Releases: gtjevptje/Macronaut
Release list
Macronaut 2.3.5
A recording now plays back the way you made it, and there is an installer.
Recordings replay in the time they took to make. Record ten quick clicks
around the screen and play them back, and until this version they took about
half as long again as you did. Two things were adding time. The pointer
travelled between clicks at a fixed speed, even when your hand had clearly
covered the distance faster, since that is when the next click landed. And
every recorded pause was waited out in full before the pointer set off, so
the journey was added on top. The journey now happens inside the pause, at the
pace your hand actually went. Measured on the same ten clicks: 1.6 seconds
recorded, 2.4 seconds replayed before, 1.8 now, the same as with smooth
movement switched off.
That also brings back the speed box. Because the glides ignored it, "4x"
on a recording made with the mouse delivered barely more than 1x. It now does
what it says.
The timing itself is recorded more precisely. Windows' ordinary clock
ticks every 15.6 ms, and the recorder was using it, so every pause, key hold
and swipe was rounded to a tick before it was saved. At a 30 ms gap, which is
ordinary fast clicking, that is half the gap wrong, and a steady rhythm came
back as a stutter. The recorder uses the precise clock now. Flows you recorded
before keep the rounded numbers they were saved with.
The recorder sees where the mouse rests. It used to write down the places
the buttons went down and nothing in between. So hovering over a menu to open
it and then clicking an item recorded only the click, and the replay clicked
where the item would have been, with the menu still shut. When the pointer
stops somewhere for about 0.4 seconds, that is now a Move step, and the
replay waits there as long as you did. Plain clicking is unaffected: resting
on the spot you then click adds nothing.
Move steps open in the editor like any other step. (A recorded Move step
opened and saved in the editor used to turn into a left click in the top left
corner of the screen. Fixed before anyone could meet it outside a test, but
worth saying.)
Ctrl-click, Shift-click and Alt-drag record as one gesture. Holding Ctrl
and clicking two things used to record as two plain clicks and then a stray
"hold Ctrl" a second later, so the second click undid the first one's
selection. Click, Drag and Scroll steps now carry the keys held while they
happen, and the editor has a Holding row (Ctrl, Alt, Shift, Win), so you
can build one by hand too. The keys always come back up, even if the step is
stopped halfway.
Three more recordings that came back wrong:
- The mouse's side buttons (Back and Forward, or Mouse 4 and 5) were
recorded as left clicks at the same spot. They record and replay as
themselves now, and you can pick them in the Click, Drag and Detect editors. - A swipe replayed 160 ms slower than it was made, which matters when the
thing you are swiping measures speed. - A flick of the scroll wheel replayed all its notches in the same
instant, and many programs only read a few per frame. It keeps the speed you
flicked at now.
Watching the screen finds more of what is actually there.
- A plain-coloured button was always "found" in the top left corner. Cut an
image out of a flat colour (a swatch, a health bar, the inside of a button)
and the match reported a perfect score at the corner of the screen, even for
a colour that was nowhere on it. Detect clicked the corner and If/Else took
the same branch forever. Flat images are searched a different way now and
are found where they are, or not at all. - Icons with a transparent background were matched against whatever colour
happened to be stored under the transparency, which you cannot see and which
depends on the program that saved the file. The same icon could be found or
missed depending on that. The transparent part is now ignored. - Images captured at one display scaling and searched at another were
missed at 175%, and between 125% and 150%. Those sizes are searched now. - Text on screen is read a second time, enlarged, when the first read finds
nothing. Small interface text is often too small for Windows' text
recognition, and in our tests the second read recovered most of those
misses. This now also works on 4K screens, where it was switched off. - Very wide desktops (three ultrawides side by side) read as empty, because
Windows' text recognition silently returns nothing for an image wider than
10,000 pixels. The image is scaled down to fit first now.
A pointer glide is no longer a perfect ruler line. It now bends very
slightly and has a tiny sideways tremor, the way a hand moves. It always
arrives exactly on the target pixel.
A hand-edited script can no longer end a whole run. If a step in the JSON
has a delay that is not a number, or null, that step now counts as having no
delay instead of stopping everything and leaving the mouse and keyboard
wherever step 40 of 200 left them. An infinite delay used to freeze the flow
without a word; it is treated as no delay too.
The timeline under the canvas is more accurate for scroll steps and for
key steps when you have changed the key hold time in Settings.
An installer, beside the usual download
There are two downloads now, built from the same code:
Macronaut.exe, the single file you already know. Nothing changes for
you if you use it, and it keeps updating itself the way it always has.Macronaut-Setup-2.3.5.exe, a normal installer. It installs for your
user only (no administrator prompt), adds a Start menu entry and an
uninstaller, and does not unpack itself into a temporary folder every time
it starts, which is the behaviour antivirus programs are most suspicious
of. It is also the smaller download. A copy installed this way updates
through the installer.
Your scripts and settings live in your own folder and are not touched by
either download, or by switching from one to the other.
Verified before release
Every release goes through three gates before it is published: the built
program tests itself (image matching, text recognition and the rest, against
generated input with a known answer); a launch check confirms it really opens
a window; and the published 2.3.4 is downloaded and upgraded in place to this
build, with the upgraded copy passing its own self-test afterwards. The
installer's folder build passes the same self-test.
Notes
- Still unsigned, so SmartScreen will still warn on first run. Click
More info → Run anyway. The source is public if you would rather check:
https://github.com/gtjevptje/macronaut-source - Your scripts and settings are untouched by updating.
Macronaut 2.3.4
Your work is no longer lost by saving it, or by closing the window.
Closing Macronaut no longer throws away what is on the canvas. This was the
worse of the two, because you did not have to be unlucky to hit it — you just
had to close the app. Build something for half an hour, close the window, and it
was gone: no prompt, no autosave, nothing to reopen.
Macronaut now keeps a private copy of the canvas as you work, and if you quit —
or crash — with a flow that was never saved, it offers it back the next time you
start. One question, Yes or No, and then it is done with: answering it retires
the copy, and so does saving the flow yourself.
It is deliberately quiet. You are not asked about a canvas that matches a script
already saved on disk, so opening something from the Library, looking at it and
quitting asks you nothing. And it is not a replacement for saving — it holds one
flow, the last one you had open.
And Macronaut reopens the script you had open. If you pick a script and
quit, it is there again when you come back, instead of dropping you at "— no
script —" every morning. Choosing "— no script —" is remembered too, so it does
not undo itself overnight. If you have only ever used the plain auto-clicker,
nothing changes for you: there is no script to remember.
Saving is atomic now, and this is the other half of the same problem. Until this
version, saving opened your file and emptied it before writing anything back.
If the write did not finish — a full disk, antivirus holding the file open, the
machine going down, or a step containing something the save could not encode —
you were left with a half-written file and no original to fall back on. It is
not a theoretical failure. Two of them were reproduced here. A save interrupted
part-way turned a working flow into a fragment that would not reload; and when
the file was simply locked — which is what antivirus does while it scans, and
what a sync client or an open editor does — the old save emptied it to nothing
and then reported "Permission denied", which reads as though it had refused
and changed nothing.
Macronaut now writes the new version alongside the old one and swaps them in a
single step. If anything goes wrong, the flow you already had is exactly where
it was.
And so is settings.json, which is the one most people would actually have
noticed. If that file was locked while Macronaut saved it — antivirus scanning,
a sync client, an editor left open — it was emptied, and the next launch quietly
started from defaults: every launcher key you had bound, your input backend and
your theme, gone with no message. It keeps what was there now.
Errors about your files now say what happened. A flow that will not open
used to report Expecting value: line 1 column 20 (char 19), which tells you
neither what is wrong nor that the problem is the file rather than the program.
It now names the file, says it looks cut short, and — the part that matters —
tells you the file is still on disk and nothing has been changed. A save that
fails says the version already saved has not been touched and your flow is still
open on the canvas.
If you have a flow that stopped opening at some point, that is very likely this
bug. The file is still there; open it in Notepad and you will usually find it
ends mid-word. Nothing in this release can repair one, but nothing after this
release should create one.
And if you have edited a flow by hand, the app now tells you where to look.
Macronaut's flows are plain JSON on purpose — you are meant to be able to open
one — but a mistyped key used to come back as KeyError: 'type', which is not
help of any kind. It now says which file, that it is valid JSON but not shaped
like a flow, and that a node needs an id and a type while an edge needs
src and dst.
A flow saved by a newer Macronaut than the one you are running still opens.
That is deliberate: refusing it would be a worse problem than the one being
solved here.
Watching the screen is about fifteen times faster when it finds something.
A Detect step, or an If / Else asking whether something is on screen, used to
take around two seconds on a 1080p screen and four on an ultrawide — even when
it found a perfect match immediately. It was searching twelve template sizes
in colour and then twelve more in greyscale, every time, after the first
comparison had already given a perfect score. It now stops once it has a match
that near-perfect: the same answer in the same place, in about a seventh of a
second. Deciding that something is not there still does the full search,
because that is the case all those extra passes are for.
Stop now stops during a Detect step. Searching the whole screen for an
image takes a second or two, and until now that was one indivisible operation:
press Stop while a Detect or a Wait-for-image step was mid-search and nothing
happened until it finished. The search now checks between template sizes, so
Stop is acted on in about a tenth of a second.
A step that watches for an image now says when the image is missing. If you
move or delete a picture a Detect step was looking for, that step used to wait
out its whole timeout and report "not found" — exactly what it reports when the
thing simply is not on screen. An If / Else was worse: it just kept taking the
same branch, so the flow looked like it was working. The run log names the file
now, once, when the step starts.
The pointer now travels to what it clicks, instead of appearing on it.
Every click Macronaut made used to be a teleport: the cursor was in one place,
and in the next instant it was on the target with the button already going down.
It had never been anywhere in between.
For most windows that is fine. For a great many it is not, and the failure is
silent. A program that reads the mouse once per frame works out what happened
from where the pointer has been — so a cursor that materialises on a button
having never approached it leaves the hover state unfired, and a menu that opens
when the mouse enters it is still closed when the click lands. The click goes to
whatever was underneath, which is usually nothing, and nothing reports an error,
because a click cannot fail.
If you have ever had a flow click exactly the right spot and watched nothing
happen, this is a good candidate for why.
Clicks, moves, drags and scrolls all travel now, and so does click what you
found — the Detect step that clicks the text or image it just located on
screen, which is the one where it mattered most. The motion is the one a hand
makes: away from the mark quickly, then slowing onto the target. It always
arrives exactly on the pixel it was aiming at.
Settings ▸ Pointer movement has the switch and a travel speed, if you would
rather have the old behaviour: turn it off and clicks jump straight there, which
is the fastest thing the machine can do and is the right choice for a target
that does not care where the cursor came from. Crossing a full 1080p screen at
the default speed takes about two thirds of a second; short hops are quicker,
and a few pixels is still instant.
Your click rate is not affected. The auto-clicker holds position between clicks,
so there is nothing to travel — "max speed" is exactly as fast as it was.
Also
- Apart from the pointer travelling, nothing changed about what flows do
when they run, record or play back. Every step clicks, types and waits where
it did before; some of them finish sooner, and the ones that move the mouse
take the scenic route to the same place. - Some internal tidying: two imports the app had stopped using are gone, and
several pieces of code that no longer run now say so, so that anyone reading
the source is not misled about which parts are live.
Verified before release
Every release goes through three gates, and this build was put through all
three before these notes were written: the frozen binary self-tests itself
(12 of 12, including image matching, Windows OCR and the licensing check); a
launch probe confirms it actually shows a window; and the published 2.3.3 was
downloaded, its checksum matched against the one on the website, and then
upgraded in place to this build — with the installed result passing its own
self-test afterwards. release.py runs the first of those again as part of
cutting the release, so the file you are downloading is the file that passed.
Notes
- Still unsigned, so SmartScreen will still warn on first run — click
More info → Run anyway. The source is public if you would rather check:
https://github.com/gtjevptje/macronaut-source - Your flows, settings and licence are untouched by updating.
Macronaut 2.3.3
Macronaut 2.3.3 — open source
Macronaut is now free software under the GNU General Public License v3.0 or
later. The complete source is at
https://github.com/gtjevptje/macronaut-source.
Nothing about the app changed. Same features, same price of nothing, same
person maintaining it. What changed is that you no longer have to take any of
that on trust.
Why
The most common reason people gave for not downloading Macronaut was that they
could not see what they were running — and that is a fair thing to say. It is an
unsigned executable that installs a global keyboard hook, and the first thing
Windows tells you about it is that it protected your PC from it.
Every answer this page could previously give to that was a request for trust:
the SHA-256, "one person made this", the promise of no telemetry. Publishing the
code is the only answer that asks for none. You can read exactly what it does
with your keyboard, and you can build it yourself:
git clone https://github.com/gtjevptje/macronaut-source
cd macronaut-source
pip install -r requirements.txt
pyinstaller macronaut.spec
Corrected 3 September 2026. This note originally said you could build
"this same .exe". That is not true and it should not have been claimed here
of all places. PyInstaller stamps a timestamp into its output and does not
order its archive deterministically, so two builds from the same tree on the
same machine differ — a hash comparison against the published download will
never match. That is PyInstaller, not something hidden in the source. What is
checkable is the source, all of which is published, and the SHA-256 of the
download, which is now on the website under the download button.
What is in this build
LICENSEis the GPL. It ships inside the.exeas it always has, and
Settings → About & legal opens it.- A "Source code" button sits next to Licence and Third-party notices in
that same panel — reachable from inside the app, not only from the website,
because that is where somebody deciding whether to trust it actually is. - The About panel no longer says "All rights reserved", because that is no
longer true.
What this means for you
Run it, read it, change it, pass it on. The one obligation is that if you
distribute a modified version — as source or as a built .exe — you publish
your changes under the same licence. Nobody gets to take this, close it, and
sell it back.
GPL rather than a permissive licence for exactly that reason. It is not a
restriction on you; it is what keeps the next person's copy as free as yours.
Notes
- Builds published before 30 August 2026 remain under the licence they shipped
with. This one and everything after it are GPL. - Macronaut is still unsigned, so SmartScreen will still warn on first run.
Click More info → Run anyway. A certificate is still on the roadmap — but
the source being public is a better answer to that warning than a certificate
would have been on its own. - The private working repository keeps its own history and the notes around the
project. What is published is the program, in full.
Macronaut 2.3.2
Macronaut 2.3.2 — Basic, remastered, and a purple that reaches the edges
2.3.0 brought the Basic auto-clicker back and 2.3.1 made a new install actually
open on it. This release is about how it looks — because what came back was
the 2.0 window, and it wore the wrong colours in a wrong-looking way.
Basic has been rebuilt
Three labelled cards — Click interval, Click, Options — instead of a
column of grey boxes. Aligned labels, real spacing, buttons that look like the
buttons everywhere else in the app, and a Start bar you can find without
reading. Everything it did before, it still does; nothing moved anywhere
surprising.
Cosmic is a real theme now, and it is the default
Macronaut has shipped a purple rocket, a purple website and a navy-blue
application since 2.0. The purple was never a theme — it was four hardcoded
copies of a colour, in four places, while the actual default theme was
Mission Control, a navy console.
Cosmic is now a proper theme sitting alongside Mission Control, Graphite and
Daylight in Settings → Appearance, and it is what Macronaut opens on.
If you never picked a theme, you will see this one on your next launch. That
is deliberate: the app now looks like the thing it is named after. If you did
choose a theme on purpose, you keep it — picking Mission Control is a decision,
and an update should not overrule it. You can switch back in two clicks either
way.
The title bar follows the theme too
The window's title bar, the canvas header and the settings drawer each painted
themselves and ignored the theme entirely. On Daylight that meant a dark
purple bar sitting on top of a light window; between Basic and Advanced it meant
two slightly different shades of the same bar. All three now take their colour
from the theme, so every theme is the whole window.
Auto-Click has left the palette
The ⚡ Auto-Click button is gone from the node palette on the canvas. Basic
is the auto-clicker now, and having a second one hiding in a palette was one
place too many.
Nothing was removed from the app. Every saved flow that contains an Auto-Click
step still runs exactly as before, still opens its own editor when you
double-click it, and is still free — including repeat counts and intervals,
which a Click inside a Loop is not.
Everything in 2.3.0 and 2.3.1 is unchanged, and all of it is free.
Feedback and bug reports: gerbenvanpoucke0@gmail.com.
Existing installs update themselves on restart. New downloads: Windows will say
"Windows protected your PC" because the file is not code-signed yet — click
More info, then Run anyway.
Macronaut 2.3.1
Macronaut 2.3.1 — a new install now really does open on Basic
2.3.0 brought the Basic auto-clicker back, and this page said Macronaut
"opens as a plain auto-clicker". On a brand-new install it did not — it opened
on the node canvas, exactly as before, and Basic was one click away behind the
‹ Basic link.
Everything worked. It just was not what had been promised, and the person that
promise was written for — somebody who searched for an auto-clicker and
downloaded a 78 MB file — was the one person it failed.
A first launch now opens on Basic.
If you already had Macronaut, nothing moves
You keep opening on the canvas, at the size and position you left it. Updating
does not swap your window for a different one — the new default is for people
who have never opened the app, not for you.
And either way it still remembers: close it on Basic and it opens on Basic,
close it on Advanced and it opens on Advanced, each with its own size and place
on screen.
Everything in 2.3.0 is unchanged, and all of it is free.
Feedback and bug reports: gerbenvanpoucke0@gmail.com.
Existing installs update themselves on restart. New downloads: Windows will say
"Windows protected your PC" because the file is not code-signed yet — click
More info, then Run anyway.
Macronaut 2.3.0
Macronaut 2.3.0 — Basic is back
Macronaut opens as a plain auto-clicker again.
Set the interval, pick a mouse button, choose how many times, press Start.
No nodes, no wires, no diagram. If that is all you ever wanted from this, you
are finished on the first screen.
The node canvas has not gone anywhere — it is behind the Advanced › link at
the bottom of that screen, and there is a ‹ Basic link to come back. The two
are views of the same automation, so a clicker you set up in Basic is a real
flow on the canvas if you ever go looking.
It is free, permanently. Not a sample of the free tier — the reason the free
tier exists.
Why it came back
2.1.0 removed it. That was a mistake, and the honest version of why is short:
one window is simpler to build and maintain, and it was argued for on those
grounds. What it cost was the person who searched for "auto clicker", downloaded
a 78 MB file, opened it, and was shown a blank canvas with a palette of nodes.
It remembers how you left it
- Close it in Basic and it opens in Basic. Close it in Advanced and it opens
in Advanced. - Each face keeps its own size and position. Basic parked in a corner beside
the window it is clicking, Advanced as big as your monitor — switching between
them no longer moves or resizes the other one. - The first time you open Basic it sizes itself to its own content. After that,
whatever size you drag it to is the size it comes back at.
It matches the rest of the app now
The Basic face used to carry its own fixed colour scheme from 2.0, so it looked
like a different program the moment you chose Graphite or Daylight in Settings.
It follows the theme you picked, like everything else.
Two smaller things while it was open:
- Start is green and Stop is red, matching the buttons on the canvas.
- The Repeat options are round radio buttons instead of squares. They are
mutually exclusive — "repeat 10 times" or "repeat until stopped" — and
drawing them as checkboxes said otherwise.
Also fixed
- Fit no longer magnifies. On a new install, with a single Start node on the
canvas, pressing Fit zoomed to 4× — past the limit the mouse wheel itself
enforces, as the first thing anybody saw after downloading. Fit shows you
everything; it does not make things bigger than life size.
Everything is free
Every feature — including the ones that watch the screen and branch on what
they find — is available to everyone, with nothing to enter and no account.
Feedback, bug reports and questions: gerbenvanpoucke0@gmail.com. It is one
person, not a ticket queue.
Installing
Download Macronaut.exe and run it. Windows will say "Windows protected your
PC" on first run, because the file is not code-signed yet — click More info,
then Run anyway. Existing installs update themselves on restart.
Macronaut 2.2.0
Two things that never worked, and a library that is no longer empty.
Every feature is free. Nothing is watermarked, nothing expires, and there
is no account.
"Select region on screen…" works. In Settings, under Keep clicks inside a
region, it did nothing at all — the overlay was collected by Python the
instant it opened, so the window died before you could drag in it. The same
control reached from a Detect step was always fine, which is why this went
unnoticed for so long.
Auto-Click can be added to a flow. The node type was real, saved flows
contained it, the engine ran it and its editor worked — there was simply no
button that created one. Two Settings cards, click region and pause-on-focus,
read their values from an Auto-Click node and were therefore inert for every
flow anybody could actually build.
The Script Library arrives with six automations in it. A new install used
to open on an empty canvas and an empty library. Now there is an auto-clicker,
one that stops after 100 clicks, one that clicks every 30 seconds to keep a
session awake, one that types a block of text, one that presses a key 50 times,
and an example that watches the screen for a word. None need setting up: open
one and press Play. Each carries a note on the canvas saying what it does, how
to stop it, and which node to change.
If you already have scripts saved, nothing was added to your library — that
would be five files you did not make appearing next to work you did. Press
Add examples in the Library when you want them. It never overwrites
anything you already have under the same name, and it is also how you get one
back after deleting it.
Macronaut no longer opens on top of everything. Always-on-top defaulted to
on, so a first launch parked the window over whatever you were doing before
asking. It helps while a flow runs and is purely in the way while one is being
built. Still in Settings → Appearance.
The window title says the version it actually is. It had read "2.0" since
2.0, which is unhelpful in a screenshot attached to a bug report.
Windows will show "Windows protected your PC" on first run — it does that for
any app without a signing certificate. Click More info, then Run anyway.
Something not working? gerbenvanpoucke0@gmail.com. It is one person, and you
will be talking to whoever wrote the part that broke.
Macronaut 2.1.1
Interface fixes from a round of real use.
The Add-node buttons no longer clip their labels. "Comment" was drawn as
"Comme". The cause was app-wide rather than cosmetic: the window was built
before the theme was applied, so every widget measured itself in Qt's default
font and was then repainted in the theme's larger one. The theme is now in force
before the first widget exists, and the palette re-checks its own width once
it is on screen.
Wait steps land on round numbers. Stepping up from 950 ms gave 1.05 s, then
1.15, 1.25 — every value afterwards off the grid, and 1 s unreachable without
typing it. It now steps onto the next round value, and above a minute it steps
in whole seconds instead of tenths.
Wait nodes read like durations. A ten-minute wait said "Wait 600000 ms". It
now says "10 min", and shorter ones "1.5 s" or "1 min 30 s". Pre-delay badges
read the same way.
The comment box header is no longer half dark. The bottom of the title band
was being painted the body tint — on a 26 px bar, close to half of it.
The timeline strip starts folded, always. Opening it once no longer leaves it
open in every later session; the canvas already highlights the running node, so
looking at the timing is something you do for one run rather than a preference.
Macronaut 2.1.0
Macronaut 2.1.0 — one window, a run you can watch, and a canvas you can organise.
One window. Basic mode and the floating orb are gone. There is one frameless
window showing the node canvas, and a Basic clicker is what it always was
underneath: a single Auto-Click node — which now has an editor of its own, so
there is no longer a node in the app you cannot open. Always-on-top moved to
Settings → Appearance.
Hold a key down. A Key step is now Tap / Hold / Down / Up, so you can hold W
to run forward while clicking, instead of every key press being trapped inside
its own step. Capture takes chords, so W+A is finally expressible. Repeat works
— it had been written by the editor and read by nothing, so a step set to 5
pressed once. Anything still held is released when a run ends, stops, or errors.
Watch the run. Every node draws a progress bar and a stripe while it is
holding a key, and a new timeline strip under the canvas shows the flow as
either the order it runs in or the time it takes. Estimates say where they came
from, so a guess never looks like a measurement — nodes this machine has timed
are drawn differently from nodes the settings decide. Folded by default; the
chevron is remembered.
Organise the graph.
- Comment boxes — a titled frame drawn behind the graph that carries the
nodes standing on it when you drag it. Palette → 💬 Comment, or pressCto
wrap whatever is selected. Deleting one keeps its contents. - Reroute points — double-click a wire to put a bend in it, double-click the
bend to take it out. - Per-node colour — eight tints, applied to the whole selection.
Scroll steps. A Click step can now be a scroll: direction, notches, speed,
at the cursor or at a position. The recorder captures the wheel and merges a
spin into one step.
Typing: the step decides how it is sent. Text can go as Characters (any
keyboard layout, ordinary windows) or Key presses (what a game reads), and
"Automatic" keeps whatever your input backend already did. Set it per Type step
— so a flow that types into a game chat and a flow that types into a launcher
field no longer have to take turns working.
Fixes
- A big flow could not be zoomed back out: Fit could land further out than the
zoom limit allowed, making one notch of zoom-in a one-way door. - Scrolling the Settings page changed the settings under the pointer — the input
backend, the typing speed, and which script a launcher key runs. - Dropdowns had no arrow, so every one of them read as a plain text field.
- The comment prompt had no visible text field at all.
- Copy, Cut and Duplicate silently dropped comment boxes out of the selection.
- Cancelling the comment prompt left a box behind anyway.
- The "Comment" and "Detect" buttons in the Add-node palette were clipped.
- Large flows: opening one is ~20× faster, and dropping a 500-node selection
~170× faster.
Macronaut 2.0.18
Typing now runs at the speed you picked — and the speed you can pick goes to 200 ch/s.
Typing
- The selected rate is the delivered rate. Every character cost the keystroke's own time on top of the gap, so 20 ch/s came out as 16 and 80 came out as 23.5 — every rate slower than the one you chose, and the faster you chose the wider the gap. Now measured within 1.5% from 5 to 200 ch/s.
- The ceiling is 200 ch/s. The old cap was a conservative guess. Leaving a step at 0 still means the safe pace (~33 ch/s, every key held long enough for a game to see it) and behaves exactly as it did before — but if you want to go faster, you can, and if text starts coming out with gaps or typos you turn the number back down.
Script library
- Delete, with a right-click menu and the Del key. Deleted scripts move to a
_deletedfolder rather than vanishing, and any launcher hotkey bound to a deleted script is cleared. - Search box and Import… for pulling a
.jsonin from elsewhere. - Each row now shows what the script is — node count, size, when you last touched it.
Engine
- Waits were rounding up to the nearest 15.6 ms. A 5 ms wait took 15.6; a 19 ms wait took 31.2. That was a floor under every interval the app could ask for — pre-delays, Wait nodes, typing — and it capped the autoclicker near 64 CPS no matter what you set. Fixed; a 1 ms wait is now 1.5 ms.
Interface
- The Load button is gone. It did what the Library's Open already does, from a list that shows what each script is instead of a folder full of filenames. Use Import… to bring in a
.jsonfrom elsewhere.