Changelog

What's new in Airway.

October 2026

ImprovementOct 28, 2026Airway 0.9.2 — Student licenses fixedStudent licenses couldn't be activated: Airway said it had received an invalid token. 0.9.2 fixes it.

Version 0.9.2 (build 8). Update from inside Airway, or download it from airway.fan. Requires macOS 13 (Ventura) or later.

If you bought a student license and Airway told you it had "Received an invalid token from the server", sorry about that. Your license was fine the whole time. Airway only knew about three kinds of license (beta, trial and paid), and it didn't recognise the student license that arrived from the server, so it refused it.

0.9.2 accepts student licenses, and any new kind of license we add later, so this can't happen again.

Already tried and got the error? Open Airway and press Activate License again with the same email and key. It works now, even on 0.9.1, and it won't use up another Mac on your license.

ImprovementOct 20, 2026Airway 0.9.1 — Memory and battery fixAirway could slowly grow to hundreds of megabytes and show up under "Using Significant Energy" on battery. 0.9.1 fixes both.

Version 0.9.1 (build 7). Update from inside Airway, or download it from airway.fan. Requires macOS 13 (Ventura) or later.

If you've left Airway running for a few days on 0.9.0, you may have noticed it in Activity Monitor using several hundred megabytes, or listed in the battery menu under Using Significant Energy. That's fixed.

What was going on

Airway redraws its menu bar item every couple of seconds to show the latest temperature and fan speed. On macOS 27, every time an app hands the menu bar a new picture, a little memory is left behind that never gets freed. A hundred-odd kilobytes doesn't sound like much, but at one update every two seconds it adds up to hundreds of megabytes over a week, and each update got a little slower as it did.

The menu bar item is now built once and only its text changes, which doesn't leave anything behind. Readings that haven't changed don't touch the menu bar at all.

Two other things were costing battery:

  • The menu kept working after you closed it. It was supposed to stop refreshing when closed, but never got the message, so it quietly redrew itself in the background all day. It now stops the moment you close it.
  • The temperature log was too jumpy. It watched the single hottest core, which swings by ten degrees in a second during completely normal use, and logged it thousands of times a day. It now watches the average and records the busiest apps at most once a minute.

Also new

The download window has a fresh look, with a clear arrow showing where to drag Airway.

NewsOct 17, 2026OpenAirway is here — the full source code is on GitHubThe complete source code of Airway is now public as OpenAirway, under the GPL-3.0. Read it, build it yourself for free with every feature unlocked, or send a fix.

Airway's source code is now open. It's called OpenAirway, and it's available today on GitHub: github.com/jc-gt3rs/OpenAirway.

Airway talks to your Mac's fan hardware through a privileged helper. That's a lot to ask you to trust, and the honest way to earn it is to let you read exactly what it does. Now you can.


What's in the repository

Everything: the menu bar app (SwiftUI and AppKit), the privileged helper that reads and writes SMC keys, the XPC link between them, presets and Smart curves, the Shortcuts and Siri actions, the safety rules, and all eight translations. The architecture, SMC keys and XPC protocol are written up in DOCUMENTATION.md.

It's licensed under the GNU General Public License v3.0. You can use it, study it, change it and share it. If you share a changed version, it stays under the GPL with its source available.

Build it yourself, free

The open edition has every feature unlocked, with no trial, no license key, and no server. It never checks a license, sends a crash report, or looks for updates. You need a Mac with Xcode 26 or later and an Apple ID (a free one is enough). The README walks you through it:

  1. Clone the repository.
  2. Run scripts/set-team-id.sh with your own Team ID. The app and its helper only trust each other when the same Apple team signs both.
  3. Open Airway.xcodeproj, pick the Airway scheme and press ⌘R.

To update, pull and rebuild.

Or buy the ready-made one

The app on airway.fan is the same app, built and signed for you: no Xcode, automatic updates inside the app, a 7-day free trial, then a $1.99 license for two Macs. It's free for students. Buying a license is also what keeps the project going.

Nothing about the paid app gets taken away, and nothing about OpenAirway is held back.

Help us make it better

