What’s new.

Updates to Airlock, delivered to your Mac.

Keep Airlock up to date.

Airlock checks for updates and verifies their signatures before installation. Read the release notes here to see what has changed.

v0.4.2

Files the change creates now say so in the reading order, instead of looking like every other reference.

  • A new file is tagged rather than inferred. Every reference in the reading order is a path over a collapsed box, so a file the change creates and a file it rewrote looked identical until you opened one. A new file is the one case the packet shows whole rather than as a diff — every line would carry a plus — and that removed the green lines which used to answer the question. New file now sits beside the path on the closed row, so it is true before you open anything.
  • Neutral, not blue. Read this file is the plan's one instruction on that row and owns the accent. The tag is a fact about the change, so it takes the same quiet pill the branch overview uses for its computed facts, and the path ellipsises first when the row is narrow.

v0.4.1

Airlock's reviews now run on Claude Sonnet 5.5, faster and cheaper than the Opus model it was running on before.

  • The model is named rather than inherited. Airlock sent no model at all, so every packet came from whatever Claude Code's own default happened to be — claude-opus-5[1m], which changed under the app in the Claude Code release this one ships. That is why it is written down now: claude-sonnet-5-5, a full version rather than the sonnet alias, so a model bump is something somebody decides rather than something that arrives.
  • The copy of Claude Code the app ships is newer — 2.1.303 where it was 2.1.270, 33 releases on. The tools a review is allowed to use are unchanged: read, grep and glob, and nothing that writes.
  • Opus is still there if you want it. Sonnet 5.5 is the faster and cheaper of the two and it is what a review runs on now; moving back is one line, and so would be a choice in Settings.

v0.4.0

Airlock signs off on GitHub as itself, sends your review as a draft, and writes every packet for one reader.

  • Sign off on GitHub. The review document's completion action puts a green airlock/review status on the commit you read, so a branch can require a human review with no workflow file at all. A section you have not read raises a warning you can overrule; an earlier revision is refused outright, because the status would land on a commit you are not looking at.
  • Sign off as Airlock. The status used to wear the GitHub CLI's logo, because gh was what posted it. One approval of Airlock's own GitHub login — repo:status, commit statuses and nothing else — and the green check is Airlock's. Connect GitHub is in Settings, and a pull request in an organisation that has not approved Airlock says which organisation to ask.
  • Send your review as a draft. Beside Copy, the document goes to the pull request as a pending review: every note on the lines it was written about, on the file when it is stale or does not fit, in the body when it has no anchor in the change. Nothing is submitted from here — you submit it on GitHub.
  • One packet, one voice. The "who is this written for?" question is gone, and so is the Settings choice behind it: every packet is written for the same reader. The rules that shape the prose were rewritten against measured evidence — a section title is a clause rather than a noun phrase, the overview is bounded, and the packet orients you rather than telling you what to think.
  • One conversation per file or section, in a modal over the reading surface, instead of one per question. The surface carries counts — PR claims · 3 supported · 1 contradicted — rather than the claims themselves, and the sentences are inside where you go to pick one.
  • The planning rail fills its column. Tool calls no longer stop at twelve and leave empty space below them: the newest are at the top and the oldest clip off the bottom edge. The notice now says what the wait ends in, and the overview appears in the slot it pointed at.
  • Open URL… stays empty until you type in it. It filled itself from the clipboard on mount and on every return to the window, which read as a bug rather than a kindness.

v0.3.0

Airlock opens as a launcher, aims questions at lines rather than whole files, and says when the agent has finished.

  • A launcher window, and a review window. The app now opens as a small, centred window — your projects' open pull requests beside a brand column with search, Open URL…, Feedback and Settings. Opening a pull request grows the same window to the display for the review; leaving it takes the window back. The list refreshes itself when you come back to the app, and says something useful when there is nothing in it.
  • Ask about lines, not just about files. Every rendered line carries its number. Click one, shift-click a second, or press and sweep, and Ask or Add note is aimed at exactly those lines — recorded that way, exported that way (src/git.ts:40-58), and dated only when a commit actually reaches that passage. A note whose lines merely moved down the file follows them, and only when the move can be proved.
  • Choose who the packet is for. Technical, non-technical, or technical and fast: Airlock asks before the first review and Settings holds the choice beside the theme. The reader you pick shapes the packet's language and its length, and how many sections a change earns is now decided by the change rather than by a fixed range — a twenty-line fix no longer gets padded out to six.
  • A banner when the agent has finished, if you are not looking at the window. It names the task and never the answer — "The agent answered", not the answer itself — because a notification carrying the substance is one read instead of the review.
  • Prose that reads like a document, and code you can take with you. A section's writing now sits in a card of its own, at a size meant for reading, with the code beside it in a wider column. Every question and every verdict has a copy badge in its header, and copying diff lines no longer takes git's + with them. View on GitHub and the footer identity both lead back to the pull request.
  • The update card says what is in the update — the release's own first sentence, not what restarting would cost — and it waits for a quiet moment rather than interrupting a plan or an ask. Release Notes… and Feedback… are in the Airlock menu.

