---
title: "ToolPiper Beta 9: Keys in the macOS Keychain, Locked to Your Mac"
description: "ToolPiper beta 9 keeps every token and API key in the macOS Keychain, encrypted and locked to your Mac. One heads-up: you may need to re-add cloud API keys."
date: 2026-07-09
author: "Ben Racicot"
tags: ["Security", "Keychain", "API Keys", "Privacy", "macOS", "Apple Silicon"]
type: "article"
canonical: "https://modelpiper.com/blog/toolpiper-beta-9-keychain-security"
---

# ToolPiper Beta 9: Keys in the macOS Keychain, Locked to Your Mac

> ToolPiper beta 9 keeps every token and API key in the macOS Keychain, encrypted and locked to your Mac. One heads-up: you may need to re-add cloud API keys.

## TL;DR

ToolPiper beta 9 keeps every credential - your sign-in token, developer tokens, OAuth connections, and cloud provider API keys - in the macOS Keychain, encrypted and bound to your Mac. Two changes matter: keys are decryptable only while your Mac is unlocked and never sync to iCloud or ride along in a backup, and if the Keychain is briefly unreadable ToolPiper refuses to overwrite or drop a good credential instead of silently losing it. One thing to watch after you update: because beta 9 rebuilt how cloud connections are tracked, you may need to re-add your cloud provider API keys once. Your sign-in and OAuth connections carry over automatically.

Every credential ToolPiper holds is a secret worth protecting. The token from your sign-in. The developer tokens you mint for scripts and editors. Your OAuth connections. Any cloud provider API keys you add for OpenAI, Anthropic, or the rest. beta 9 is the release where we finished treating all of them the way macOS treats its own passwords: encrypted in the Keychain, and locked to your Mac.

Most of this happens where you never see it. Two changes are worth understanding, though, because one of them may ask you to re-add your cloud API keys once.

## What is the macOS Keychain, and why keep API keys there?

The Keychain is macOS's encrypted store for passwords, tokens, and keys. Items are encrypted at rest under keys the Secure Enclave protects, and an app can read only the items it wrote. Putting an API key in the Keychain means it is encrypted on disk and unreadable to other processes, instead of sitting in a config file any process with access to your home folder could open.

A cloud API key is a password that happens to be 64 characters long. It can spend money and read your accounts. The difference between a key in a plaintext config file and a key in the Keychain is the difference between a note on your desk and a note in a safe. Same paper, very different exposure. macOS built the safe. beta 9 makes sure every ToolPiper credential goes in it.

ToolPiper uses the Data Protection Keychain with an app-specific access group. In plain terms, the items belong to ToolPiper, other apps cannot list or read them, and they are tied to the app's own code signature.

## What actually changed in beta 9?

Two things, both about how the storage behaves rather than what it looks like.

**Keys are now locked to this Mac.** Every credential is written as this-device-only. It can be decrypted only while your Mac is unlocked, it never syncs to iCloud Keychain, and it is left out of encrypted backups. A copied backup or a synced Apple account can no longer carry your ToolPiper credentials off the machine. This is the change that materially raises the bar.

**Storage fails safe.** If the Keychain is briefly unreadable, the moment right after a reboot, a locked screen, or a permissions hiccup, ToolPiper now refuses to overwrite or delete a credential it cannot currently read, and retries instead. An app in that state can misread "locked" as "empty" and quietly clobber a good token, which is exactly how you get logged out for no reason. beta 9 treats a locked Keychain as "wait," never as "gone."

Two smaller notes. Developer tokens are stored as SHA-256 hashes, not the raw token, and the raw value is shown once when you create it and never written to disk. And all of this now runs through one credential store instead of several, which is what makes the guarantees above hold everywhere rather than in most places.

## Do I need to do anything after updating?

For most people, almost nothing. Your ModelPiper sign-in, your developer tokens, and your OAuth connections all carry over automatically when you update to beta 9. The one thing you may need to redo is re-adding your cloud provider API keys, such as OpenAI or Anthropic, because beta 9 rebuilt how those connections are tracked.

To be clear about what happened: the key material itself was never exposed and never at risk. beta 9 consolidated the small record that tells ToolPiper which providers you connected and where, and it does not read the older version of that record. Your OAuth grants get rebuilt automatically because ToolPiper can find them by provider. Cloud API keys are identified differently, so ToolPiper asks you to add them one more time. It takes a few seconds per provider.

If you only run local models and never added a cloud key, there is nothing to redo at all.

## Why are the keys tied to one Mac?

beta 9 marks every stored credential as this-device-only, so it is never copied to iCloud Keychain or included in an encrypted backup. The trade-off is that moving to a new Mac means signing in and re-adding your keys there. For secrets that can spend money or read your accounts, staying on one machine is the safer default.

We went back and forth on this. Syncing credentials across your Macs is convenient, but it also means each secret lives in more places, including a cloud service and a backup image. For the kind of secret an API key is, we would rather you type it twice than have it ride along in a file you forget exists. If you set up a second Mac, sign in and add your keys there directly.

## The short version

beta 9 keeps every ToolPiper credential in the macOS Keychain: encrypted, unlocked only when your Mac is, and never leaving the device. Storage now fails safe instead of failing open. Your sign-in and OAuth connections survive the update. Cloud API keys may need to be added once more. That is the whole list.

Update ToolPiper at [modelpiper.com](https://modelpiper.com). If you connect cloud providers, keep your keys handy for the first launch.

_Related: [Is ToolPiper Safe? What You Can Verify and How](/blog/is-toolpiper-safe). [Connect ToolPiper to Your Cloud Accounts via OAuth](/blog/connect-toolpiper-oauth)._

## Steps

### 1. Re-add a cloud provider API key after updating

## FAQ

### Do I have to re-enter everything after updating to ToolPiper beta 9?

No. Your ModelPiper sign-in, your developer tokens, and your OAuth connections all carry over automatically. The only thing you may need to redo is re-adding cloud provider API keys like OpenAI or Anthropic, because beta 9 rebuilt how those connections are tracked. If you only use local models, there is nothing to redo.

### Were my API keys ever stored in plaintext?

No. ToolPiper keeps credentials in the macOS Keychain. beta 9 hardens how they are stored: each item is marked this-device-only, so it is encrypted, never synced to iCloud, and left out of backups, and the store now refuses to overwrite a credential it cannot currently read. The keys were never sitting in a plaintext file.

### Can I see ToolPiper's keys in the Keychain Access app?

No. ToolPiper uses the Data Protection Keychain with an app-specific access group, so these items are owned by ToolPiper and do not appear in the Keychain Access app. You add, view, and revoke connections inside ToolPiper itself.

### Will my API keys sync to my other Macs?

No. beta 9 marks every credential as this-device-only, so nothing syncs to iCloud Keychain or rides along in an encrypted backup. On a second Mac, sign in and add your keys there directly. This is deliberate: a key that can spend money should live in as few places as possible.

### What happens if the Keychain is locked when ToolPiper starts?

Nothing bad. beta 9 treats a locked or briefly unreadable Keychain as 'wait,' not 'empty.' It will not overwrite or delete a credential it cannot currently read, and it retries once the Keychain is available. You will not get logged out or lose a saved key because of a transient lock right after a reboot.