Bug reports, ideas and pull requests are welcome. Start with CONTRIBUTING.md, or open an issue on GitHub.

If you publish your own build, please give it a different name and icon so nobody mistakes it for the official Airway.

Airway changes real hardware settings and comes with no warranty. It keeps a 25% floor in Manual mode and always hands the fans back to macOS when it quits, but keep an eye on your temperatures when you try custom speeds.

ReleaseOct 12, 2026Airway 0.9.0 — Smart fan curves, more temperatures, and a Siri overhaulPresets can now follow temperature instead of holding one speed. Airway reads every sensor on your Mac, gets a proper Settings window, protects your Mac better when it runs hot, and does a lot more through Siri and Shortcuts.

Version 0.9.0 (build 6). Update from inside Airway, or download it from airway.fan. Requires macOS 13 (Ventura) or later.

This is the biggest Airway update so far. Until now a preset held one fixed speed: 60%, 4000 RPM, whatever you picked. That's fine for a render you know will run hot. It's less useful for a normal day, when the right speed changes every few minutes.


Smart presets

There's a new preset type next to Percentage and RPM: Smart. A Smart preset follows temperature. You choose:

  • The curve. Gentle stays quiet longest. Linear is even and predictable. Responsive reacts fast. Smooth eases in and out. Instant goes straight to full speed once things get hot.
  • When the fans start, and when they reach full speed. For example, start at 53°C and hit full speed at 85°C.
  • The top speed, so a quiet preset can stop at 60%.
  • Which temperature to follow: the hottest CPU or GPU sensor, an average, the CPU, the GPU, memory or the SSD.

Smart presets also watch how fast the temperature is climbing, and speed up early when it's rising quickly. When things cool down, the fans hand back to macOS on their own. Speed changes are smoothed, so you won't hear sudden jumps.

There's also a new option in Settings, Use Smart in Auto, which makes the Auto button run the Smart curve instead of leaving the fans entirely to macOS.

Every temperature

Airway used to read a handful of CPU sensors. It now reads everything your Mac reports. That's around 140 sensors on an M2 Max, covering CPU, GPU, memory, SSD, power, ambient and battery. Turn on Show temperatures in Settings to see them in the menu, including two new figures: CPU average and CPU/GPU average.

You can also pick which temperature the menu bar shows: the hottest sensor, an average, or a specific part.

A real Settings window

The options list had grown long enough to run off the bottom of smaller screens. Settings now has its own window, laid out like System Settings, with the appearance picker drawn as little Airway previews in Light, Dark and Auto.

Safer when it's hot

Airway already forced the fans to Max if your Mac sat at 90°C for three minutes under a manual speed. 0.9.0 adds a faster safety net: 100°C for five seconds goes straight to Max.

We also fixed a case where that protection fired when it shouldn't. If your Mac went to sleep while hot and woke up still warm, the time spent asleep was counted as "three minutes at 90°C", and the fans jumped to Max the moment it woke. Sleep no longer counts.

And if Airway ever quits unexpectedly, the background helper now notices within 15 seconds and gives the fans back to macOS, so they're never stuck at a speed nobody is managing.

Speeds below 25%

Manual speeds have always stopped at 25%. You can now go lower, down to the slowest speed your fans can spin, but only if you turn it on in Settings. It's off by default and comes with a clear warning. While a fan is below 25% the slider turns orange and Airway reminds you each time you open the menu. The overheat protection above still applies.

Siri and Shortcuts

  • Set Fan Speed: hold the fans at an exact percentage.
  • Get Temperature: ask for any temperature ("What's the CPU average temperature in Airway?"). It comes back as a real temperature, so Shortcuts can convert it or compare it.
  • Start and Stop Thermal Recording: capture a benchmark run to CSV.
  • Get Fan Status now reports the mode, the active preset, each fan's speed and whether overheat protection is on, with a small status card.
  • On macOS 15 and later, your presets show up in Spotlight, so typing a preset's name runs it.
  • New on macOS 27: a single Set Fans action that takes a mode, a preset or a percentage, and answers that are worded for listening when Siri has no screen to show them on.