v0.2.1

When something goes wrong, Airlock now says what went wrong.

  • A pull request that has already merged says so. Pasting the URL of a merged pull request used to answer fatal: couldn't find remote ref refs/heads/… — git describing a file inside .git to someone who has never opened one, and describing the wrong thing besides. The branch was deleted when the pull request merged, which is the ordinary end of a pull request, and that is what it says now.
  • Every other failure is named rather than quoted. A branch that is no longer on the remote, credentials the remote refused, a host that could not be reached, a fetch that ran too long, a folder that is no longer a checkout — each is one sentence, and only a failure nothing recognises still shows you what the tool printed.
  • A review that will not open says why, in the same words, instead of the message a function threw. An engine that has stopped answering now says the app may need restarting, rather than Failed to fetch.
  • Branch names, paths and commands are set apart from the sentence they sit in, the way they are everywhere else in the app.

v0.2.0

Airlock has been rebuilt to its approved design, and most of what you do with it now happens somewhere it did not before.

  • An inbox of open pull requests, across every project on this machine. It is the screen you land on. Open URL… is still the only way to a project this machine has never seen.
  • One inspector on the right, holding Ask and Your notes. These used to be two panes arriving from two directions and competing for the same reading surface. Each reference's Ask and Add note now sit in that file's own header, so what you open the composer about is never in doubt.
  • The review document is a screen. The one thing this tool produces was the one thing you could not look at while making it. Read it, edit it, preview it and copy it without leaving the app.
  • Claims are on screen for the first time — what the pull request says about itself, placed beside the code that would settle it, with a verdict you can re-check. A re-check is added beside the original, never over it.
  • You are inside the review while it plans. The wait is spent on the change itself — commit messages and file counts — with the agent's tool calls beside you and a clock counting up from when the run started. It used to promise five minutes; every run ever measured for this project was longer than that.
  • A way on from the branch overview: a button naming the section you want — Next unread · 03 · … — instead of six titles in the rail and remembering which you have done. A section whose files moved keeps its own place in the order rather than being demoted behind everything unread.
  • Settings, at ⌘, with Light / Dark / System as one control. The theme was a single glyph that could only say light or dark, so choosing one left no way back to following the system.
  • A ready update is a card at the bottom left, with the cost of restarting on a line of its own. It used to be last in a chain of five footer messages and could sit unseen for a whole session.

v0.1.2

  • Restarting into an update no longer pauses for thirty seconds first. After a successful install the app reports that it is restarting, and the quit path no longer waits for an install that has already finished. Airlock 0.1.1 will still take that pause once, on its way to this version; from here on the relaunch follows the install directly.

v0.1.1

  • The first update delivered through airlock.build. Nothing in the app changed beyond its version; this release exists to prove that an installed 0.1.0 finds it, downloads it in the background, offers the restart, and comes back as 0.1.1 — the whole path, end to end.

v0.1.0

  • Airlock now updates itself. It checks for a new version shortly after launch and every four hours, downloads it in the background, and offers a restart in the footer when it is ready. Check for Updates… in the Airlock menu looks straight away. A copy that cannot update itself — running from the disk image, or not yet moved to Applications — says so and points here instead.

Airlock for Mac.

Free for public repositories. Your first month on private repositories is free, starting with your first private PR.

Mac
Apple Silicon
Tools
git and GitHub CLI (gh)
Agent
Your Claude Code login
Download for MacSetup guideAsk on WhatsApp

Airlock Individual.

A licence for reviewing private GitHub repositories on your Mac.

$99 / year
Licence
Individual
Billing
Annual
Activation
Paste your key into Airlock

Use your own Claude subscription. Airlock never bills you for tokens.

Licence details

Send Airlock to your Mac.

Pick this up on your Mac when you’re ready.

Email yourself