Grux AI Download

Changelog

All notable changes to Grux are recorded here. The format follows Keep a Changelog, and this project adheres to Semantic Versioning.

Rendered unchanged from the Grux CHANGELOG at commit 86963f2, fetched 2026-11-01. If this page and the repository disagree, the repository is right.

3.2.0

Released 2026-11-01. Every commit in it, on GitHub.

Private by default, and fast on the model made for your Mac. A Mac with Ollama gets Grux Local, the model trained for Grux, in one click at first run and sized to its memory; on a 16 GB Mac, Grux Local 2B answers in about 2 seconds (35 of 35 replies within 3.4 s, median 2.3 s) and its first reply after a ten-minute pause comes in 0.62 s, down from 6 s. Grux says when a new version is out, and asks nothing about you to find out. Self-Upgrade runs end to end: it reads its own source, proposes its next version, builds it, verifies it, and waits for your approval, and the ways we found for that chain to claim more than it did are closed. And a second stranger's five minutes: what still confused a person on a fresh Mac, in Now, Settings, Approvals and the setup cards, is fixed.

Added

Changed

Fixed: chat on a local model

Fixed: Self-Upgrade

Fixed: everything else a stranger hit

3.1.0

Released 2026-10-17. Every commit in it, on GitHub.

The first five minutes. A stranger installed 3.0, used it for five minutes and wrote down everything that confused them; this release fixes those ten things. The app is now called Grux AI.

Changed

Fixed

First run on a new Mac

3.1 was installed on a Mac that had never seen Grux, and everything that got in the way is fixed:

3.0.0

Released 2026-09-29. Every commit in it, on GitHub.

The release where Grux decides quickly, says what it is doing, and opens on one Command Panel.

Every small judgment Grux makes on your behalf (was that sentence meant for me, does this email need you, is this command dangerous, is now a bad moment to interrupt) used to be a keyword list, a hand-written rule, or a full language model call. In 3.0 they all go through one decision engine. With a TypeSafe key it asks Jev, a typed decision model, and gets a calibrated probability back in about 400 ms, except for a command you said outright, which it answers on this Mac in about 1 ms without asking anyone. Without a key it answers on this Mac for everything, exactly as before, and asks nobody anything. Either way the old rule stays underneath as the floor: the engine can hold something back or confirm it, and nothing destructive ever runs on its say alone.

First run is one question, "What do you want to do with Grux?", and the flow after it is built from your answer: what Grux picked, shown before anything is asked, then your name, a model, how Grux works, and setup one thing at a time. Everything Grux does for you is on one page, Tuning, opened from the orb.

Added

Changed

Fixed

Removed

Decision latency, per gate

Measured with scripts/decision-latency-table.py over one install's ledger (before: every decision before 2026-09-21 2:33 PM UTC; after: every decision from 2:50 PM UTC to 9:31 PM UTC), or from the calibration runs where a gate has no live rows yet. p50 is the median.

GateBeforeAfter, with a keySource of the after figure
Voice: was that meant for GruxJev 441 ms, 4,460 input tokens (742 calls); on device 4 msJev 387 ms, 2,200 input tokens (159 calls)ledger
Voice: a command you said outrightJev, 368 ms median (p90 872 ms) over 603 decisions1 ms, answered on this Mac, no networkledger + live
A spoken request that reaches Chattwo calls in a row, 728 to 912 msone call, 341 msledger, 1 call
Which app a spoken request meanskeyword match on device, under 5 ms404 ms, on the same call as the voice judgmentledger, 2 calls
Mail that needs youheuristic on device, under 5 ms364 ms, once per messageledger, 56 calls
Approvals riskrules on device, under 5 ms447 msledger, 1 call
Project attributionnone (new)439 msledger, 4 calls
Jax gateJev 414 ms (17 calls); on device 0 msunchanged on the wireledger, before window
Notification triagerules on device412 mscalibration, 14 calls
Email classifya text model call that also drafted392 ms, drafting stays on the text modelcalibration, 10 calls
Focus drift and a good moment to interruptcooldown rule on device365 ms, one call for bothcalibration, 12 calls
Shell destructive, second opinionrule list on deviceno live calls yet; the rule list still decides alone without a keynone
First-run answer to featuresnone (new)358 ms; not wired until the first-run screens landcalibration, 24 calls

Slower, said plainly: every gate that used to be a keyword or a rule on this Mac now takes about 350 to 450 ms when a key is present, where it took under 5 ms. It is slower because it is now judging what was said rather than matching a word. With no key, every gate answers on device exactly as fast as before.