For tinkerers

  • Record thermal log in Settings writes every sensor, every fan's speed and the busiest processes to CSV files once a second, with a summary of your machine. Recordings delete themselves after 24 hours unless you keep them.
  • Sudden temperature spikes are written to a daily log along with what was running at the time.
  • Export SMC keys saves a full list of your Mac's sensor and fan keys, which is exactly what we need to support a new Mac.

Newer Macs

Airway now finds temperature sensors by itself instead of relying only on a fixed list, so chips it hasn't seen before still report temperatures. That includes newer M5 Pro and M5 Max models and M6. Fanless MacBook Airs from M2 onward are also recognised correctly.

Everything else

  • Scrolling the menu is smoother, and the spinning fan icon no longer stutters.
  • The Language section opens and closes with a smooth animation, like the Wi-Fi menu.
  • Windows fit on small screens, including a 13-inch MacBook Air in "Larger Text" mode.
  • Presets are better protected: an older version of Airway can no longer wipe your list when it sees a preset type it doesn't know.
  • The symbol picker for presets now offers the same symbols as Finder's folder customisation.

August 2026

ReleaseAug 28, 2026Airway 0.8.2 — macOS 13 Ventura supportAirway now runs on macOS 13 Ventura, lowering the requirement by a full major version. Fixes a crash seconds after launch and a popover that opened clipped on all four sides. Nothing changes on macOS 14 and later.

Version 0.8.2 (build 5) — Ventura support. Update from inside Airway, or download it from airway.fan.

Airway has required macOS 14 (Sonoma) since its first public release. That ruled out a lot of Intel Macs: Sonoma dropped support for nearly everything older than 2018, and Ventura is as far as many of those machines can go. A 2017 15-inch MacBook Pro is exactly the sort of Mac that benefits most from fan control, and it can't run anything past Ventura.

0.8.2 lowers the requirement to macOS 13 (Ventura).

If you're on macOS 14 or later, there's nothing new for you here. Fan control, licensing, presets, and the background helper are all unchanged.


The crash

Lowering the minimum version isn't enough on its own, and the first Ventura build proved it. Airway launched, sat in the menu bar for about two seconds, and then died without a word — no error, no crash dialog, nothing in the log.

The cause was the menu bar icon.

Airway draws its fan glyph using one of the icons built into macOS, and the one it asked for — fan.fill — was introduced in macOS 14. On Ventura it simply doesn't exist, so macOS handed back nothing. Airway had never allowed for that and treated "nothing" as a fatal error. The menu bar redraws on a two-second timer, which is why the crash arrived a couple of seconds after every launch, like clockwork.

Checking the rest of the app against Apple's own icon-availability data turned up six different icons newer than Ventura, across six files — the preset symbol picker and the Siri shortcut tiles among them. Only one of them crashed. The others would have drawn as blank gaps.

Each of those now falls back to an older icon that Ventura does have, and the symbol picker filters itself down to what your Mac can actually draw, so there are no empty tiles in the grid. There's now an automated test that reads macOS's own availability table and fails the build if anyone adds an icon that's too new, so this particular mistake can't come back.

The clipped window

With the crash out of the way, the popover opened at the wrong size. The window came up smaller than its contents, so macOS centred the interface inside it and cut off all four edges at once — the header vanished off the top, and "Add a preset…" read as "d a preset…".

Airway asks macOS to size the popover to fit its contents. From macOS 14 that works. On Ventura the request is quietly ignored and the window keeps a stale, too-small size. Airway now measures its own interface and sets the window size itself on Ventura, before the window is drawn rather than a frame after. On macOS 14 and later nothing changed — the system still handles it.


Updating

Airway updates itself. Open the popover and it'll offer 0.8.2, or use Check for Updates.

If you're on Ventura, download Airway from airway.fan instead. No earlier version of Airway runs on macOS 13, so there's no existing install for the updater to run from.


A note on testing

The crash fix is confirmed on real hardware. A 2017 15-inch MacBook Pro running Ventura now launches, stays running, and drives its fans correctly.

The window-sizing fix was written after that test and hasn't been confirmed on a Ventura Mac yet. It's covered by automated tests and it cannot affect macOS 14 or later, but if the popover still looks wrong on your Ventura Mac we'd genuinely like to know — there's a feedback form in Airway's options menu.

