Repository navigation
Releases
Connector Control 1.5.2
Download: on a Mac, ConnectorControl_1.5.2.dmg; on a Windows PC, ConnectorControl-win-x64-Setup.exe (Intel and AMD) or ConnectorControl-win-arm64-Setup.exe (Arm). Everything else listed below (appcast.xml, the .nupkg packages, releases.*.json) is read by the apps' built-in updaters and never needs downloading.
Both platforms
- Claude can now add, change or remove some of a connector’s environment variables and leave the others, whose values it never sees, as they are, with a new Change environment tool (
set_connector_env). From the command line,connector-control env <name> KEY=value --unset OTHERdoes the same. Before, Claude had to send back the connector’s whole config, including values it was only ever shown as hidden. - When Claude sets a variable to the value it already holds, or sends a connector’s config back unchanged, Connector Control now asks and answers exactly as for a real change, so Claude can’t use the reply to check a guess at a value it can’t see. For a connector Claude runs, this writes Claude’s config again and shows Restart Required. Change connector’s question now lists every environment variable and header Claude sent: a value it shows reads
= NAME = value (unchanged)when it didn’t change, and a hidden one reads − and + as a change does.connector-control envandconnector-control editstill refuse a command that changes nothing. - Claude and the command line can no longer save the hidden placeholder
set(orneeds value,needs your value, or anything containing•••) over a connector’s real value, such as abw://orop://reference; the change is refused and says what to do instead. Before, sending back a connector as Claude was shown it replaced its secrets with the placeholder, and the confirmation, which hides a secret’s old and new values alike, couldn’t show it. A connector that already holds the placeholder can still be changed; type its real value back in the editor.
Release pipeline
- The Windows build uses actions/setup-dotnet 6.1.0, up from 6.0.0.
Full changelog: v1.5.1...v1.5.2
Connector Control 1.5.1
Download: on a Mac, ConnectorControl_1.5.1.dmg; on a Windows PC, ConnectorControl-win-x64-Setup.exe (Intel and AMD) or ConnectorControl-win-arm64-Setup.exe (Arm). Everything else listed below (appcast.xml, the .nupkg packages, releases.*.json) is read by the apps' built-in updaters and never needs downloading.
macOS
- Restart Claude no longer says Claude “didn’t quit” when it actually did; Connector Control now reopens it.
- The JSON editor now supports undo (Cmd-Z) and no longer autocorrects or spell-checks what you type, so commands, arguments and header names stay as written.
- When you stop publishing a collection and choose Delete for its published file, only that file is deleted. Before, if a folder had been put in the shared folder under that file’s name, it deleted that folder and everything in it.
- The menu bar icon now has a name for VoiceOver - “Connector Control”, or “Connector Control: Apply Failed - Retry” when an apply is waiting to be retried - and VoiceOver no longer reads the “▾” after the collection name in the popover.
- A change to a connector that differs only in how an accented letter is written (é as one character, or as e followed by a combining accent) is now written to Claude’s config, as it is on Windows. Before, the Mac counted the two as the same and left Claude’s config as it was.
- Settings ▸ Claude ▸ Command-Line Tool ▸ Install now refuses while Connector Control is in a folder that can be changed without an administrator, such as
~/Applicationsor Downloads, and asks you to move it to Applications. The link it makes in /usr/local/bin is on every account’s PATH, so before, another account runningconnector-controlcould run a tool any account could change; now only an administrator can. - A master list file (mcps.json) with a trailing comma, nested more than 64 levels deep, or saved as UTF-16 or UTF-32 is now treated as unreadable, as on Windows: it’s kept aside and replaced, as any unreadable master list is. Before, the Mac read such a file while Windows, which can share it through a synced Master List Location, could not. Claude’s own config was already read this way.
- Removing old backups no longer deletes a folder in the backups folder that’s named like a backup, with everything in it; only backup files are counted and removed, as on Windows.
Windows
- Pressing Escape to close the editor’s Authentication drop-down now closes just the drop-down; before, it closed the whole editor and lost your unsaved changes. Escape in the flyout’s collection menu likewise closes only the menu. With nothing open, Escape still cancels the editor and dismisses the flyout.
- Check for Updates now reads “Checking…” and can’t be clicked while a check runs, instead of looking as if nothing happened. After Install and Relaunch, the update dialog stays open reading “Downloading…” until Connector Control relaunches, instead of the app just vanishing, and its Later button reads Cancel, which stops the download and takes the dialog back to Install and Relaunch or Later. A download or relaunch that fails now closes the dialog and says “Couldn’t install the update.” rather than “Couldn’t check for updates.”
- Narrator now names the flyout’s Restart Claude button and the collection switcher (with its waiting update), the Settings backup − and + buttons (which also dim at 5 and 100) and the Name field in New Collection, Rename and Duplicate. Each Use Default and Choose… button in Settings now says which row it belongs to.
- The Settings tabs now show their icons - a gear for General, a drive for Storage, and Claude’s own icon, or a generic app icon where Claude’s can’t be read - instead of an empty space before each name. Claude’s icon is now sharp at 150% and 200% scaling.
- The Publish and Export dialogs now fit on a short screen, including a second screen shorter than the main one: when there isn’t room, the preview gets shorter so the Publish, Export and Cancel buttons stay visible.
- Start Publishing into a folder that already holds a folder with the collection’s document name (such as
work.json) now says that name is taken, as the Mac does, instead of failing with a file-system error. - Connector Control now refuses an update when it can’t read its own installed version. Before, the checks that keep a preview off a release install and stop a downgrade were skipped in that case, and only the update feed kept them out.
- An update is now installed only if the launcher it puts beside Connector Control’s updater is a program signed by Connector Control’s own publisher, as the app and its updater already had to be.
- When an update is refused and the updater it brought can’t be removed (for example, because a virus scanner is holding it), the message now says so, and says whether Connector Control will put its own updater back the next time it starts or whether you need to reinstall. Before, it gave only the reason for the refusal.
- The first update check after launch now waits for Connector Control to finish restoring an updater left behind by an earlier, interrupted update. Before, the two could overlap, and the check could fail for no real reason.
- Two connectors in a collection can no longer have names that differ only in how an accented letter is written (é as one character, or as e followed by a combining accent): the second is refused as a name already in use, as on the Mac, and Claude’s config naming a connector in the other spelling is read as that connector. Before, Windows kept both, and Claude’s config then named one connector twice, which Connector Control refused to read back.
- A new, copied, renamed or subscribed collection can no longer take a name that differs from another collection’s only in how an accented letter is written, as on the Mac. Before, Windows kept both, and a Mac sharing the same master list kept only one of them and dropped the other.
- With UAC turned off, or on the built-in Administrator account, the command-line tool and Claude now start Connector Control when it isn’t running, as they do everywhere else. Before, they started nothing there, and you had to open Connector Control first. A terminal opened with Run as administrator still starts nothing, since the app it started would be out of reach of everything else you run.
Both platforms
- Screen readers now name each row in the Publish sheet and the editor’s environment list: the share and path ticks and the hint boxes say which connector and variable they belong to, and each environment row’s name, value and delete button, and each argument’s delete button, carry the row’s number, instead of every row sounding the same. The Publish sheet’s Forget Mark, Release and Use ${COLLECTION_DIR} buttons now say which connector and path they act on.
- The Publish sheet no longer offers plain words such as
usrortmpas machine-specific paths. Which arguments it offers now depends only on how they’re written (a full path,.or.., or one that starts with~,./,../or\\, such as\\server\share\server.js, whether or not the share can be reached right now), not on how Connector Control happened to be started. On the Mac a network path was never offered. - Saving a connector with “Also apply this change to …” ticked now writes your connector list and takes a backup once, instead of once per collection. The in-between states no longer use up backup slots and push older history out.
- Commands that ask for something before they act now end in “…”, as Choose… and Restore… in Settings already did. New Collection, Rename, Duplicate, Make Local Copy, Import, Subscribe, Start Publishing, Publishing Settings, Export, Export All, Choose Folder, Locate and Review & Apply now read that way; commands that act at once, or only ask you to confirm, keep their plain names.
- Claude no longer sees a secret in a few argument shapes that used to slip past the masking: a header written as
X-Api-Key: …after a flag Connector Control doesn’t know,admin:passwordafter-u,--useror--proxy-useror before an@with nohttps://, JSON-like config that isn’t strict JSON ({apiKey: '…'}or{env: {…}}), a shell default such as${DB_PASSWORD:-…}, the rest of a value written with\for a space, andenvorheadersspelt with capitals or asenvs. Ordinary values still show as written: ones that start with a bracket, such as[::1],{src,lib}or[default], and ones such askeycloak:8080,token:reador Docker’s-v secrets:/run/secrets. - When Claude or the command-line tool tries to add, change or delete a connector in a subscribed collection, the refusal now names the collection and says what to do instead (add the connector to a local collection, or make a local copy with Make Local Copy to change it), rather than repeating a window tooltip.
- Copy to now confirms a copy: the count under the collection’s name adds, for example, “Copied 2 connectors to “Work”” until you tick a row, run another command in the window or choose another collection. Before, the ticks just cleared and nothing said where the copies went.
- After you pick a Claude app in Settings ▸ Claude (on Windows, its launch target), the row now reads “Checking…” and Choose… is dimmed while its signature is verified, which can take a few seconds. Before, nothing changed on screen until the check finished, and a second click started a second check.
- Messages, tooltips and help text use a hyphen where they used an em-dash.
- When Claude or the command-line tool asks for a tool Connector Control doesn’t have, the answer now reads “There’s no tool named “…”.”, in the app’s own words and with the name shown safely, instead of a bare “Unknown tool: …”.
connector-control collectionwith no subcommand now lists the four it takes (new, rename, duplicate, delete), and a wrong one says it isn’t a collection command, instead of saying there is no command named “collection”. `connector-control help sta...
Connector Control 1.5.0
Download: on a Mac, ConnectorControl_1.5.0.dmg; on a Windows PC, ConnectorControl-win-x64-Setup.exe (Intel and AMD) or ConnectorControl-win-arm64-Setup.exe (Arm). Everything else listed below (appcast.xml, the .nupkg packages, releases.*.json) is read by the apps' built-in updaters and never needs downloading.
macOS
- The command-line tool is inside the app, at
Contents/MacOS/connector-control, and updates
with it. Remove, beside Install, takes the /usr/local/bin link away again. A folder Install has
to make there is one only an administrator can write to, whatever the machine's umask. - Before you delete the app, turn off "Let Claude manage Connector Control" and Remove the
command-line tool. Otherwise Claude keeps a connector-control connector whose tool is gone and
shows it as failed, until you remove its entry from claude_desktop_config.json by hand. The
Windows uninstaller does both for you. - A preview install updates itself to each later preview and then to the final release, as on
Windows; see Release pipeline for the one step to take by hand. - Sparkle, the updater, is 2.10.1, up from 2.10.0.
- Claude's config, or a backup of it, is read as the Windows app reads it: one with a trailing
comma, saved as UTF-16 or UTF-32, or nested more than 64 levels deep is reported as not valid
JSON. Before, the Mac read it as if it were valid.
Windows
- The command-line tool is copied to
%LOCALAPPDATA%\Connector Control\bin\each time the app
starts, and Claude's entry and your PATH use that copy, so an update never stops a relay Claude
is running. Install adds that folder to the end of your user PATH and leaves every other entry
exactly as written. It refuses while the copy is missing, and a PATH the registry holds as
anything but text is left as it is. - Uninstalling takes Connector Control's entry out of Claude's config, after a backup, deletes
bin\and takes that folder out of your user PATH. It holds the app's single-instance lock
meanwhile, so an app Claude starts during the uninstall can't put the entry back. - An app the command-line tool or Claude's relay starts gets the PATH you get at sign-in, not the
terminal's or Claude's, and none of their CONNECTOR_CONTROL_ variables, so it finds the same
npx and uvx however it was started. - A program that took the app's pipe name first, under another account, learns who connected to
it and nothing more; it can't act as you. - An update is installed only when the programs that must be Connector Control's own are signed
by a certificate with the running app's whole subject, not merely its organization, and a
certificate known to be revoked is refused. When the revocation servers can't be reached the
update still installs, and crash.log says so once. - An update package is accepted only as exactly the version the update feed names, preview label
included, so a signed earlier preview can't be passed off as a later one or as the release. - An update package the check can't finish, or one holding a file name Windows can't hold, is
refused and deleted, and nothing the check didn't pass is applied when the app next starts.
Before, such a package could be applied at the next launch. An update check cut short by
quitting the app no longer leaves every later update refused: the app puts the installed updater
back when it starts and before each check, and keeps its saved copy until that has worked. - A release install takes only releases: a signed preview package is refused even if a feed
offers it. - The update dialog shows an image in the release notes as its text and loads nothing. Before, it
fetched the image, from a network share too. - The command interpreter and File Explorer are started by full path, from System32 and the
Windows folder, so a cmd.exe or explorer.exe placed beside the app never runs in their place. - The installer and the updater are Velopack 1.2.161, up from 1.2.158.
Both platforms
- Claude integration, off until you turn it on: Connector Control can add a connector of its own,
connector-control, to Claude's config, so Claude can list, switch and edit your connectors. The
popover or flyout offers it once; the switch is in Settings ▸ Claude, where "Confirm changes Claude
makes" is on by default. - While that is on, Connector Control asks you before Claude adds, edits or deletes a connector,
deletes a collection, imports, subscribes, applies an update or restores a backup, with Don't
Allow the default; it always asks before Claude restarts itself. Turning a connector on or off and
switching collections don't ask: a notification says what changed, as one does for every change
Claude makes while confirmations are off. - Only you can change the Claude integration, the confirmation, the notice of changes synced in
from another machine, and automatic updates, in Settings or with the command-line tool; Claude
can change the other settings. - The connector-control command-line tool ships inside the app on both platforms, for scripts and
MDM;connector-control helplists its commands. Settings ▸ Claude ▸ Command-Line Tool puts it in
your PATH: on a Mac a link in /usr/local/bin, with an administrator prompt when that folder isn't
yours; on Windows the tool's folder in your user PATH, which terminals opened afterwards see. - If the active collection already holds a connector named connector-control, it keeps working,
and the integration's switch is dimmed with "A connector named “connector-control” already
exists. Rename it to turn this on." No other connector can take that name. - Run the command-line tool as yourself. Under sudo, or in an elevated terminal on Windows, it
starts nothing and says "Run connector-control without administrator rights: Connector Control
runs as you, and an elevated copy can’t reach it." On Windows with the built-in Administrator
account or UAC turned off, open Connector Control first, and the tool reaches it. - A change Claude asked about is applied from exactly the file you were shown, even if the file
changes in the moment after you click Allow; if it changed while the question was open, nothing
is done and Claude is told to ask again. - The Import and Restore sheets land the file you reviewed. Before, Import read the document again
when you clicked it, and Restore read the backup only once you had confirmed, so a file
rewritten in between landed unseen. - A restore writes the backup as Connector Control read it, in the format every apply writes, and
refuses a backup that lists the same name twice, which Connector Control and Claude would read
differently. Before, it copied the backup byte for byte. - A file that isn't valid JSON — Claude's config, a backup or a collection document — is reported
in the same words on both platforms, and the message quotes nothing from the file. - A setting changed with
connector-control settings setshows at once in a Settings window that
is already open. - A collection file over 1 MB, a backup over 16 MB, or anything that isn't a regular file is
refused as it is read, so a file swapped for a huge one can't stall the app. - In the confirmation dialog each line of what would run is drawn on its own, clipped to its own
height, so nothing in one line can draw over another, and it is selected and copied one line at a
time. The block is one stop for Tab, and Up, Down, Page Up and Page Down move through its lines.
Up to two accent marks per letter are drawn, so Thai, Vietnamese, pointed Hebrew and Arabic read
as written; a third or later one, or one with no letter, shows as its code. - A character that draws nothing shows as its code, so a name or variable that only gained one
doesn't read as unchanged, and right-to-left letters in a line can't reorder the arguments
around them. - A name too long for a dialog keeps its start and its end around the "…", so long names that
share a start still read apart. The name an MCP client gives itself is cut the same way, so it
can't push what the client did out of a notification. - Environment variables that name a program to run, such as GIT_ASKPASS, GIT_SSH_COMMAND,
NODE_OPTIONS and LD_PRELOAD, always show in full in the dialog, though their names may look like
a secret's, so you see what would run before you allow it. Claude still reads only that they are
set. - Claude never reads a secret packed into one argument: a whole shell line (
bash -c,cmd /c),
JSON passed as an argument, a URL password holding # ? or /, a header in any bridge's form, the
token after Bearer, and text written against a${CC_NEEDS:…}placeholder all read as •••. A
whole command line in one argument that holds a URL with a query reads as ••• in full. - Claude's connection keeps working after Connector Control restarts, and its relay always ends
once Claude closes it, whatever calls Claude cancelled on the way. - Settings reads the same way everywhere: each row says what it is on the left, with a one-line note
under it, and has its control on the right; every group has a heading, and every on/off setting
is a switch. A missing tool's row stays one line, and how to install it is under the Tools box.
Release pipeline
- Mac previews now update themselves, as Windows previews do: a preview build reads its own
Sparkle feed (thepreview-feedprerelease), which every published preview and every stable
release replaces, never with an older build, so a preview install is offered each later
preview and then the final release. Previews up topreview-9still read the stable feed;
install the first preview afterpreview-9once by hand. - The preview feed moves only to a build newer than every published preview and release, read
from their own appcasts, and a served feed newer than all of them fails the run, so a planted
feed can't stop preview updates while CI stays green. - A preview's update...
Preview update feed
Not a download. This prerelease holds appcast.xml, the update feed that Connector Control's Mac preview builds check for new versions. Every preview and every stable release replaces it. For a preview, see the numbered preview-<n> releases; for the app itself, the latest release. The source archives GitHub lists here are not a build of anything.
Connector Control 1.4.0
Download: on a Mac, ConnectorControl_1.4.0.dmg; on a Windows PC, ConnectorControl-win-x64-Setup.exe (Intel and AMD) or ConnectorControl-win-arm64-Setup.exe (Arm). Everything else listed below (appcast.xml, the .nupkg packages, releases.*.json) is read by the apps' built-in updaters and never needs downloading.
macOS
- Opening a connector whose editor is already open brings that editor forward even if the
connector was switched on or off in the meantime, rather than opening a second editor for
it, as on Windows. - Escape cancels every sheet in the Collections window, and the connector editor, as their
Cancel buttons do. - A connector editor left open in 1.3 that macOS reopens after the upgrade closes itself,
rather than stand empty: it cannot say which collection it was editing. - In the Collections window, a click on a connector's tick or row no longer leaves the focus
ring around its box. The ring shows only when the keyboard moves focus to a row (Tab into
the list, or Up and Down), as the Windows row's focus rectangle does. - The app updates itself with Sparkle 2.10.0, up from 2.9.6, and the release's update feed is
signed with the Sparkle 2.10.0 tools to match.
Windows
- The connector editor and the Collections window's dialogs open with the keyboard in their
first text field, as on the Mac: the connector's name in the editor, the new collection's
name in Subscribe. - In the Collections window, Return on a collection in the sidebar makes it the active one,
as a double-click does and as it already did on the Mac. - Connectors arriving from a shared collection go through the same check as ones typed
into the editor: a Server URL, header name, client ID or client secret containing
& | < > ^ "or a space, or scopes containing any of those characters other than a
space, is refused, because Claude Desktop hands thecmd /c npxlauncher's arguments
to cmd.exe unescaped. The Import sheet lists such a connector as skipped and names the
field, and it stays out of the import and of later updates. A Mac writes barenpx,
so the same document imports whole there. - A connector launched through the command shell that uses
${COLLECTION_DIR}is
cautioned when the folder that token stands for holds& | < > ^ "or a space, as an
ordinary Windows folder name may: cmd.exe would read those as commands. - The installer, the updater and the small launcher beside the app are built for the PC's
own processor, so an Arm PC runs them natively instead of under x86 emulation. They
come from Velopack 1.2.158, up from 1.2.0, and the app's update code moves with them.
Both platforms
- New Collection, under the Collections window's sidebar +, makes an empty collection and
leaves the active one as it was, so Claude's config is not touched. Before, it copied the
active collection's connectors and switched to the copy. Add connectors with the list's +,
then make the new collection active once it holds what you want. - "Delete" is the one word for deleting: the selection bar's button and its question
("Delete “”?", "Delete 3 connectors?"), the published-file question and its
button, the editor's Delete argument and Delete variable, "was deleted outside this
editor", the Review sheet's Deleted group and the "deletes …" in a change summary
all say Delete where they said Remove. - In "Also delete from the folder?", asked by Stop Publishing and by Delete of a
published collection, Return and Escape both answer Keep. Delete, shown as the
destructive answer, needs a click; before, Return deleted the file, and on the Mac
Escape did nothing. - In the Collections window, clicking a connector's row opens its editor, and the
pencil at the end of the row is gone, so what the connector runs has the room. A click
on or beside a row's tick ticks it instead. The rows highlight under the pointer, and
from the keyboard the arrow keys move between them, Return opens the editor and Space
ticks. - Profiles are now collections. Every profile you had is a collection with the same name
and connectors, and the master list file is unchanged. - Export writes a collection, or the connectors you tick, as a document. Import brings
one in as copies into a collection of your own, and Subscribe keeps it as a read-only
collection that follows the file. The Import sheet (a dialog on Windows, as every
sheet named here is) says what will happen to each connector before anything does; a
file it cannot read shows why, with no Import button. - An imported name that is already taken can replace the old connector, keeping the
secrets and paths you filled in, land beside it as<name> 2, or be left out. Copies
arrive switched off, and the editor names the collection each came from and the day it
arrived. - A subscribed collection is read-only apart from your secrets, your paths and which
connectors are on: its rows show a lock, the editor opens locked and says what you can
change, and Add Connector is disabled. If the author changes or deletes a connector
while its editor is open, Save refuses and says which, rather than write the old
version back. Make Local Copy takes the whole collection into one of your own. - A change at a subscribed collection's source arrives for review: Review & Apply shows the
before and after of every connector, nothing lands until you apply it, and your filled
values survive. Refresh re-reads at once, Locate finds the file on a new machine, and
Stop Syncing makes the collection yours, after asking. - A placeholder is a value a document asks each machine for; a connector waiting on one
says "needs your value" or "needs your path", with the author's hint.
${COLLECTION_DIR}is the document's folder: where a subscribed collection found it, or
the publish folder on the publishing machine. In a local collection this machine does
not publish, the connector's row says it has no folder. - Start Publishing writes a local collection's document to a folder in a repository or
synced drive and rewrites it whenever what the collection runs changes; turning a
connector on or off never republishes. Publishing Settings changes what a published
collection shares. Deleting a published collection, or Stop Publishing in the
Collections window, asks whether to delete the document too; Keep is the default. - The Publish sheet lists every environment value, which travels as a hint unless you
tick share value, and every argument that looks like a path on this machine, which
travels as written unless you tick it to become a placeholder. The token, header value
or client secret in a remote connector's Authentication fields always travels as a
placeholder, and a preview shows every byte before it leaves, flagging any argument or
shared value that looks like a credential, a header or URL query or fragment parameter
named like a secret or holding one, a URL parameter whose name is itself a token, a URL
path segment that looks like a key, and a URL with a user name or password in it. A
value that only refers to a credential kept elsewhere (Bearer ${API_TOKEN},
Bearer $API_TOKENwith the name in capitals, a placeholder) "refers to a credential",
and a URL user with no password "names a user"; either one later given the credential
itself waits for review. Each URL path segment and bare parameter is a line of its own,
so a new one that looks like a key waits for review too.
A header passed as an argument is read as a header, with or without a space after the
colon (Authorization:Bearer …), so mcp-remote's--header "Authorization:${AUTH}"
reads "refers to a credential". - The sheet also lists every mark it could not place and every path this machine keeps
back that the document would otherwise carry as written, a copy of a ticked path in any
field included, all at once, each with its connector and field; Publish and Export wait
until every one is ticked where it now sits, forgotten or released. The folder a
collection publishes into never travels: Use${COLLECTION_DIR}answers it by rewriting
the connector. - A path marked on your other machine, in a collection published from there, is kept back
from every collection this machine publishes, and stays kept back once that machine drops
the mark, stops publishing the collection or deletes it, even when the change arrives
while this machine is off. Release it in this machine's Publish sheet to let it travel. - A path you marked stays kept back until you release it, even after you forget its mark
(Forget Mark takes the mark off the record, not the path off this machine's list), or
the argument or the connector that held it is deleted and the sheet is published again
with no row for it: put back later, it is refused and listed in the sheet. Before, that
Publish forgot it, so the path travelled as written once it came back. - A Release belongs to the collection it was given in. A collection made later under a
deleted one's name, or renamed onto it, no longer inherits it: its sheet lists the path
and Release answers it there. Before, the path travelled in the new collection unlisted. - A publish that fails says so on the collection banner, with Choose Folder and Stop
Publishing, and pressing Publish again retries the write at once. The banner goes if the
collection stops publishing, or is deleted, on your other machine. A path marked for
others to supply survives added, deleted or reordered arguments, an in-place
correction and a connector rename; if the app can no longer place it, or the document
would carry a kept-back path or the publish folder in another connector, publishing
stops rather than write it, the document already in the folder is left as it was, and
the banner names the connector to open Publishing Settings for. - A publish that happens on its own no longer sends a connector you...
Connector Control 1.3.3
Download: on a Mac, ConnectorControl_1.3.3.dmg; on a Windows PC, ConnectorControl-win-x64-Setup.exe (Intel and AMD) or ConnectorControl-win-arm64-Setup.exe (Arm). Everything else listed below (appcast.xml, the .nupkg packages, releases.*.json) is read by the apps' built-in updaters and never needs downloading.
macOS
- The one-time permissions repair no longer records itself done when every repair
failed; it retries at the next launch. It is tracked by a version number now, so an
upgraded install runs it once more. - The Restore… sheet reports a failure to list backups instead of showing an empty list.
- Repointing the master list to a folder that cannot be written keeps the current
location and reports the failure instead of switching to an empty list. - Deleting the folder that holds Claude's config or the connector list no longer
leaves the file watcher stuck; it recovers when the folder reappears. - An empty
CONNECTOR_CONTROL_CLAUDE_CONFIGorCONNECTOR_CONTROL_STORE_DIR
variable, or an empty stored master-list path, now counts as unset. - The migration from the pre-1.0 app names is gone; no released build ever needed it.
Windows
- Updates are offered, not installed silently, matching the Mac; the switch under
Settings ▸ General ▸ Updates turns automatic installation back on. - A Claude config reached through a symlink is written through to the real file
instead of being replaced by a plain copy. - The editor clears a bearer token, header or OAuth client secret when a JSON edit
switches the auth type, instead of keeping it behind the new one. - The Settings window no longer stalls while the Claude tab's icon loads or while a
chosen launch target is verified. - Previews of a connector's extra fields no longer show escaped slashes.
- Repointing the master list to a folder that refuses the write keeps the current
location and reports the failure. - A failed settings save shows in the flyout banner instead of passing silently.
- The one-time owner-only permissions repair is tracked by a version number; an
upgraded install runs it once more. - The tray icon is now the same plug as the Mac's menu bar icon, prongs to the right
and cable to the left; it used to stand upright. - A JSON object with a duplicate key now keeps the first value, matching the Mac; it
used to keep the last. - A declined update is no longer offered again by the background check; a manual
check still offers it.
Both platforms
- A stale backup that cannot be deleted no longer fails the save; it is retried at
the next rotation. - The messages for a Claude app that is not found, or not signed by Anthropic, end
with the same sentence on both platforms. - The error for an unparseable backup names the parser's complaint.
Release pipeline
- The Windows build no longer downloads the previous release or builds a delta
package; no client has applied one since v1.3.2. - The smoke test asks the installed app to verify its own package with the code the
updater runs, instead of re-implementing the publisher policy in PowerShell. - The release and preview workflows share one secrets gate and one set of publish
scripts; a new lint workflow checks every workflow and the scripts they call on push;
the Mac CI build also produces the DMG. vpk is pinned in a tool manifest that
Dependabot tracks.
Full changelog: v1.3.2...v1.3.3
Connector Control 1.2.3
Reliability release: fixes from a full code review of 1.1.4–1.2.2.
- Environment variable editing no longer silently alters data: a value
without a name blocks saving instead of vanishing, variable names are
preserved exactly as written (no more surprise whitespace trimming), and
switching to the JSON view enforces the same duplicate-name validation as
Save. - Notifications are truthful and complete: no "config regenerated" banner
when the write actually failed (a failure now gets its own banner, once),
a synced change that can't be applied is announced instead of silent, and
banners now show even while Connector Control is the active app. - Update feed hardening: version numbers (not build counters) order updates,
and prerelease tags can no longer reach the auto-update feed. - Deleting or breaking the connector-list file mid-session can no longer
wipe Claude's config — the app restores its own list instead. - Backup ordering is immune to daylight-saving clock rollbacks (timestamps
are now UTC).
Full changelog: v1.2.2...v1.2.3
Connector Control 1.1.9
Full Changelog: v1.1.8...v1.1.9