Three things got faster. A spoken request into Chat went from two calls to one. The voice judgment's prompt halved. And a command you say outright no longer waits on the network at all: the engine used to send every decision to Jev whenever a key was present, so a command took a 368 ms median round trip to be told what the device already knew. It now answers on this Mac in about 1 ms when it is certain, and still asks Jev for anything it is not certain about, so a paraphrase is judged on meaning exactly as before.

End to end, a spoken command reaches execution in about 1.5 seconds, down from 3.1. That is not the 600 ms we were aiming at, and the reason is worth stating rather than burying: transcription has a floor of about 750 ms on the model Grux uses, and the pause Grux waits out before it will act is another 600 ms. Trimming the audio was measured and changed nothing. Reaching 600 ms needs recognition that runs while you are still speaking, which is a build, not a setting.

1.2.1

Released 2026-08-29.

The release where a stranger's first launch is quiet.

1.2.0 shipped a command line. Installing it on a Mac that had never run Grux showed what launching it actually does to somebody, and the answer was too much. Forty nine services start on a first launch. Twenty five of them did something nobody had asked for, and auditing the launch path afterwards found eight more the first pass had missed.

Nothing in this release is a feature. Every entry is Grux doing less, or doing the same thing behind a switch you can find and that survives a restart.

Fixed

Changed

1.2.0

Released 2026-08-29.

Grux gets a command line. 45 of the 48 commands in docs/cli-grammar.md ship, up from none, and the whole surface answers to one shape: six beats printed as a rail, four exit codes, and a handoff you can paste into your own coding agent.

The CLI is beta. It is complete enough to drive Grux without opening a window, and new enough that it has not been used in anger by anyone but its author. Three commands stay unbuilt on purpose, with reasons rather than apologies: grux task has no task store to write to, grux search would return empty on a machine with nothing indexed, and grux diff needs grux setup to start recording a baseline first.

Added

Fixed

0. Every question now goes to the terminal the person is actually at.

Notes

1.1.0

Released 2026-08-28.

Two audits, run back to back, against one question: does a stranger who downloads Grux get a working app, and does every screen tell them the truth? Wave 1 read the published tree. Wave A took the first ten minutes of a cold install. 124 files, 21 new test suites, and 27 of the fixes below were found by review agents that had written none of the code and were told to refute, not confirm.

The recurring defect had one shape, and it is worth naming because it explains most of this list: the app knew a thing and the screen said something else.

Added

Changed

Fixed

Security

1.0.4

Released 2026-08-24.

Muting Grux is a promise that the machine is yours again, and the app was not keeping it. Every item here came out of one reported bug: MUTED on screen, the orange microphone dot still lit in the menu bar, and Voice Memos unable to record. The first fix stopped two of the four microphone owners. Adversarial review of that fix found seven more ways the device stayed held, and those are what this release is.

Fixed

Changed

1.0.3

Released 2026-08-24.

Built, notarized and then superseded before it reached anyone: the microphone work in 1.0.4 landed the same day, and shipping twice in an hour is worse for a user than shipping once. There is no 1.0.3 download. Everything below is in 1.0.4.

A week of asking what the app does when things go wrong, and finding it mostly lied. Every item below was a real failure on a real machine, several of them found by adversarial review of the fix for the item above it.

Fixed

Added

Changed

1.0.2

Released 2026-08-23.

A licence compliance fix, found by asking a question rather than by anything failing.

Fixed

Changed

1.0.1

Released 2026-08-23.

The week after the first release, spent using Grux the way a stranger would instead of the way its author does.

That distinction turned out to matter more than expected. Grux had been one person's daily driver for months, and a tool you use every day stops showing you its own first five minutes. Every fix below came from opening the app with no key, no tasks, no projects and no history, and writing down what actually happened. Most of them are not crashes. They are the app saying something untrue and nothing failing loudly enough to notice.

Fixed

Fixed after review

An adversarial review of everything above, before any of it reached a stranger. Nine defects, and the pattern in them is worth stating: none crashed, none failed a test, and the worst one could not fail loudly even in principle.

Added

Changed

A note on the tests

Seven new test suites, and the ones worth mentioning are guards rather than examples: a feature that ships off must be named at first run or the suite fails, no interface text may hardcode the assistant's name while that name is renameable, and the wake phrase in the copy is fed to the real matcher.

Two guards were written and then deleted rather than shipped, because both fired on correct code. A test that cries wolf gets muted within a month and is worse than none. The reasoning is kept in the files where the next person will look for it.

1.0.0

Released 2026-08-22.

First public release. Grux was built in private and this is the point it becomes something a stranger can clone, build and run.

Added

Fixed ahead of release

These were found while preparing the repository for other people to read, and are listed because each was a promise the app made and did not keep.

Known limitations

Download Grux AI 3.2.0 Read the source

Free, MIT licensed. macOS 14 or later, Apple silicon. 28.4 MB, signed and notarized by Apple. No account, no server, no subscription.