That's why Ventura support is marked experimental for now, rather than simply supported.

System requirements

  • macOS 13 (Ventura) or later — Ventura support is experimental
  • Apple Silicon or Intel Mac with SMC fan control support
ReleaseAug 24, 2026Airway 0.8.1 — M5 fan control and a thermal safety netFixes fan control on M5 Macs, ends the false 'install helper' loop, repairs the handoff back to automatic control, and adds an automatic override that forces fans to Maximum during sustained overheating.

Version 0.8.1 (build 4) — a focused bug-fix and safety release. Update from inside Airway, or download it from airway.fan.

This release started with a bug report from someone on an M5 Pro MacBook Pro:

"Fan control never works. When I try setting it to Manual or Max, it shows 'loading', then 'installing helper' appears, and then it just loops back to the fan control screen."

Tracking that down turned up four separate problems — one of which was quietly affecting every Mac, not just M5s.


Fan control now works on M5 Macs

Three things were stopping Airway from driving fans on M5-generation hardware.

Airway reads fan speeds and temperatures from the System Management Controller, and it worked out how to interpret each value purely from the format label the SMC attached to it. It recognised three such labels. M5 hands back several values in a format earlier chips didn't use — so Airway didn't recognise the label, and every one of those readings came through as a flat zero. No usable fan speeds, no usable limits. The same gap on the write side meant Airway's target speeds were written in the wrong shape entirely.

Airway now falls back to reading a value by its size whenever the label is unfamiliar. Sizes have stayed consistent across every chip generation, where labels haven't — so this should hold up on hardware that doesn't exist yet.

Third: M5 names its per-fan control key slightly differently from earlier chips. Airway checked for the old name first and could latch onto a key that looks readable but never actually does anything. It now checks for the current name first.

Credit where it's due — ThermalForge, an open-source fan utility with verified M5 coverage, documented the format and naming differences that made these fixes possible.

The "installing helper" loop is gone

This one affected everybody.

Airway talks to your fans through a small background helper. If that helper can't be reached, Airway offers to reinstall it — which is the right thing to do when the helper really is the problem.

But every failed fan change was being reported as a helper problem, whatever the actual cause. So a fan change your Mac had simply declined would show a spinner, then the "enable the helper" screen, then drop you back at the fan list a couple of seconds later once Airway reconnected — over and over, while the helper had been working perfectly the whole time.

Airway now tells those two situations apart. If your Mac declines a fan change, you get a short line of text above the controls explaining that, and the fan UI stays put. The reinstall prompt is now reserved for a helper that genuinely isn't answering.

Fan changes no longer silently do nothing

Two related fixes.

When your Mac wouldn't hand over manual fan control, Airway reported success anyway — so it would show Manual, then flip back to Auto two seconds later when it checked the hardware and found nothing had changed. A change that didn't take is now reported honestly.

And on Macs with more than one fan, a single fan change could take longer than Airway was willing to wait for it, at which point Airway gave up and declared the helper unreachable — while the helper was still working on it. That waiting period is now sized properly.

"Auto" actually returns control to macOS again

Found while testing this release on real hardware, and the most consequential fix here.

Handing your fans back to macOS involves writing one setting. The SMC rejects that write if it's still busy from the previous one — and, unhelpfully, reports the rejection as success. Airway wrote it once and trusted the result.

So pressing Auto, or quitting Airway (which hands fans back automatically), could leave your fans pinned at whatever manual speed they were last set to, with nothing on screen suggesting anything was wrong.

Airway now confirms the release actually happened and retries until it does. On the Mac used for testing, this needed three attempts on one fan and two on the other — which is exactly why a single write was never enough.


New: sustained-overheat safety override

A manual speed or a preset that's comfortable most of the time can be too quiet for a heavy sustained workload. Because Airway is holding the fans down rather than macOS, your Mac can sit at its thermal ceiling for as long as you leave it there.

