Changelog
Every release of Bastion, newest first. These are the notes the app shows before it updates itself; the builds are on GitHub.
-
1.28.0 ·
Claude Code can be held to Bastion's servers.
A switch on each Claude Code profile blocks the MCP servers that plugins and claude.ai connectors add, and keeps Bastion and the ones you set up. Remote servers and client wiring are sturdier too.
Read the 1.28.0 notes → -
1.27.0 ·
Other apps can hand their MCP server to Bastion.
An app on this Mac can now offer Bastion the MCP server it runs, and Bastion adds it only once you confirm, with its token kept in the Keychain.
Read the 1.27.0 notes → -
1.26.0 ·
Yahoo Finance watchlists, behind the writes switch.
Yahoo Finance can now change a signed-in account's watchlists, and Bastion keeps those tools hidden until a profile turns writes on. The menu bar panel now gets out of the way of the window it opens.
Read the 1.26.0 notes → -
1.25.0 ·
One set of Agent Skills, linked into every client.
Bastion links the skills in folders you choose into Claude Code, Codex, Cursor and the other clients that read them, and leaves alone what it did not create. Client wiring and supervision are safer too.
Read the 1.25.0 notes → -
1.24.0 ·
Xcode's own MCP server, shared by every client.
Xcode 26.3 and later ship an MCP server that builds, runs and tests a project. Bastion now runs it behind one approval in Xcode, and with writes off it cannot edit the project or run arbitrary code.
Read the 1.24.0 notes → -
1.23.0 ·
- Workspaces scope profiles to folders.
- Usage stats count what you asked for, not what the client's SDK sent on its own.
-
1.22.0 ·
- Claude Code's other config directories are offered as clients of their own.
- A config directory Bastion has not written is left alone until you ask.
- A window resize could take the app down.
-
1.21.0 ·
- Entries Bastion left behind can be cleaned up without unwiring the client.
-
1.20.0 ·
- A server running on this Mac can be added as a remote server.
-
1.19.0 ·
- Launch at login
- An npm install could hang with nothing left to wait for.
- A custom server at an
http://URL was refused as a bad npm package name. - A stdio client could wait forever for Bastion to start.
-
1.18.0 ·
- A Stats pane, and the number nobody could see.
- A usage rollup, on disk and on by default.
server_stats- Adding or removing a profile updates every client already wired to Bastion.
-
1.17.1 ·
- The menu bar panel came up empty in 1.17.0.
- The menu bar header pins the version to its trailing edge.
-
1.17.0 ·
- Help ▸ Report an Issue, Send Feedback and Bastion Support.
- The app icon's fort sits behind the ridge instead of on top of it.
- A gateway that had died went on showing green.
- The menu bar panel had a phantom gap above the gateway line when licensed.
-
1.16.0 ·
- A reply can be stopped, and the chat says which tool it is waiting on.
- One press asks about every installed server, and the sidebar says which ones answered.
- Leaving the chat pane threw the conversation away.
- The transcript scrolled to the wrong place, or not at all.
-
1.15.0 ·
- X signs you in itself now, rather than asking for a client ID nothing read.
- The EULA names Magenta Creations.
- The What's New pane broke sentences that run on past the bold part.
-
1.14.0 ·
- A profile's tools, prompts and resources, in one place.
- What changed, readable after you have already updated.
- A server that shells out to
npmcould not find it. - The npm catalog entry documents the variables it always read.
-
1.13.0 ·
- A shield in front of the provenance badge, and a seventeenth package behind it.
- One crafted request could take the whole app down, before it was ever asked who was sending it.
- A progress frame could be written into a different client's response.
- A double-spawn race could leave an orphaned server holding a profile's credentials.
-
1.12.0 ·
- The iOS Simulator joins the catalog.
- Catalog entries say which packages npm can tie back to the repository they link to.
- A listing too small to be worth searching is no longer fronted, whatever the switch says.
-
1.11.0 ·
- The writes get their own dispatcher, so an editor's approval rule stops collapsing.
- Every client now says what it is actually being sent.
- "Load tools on demand" moved from the profile to the server.
- The cost figure stopped rounding in its own favour.
-
1.10.0 ·
- A client that already defers tool schemas is never fronted.
-
1.9.0 ·
- Progress on a long call, streamed to the client that asked for it.
- A search field on the catalog tab.
-
1.8.0 ·
- Load tools on demand, app-wide and per server.
bastion_search_toolsno longer answers "no tool matches" when one does.
-
1.7.0 ·
- Load a profile's tools on demand.
-
1.6.0 ·
- Eleven more servers in the catalog.
- An update path on Bastion's own server.
- The sidebar lists the clients you actually have.
scripts/builtin-check.shhonoursBASTION_PORT.
-
1.5.0 ·
- LM Studio and Windsurf.
- Two more servers in the catalog: iOS Device and CloudKit.
- A + at the end of the Servers header.
- Client and server rows draw real icons.
-
1.4.1 ·
- The sidebar is sorted alphabetically, with Bastion pinned to the top.
-
1.4.0 ·
- Ten more remote servers in the catalog.
- The gateway bounds what a connection costs before it presents a token.
- The licence Worker's two public routes are rate-limited, and
/thanksstops showing the key after a week. - A spawned server's credentials are struck from its stderr.
-
1.3.2 ·
- What a server costs the editors that connect to it.
x-apiandovh-apiare nowxandovh.
-
1.3.1 ·
- A switched-off server is no longer written into client configs.
-
1.3.0 ·
- npm joins the catalog.
- A variable that is a switch is offered as one.
- Updates is its own pane in Settings, instead of the fourth card down General.
- The write gate is no longer a text field in the profile editor.
-
1.2.1 ·
- A modern client could handshake cleanly and then register no tools at all.
- The same symptom from the other end: a child's
listChanged: truewas passed straight through. - Typing a profile name allocated a callback port for every prefix of it.
-
1.2.0 ·
- The audit log can be kept on disk.
- The log can be exported, and signed if you want it.
- The Activity log has a search.
- Logs and Settings are one click from the menu bar.
-
1.1.0 ·
- The menu bar icon says whether anything is running.
- The menu bar popover is a panel, not a list of menu items.
- Add Server and Check for Updates left the popover.
- The licence terms said the audit log records neither arguments nor results.
-
1.0.0 ·
- One supervised server process per profile, instead of one per editor.
- Credentials live in the Keychain, and nothing reads them back.
- The gateway binds loopback and refuses anything that is not local.
- Both protocol eras, translated.