Airway now watches for that:

  • 90°C for 3 minutes straight, while under a manual speed or a preset → fans go to Maximum automatically.
  • Once it drops back to 80°C for a minute, your mode and its exact speeds come back. Nothing to dismiss, nothing to re-apply.
  • While it's active, the popover tells you why the fans are at Maximum.

Some deliberate choices in how this behaves:

  • It doesn't apply in Auto mode. macOS is managing your fans there and doesn't need Airway second-guessing it.
  • It runs in the background helper rather than the app, so it keeps working with the popover closed — and even if you quit Airway with a manual speed still applied.
  • A temperature sensor that fails to read is treated as unknown, never as cool. A sensor glitch can't cause the override to let go while your Mac is still hot.

There's no setting for this. It's a hardware safety net, not a preference.


Also in this release

  • Temperature now reports the hottest sensor rather than the first one that answers, so a hot CPU cluster can't be masked by a cooler sensor that happened to be checked earlier. This is also the reading the safety override watches.
  • Added M5's combined CPU and GPU sensors to the list Airway checks.
  • Rejected writes to the SMC are now recorded in the helper's log instead of vanishing silently — which is what made the "Auto" bug above findable.

Updating

Airway updates itself — open the popover and it'll offer 0.8.1, or use Check for Updates. The background helper changed in this release; Airway notices the older one on first launch and refreshes it for you. No password, and no need to re-approve anything in System Settings.


A note on testing

Fan control was verified end to end on an M2 Max running macOS 27: taking manual control, holding an exact target RPM, and returning the fans to automatic control were each confirmed against live hardware. The safety override's full three-minute cycle is covered by automated tests.

The M5-specific parts follow ThermalForge's documented findings, since no M5 was available to test on directly. If you're on an M5 and fan control was broken for you, we'd genuinely like to know whether 0.8.1 fixes it — there's a feedback form in Airway's options menu.

System requirements

  • macOS 14 (Sonoma) or later
ReleaseAug 14, 2026Airway 0.8 — First public releaseAirway leaves closed beta with Siri & Shortcuts support, 8 languages, appearance controls, and automatic background updates.

Version 0.8 (build 3) — Airway's first release outside closed beta testing. Everything below reflects the complete, current feature set, not just what changed since the last build.

What is Airway?

Airway is a macOS menu-bar app for direct, granular control of your Mac's fans. It talks straight to the System Management Controller (SMC) through a small privileged helper, so you can see live RPM and temperature, switch between automatic and manual control, and save named presets for the fan behavior you use most — all from a lightweight popover anchored to the menu bar.


Highlights in this release

  • Public launch — Airway is now available outside the beta program, with a first-launch onboarding experience that walks new users through what the app does and how to set it up.
  • Siri & Shortcuts support — Fan control is now exposed through Apple's App Intents framework, so Airway can be controlled by voice ("Hey Siri, Airway on Max") and wired into Shortcuts automations.
  • 8 languages — The full app, including Siri responses, is now localized into English, Filipino, Spanish, French, German, Japanese, Chinese (Simplified), and Korean, with automatic system-language detection.
  • Appearance controls — A new Light/System/Dark override and a toggle to disable Airway's translucent "liquid glass" styling in favor of solid backgrounds.
  • Automatic updates — Airway now checks for and installs updates in the background via Sparkle, so future releases no longer require a manual reinstall.
  • Guided onboarding — A first-launch window with short video walkthroughs introduces fan control, presets, and licensing before users land in the main popover.

Full feature set

Core fan control

  • System Mode — hands fan control back to macOS's automatic thermal management.
  • Manual Mode — direct per-fan speed control via smooth sliders, with a hard 25% safety floor so airflow is never fully disabled by accident.
  • Max Mode — instantly spins all fans to maximum, useful for sustained heavy workloads.
  • Live monitoring — real-time RPM and system temperature, in the popover and optionally in the menu bar itself, in Celsius or Fahrenheit.
  • Fine-Tune toggle — switch manual control between coarse 25%-step adjustments and precise 1% granularity.
  • Graceful handoff — on quit, Airway automatically returns fan control to macOS rather than leaving fans pinned.

Presets

  • Save named fan configurations (by RPM or percentage) with a custom SF Symbol icon.
  • Apply any preset instantly from the popover; the active preset is highlighted and automatically clears if you adjust fans manually.
  • Full preset management — create, edit, reorder, and delete — in a dedicated Preset Manager window.
  • Presets persist locally across restarts.

Siri & Shortcuts

  • Four App Intents: Set Fan Mode (system, max, or any preset), Get Fan Status (RPM + temperature, usable for branching a Shortcut), Increase Fan Speed, and Decrease Fan Speed.
  • Works with natural Siri phrasing and synonyms (e.g., "full blast," "turbo," "automatic"), and appears automatically in the Shortcuts app.
  • Actions run against the same live app state as the popover — a preset triggered by Siri lights up as active in the UI immediately.
  • Gated behind an active trial, paid license, or beta access, same as the rest of the app — Siri is not a way around the paywall.

Language support

  • Airway is fully localized into 8 languages, plus a System option that auto-detects your macOS language:
    • English
    • Filipino
    • Spanish
    • French
    • German
    • Japanese
    • Chinese (Simplified)
    • Korean
  • Every user-facing screen is translated — the main popover, presets, licensing/paywall screens, feedback form, About window, and even Siri and Shortcuts responses.
  • Switching languages from the popover applies instantly across the whole app, no relaunch required.

Appearance

  • Appearance override (Light / System / Dark) applied app-wide, independent of the macOS-level setting.
  • Optional "disable liquid glass" toggle that swaps Airway's translucent materials for solid backgrounds.

Licensing & trial

  • 7-day free trial, no credit card required — just an email address to get started.
  • Cryptographically signed (ES256/P-256) license tokens verified on-device; the app never blindly trusts a token's claims.
  • Generous offline grace period after activation, so a temporary network hiccup never locks a paid user out.
  • License purchases are handled at airway.fan.

Onboarding

  • First-launch walkthrough with short video demos covering fan control, presets, and getting a license, presented in a dedicated onboarding window before the main popover appears.

Automatic updates

  • Background update checks via Sparkle, with in-app notification when an update is ready and a one-click "Update Now" install-and-relaunch flow.
  • Manual "Check for Updates" is also available at any time from the popover's options.

Feedback & stability

  • Built-in feedback form (bug report, idea, or general feedback) directly from the popover's options, with optional contact email.
  • Automatic crash reporting to help prioritize stability fixes — crash and feedback data are only ever used to improve the app.

System integration & safety

  • Communicates with hardware through a privileged helper daemon over a secure, authenticated XPC connection — Airway itself never runs with elevated privileges.
  • Manual fan overrides are hard-floored at 25% to protect against accidental overheating; this floor applies everywhere fan speed can be set, including presets and Siri/Shortcuts.

System requirements

  • macOS 14 (Sonoma) or later
  • Apple Silicon or Intel Mac with SMC-based fan control

Installing Airway

Airway is not yet distributed through the Mac App Store or notarized by Apple, so macOS will show a security prompt the first time you open it. This is expected — here's how to get past it:

  1. Move Airway.app to /Applications.
  2. Double-click to open it. macOS will show a warning that it can't verify the developer.
  3. Go to System Settings → Privacy & Security, scroll to the message about Airway being blocked, and click Open Anyway.
  4. On first launch, Airway will ask to install its privileged helper (used for fan control). Approve it under System Settings → General → Login Items & Extensions → Allow in the Background — fan control won't work until this is approved.

Future updates delivered through Airway's built-in updater will not require repeating this process.


Known limitations

  • Airway is signed but not yet notarized by Apple, so the Gatekeeper steps above are required on first install.
  • Crash reporting currently catches uncaught Objective-C/Cocoa exceptions; low-level Swift crashes (fatalError, signals) are not yet captured.
  • Multi-device license management, custom fan curves/thermal profiles, historical usage tracking, and scheduled profile switching are planned but not yet available.

Roadmap

Planned for upcoming releases:

  • Multi-device license management
  • Custom fan curves and thermal profiles
  • Historical usage and temperature tracking
  • Advanced scheduling for automatic profile switching

Links

  • Get a license / download: airway.fan
  • Feedback: in-app, via the popover's options panel