Sallyport is a free Mac app that stores API and SSH credentials in an encrypted local vault and executes authenticated actions for AI agents via the MCP protocol, ensuring the agent never sees the credential.

Stars

321

7-day growth

No data

Forks

10

Open issues

0

License

Apache-2.0

Last updated

2026-07-19

Why it is worth attention

It inverts the traditional secret management model by delivering actions instead of secrets, protecting against supply-chain attacks and prompt injection even when the agent is untrusted.

Who it is for

  • AI/agent developers who need safe access to production systems
  • Security-conscious macOS users deploying coding assistants
  • DevOps teams wanting credential isolation for MCP-based tooling
  • Developers using Claude or similar MCP clients on Apple Silicon Macs

Use cases

  • Letting a coding agent run SSH commands or HTTP requests on production servers without exposing SSH keys or API tokens
  • Enforcing per-call or per-session approval for sensitive operations
  • Gating agent access to databases or cloud consoles through a signed audit trail
  • Replacing `.env` file usage with a vault that never reveals the secret to the agent process

Strengths

  • Credentials are never exposed to the agent's environment—no command, export, or recovery route exists
  • Local encrypted vault (macOS Keychain integration implied) with per-call Touch ID or click approvals
  • Signed audit journal and Secure Enclave integrity anchors for non-repudiation
  • Works with existing MCP clients (e.g., Claude) and supports HTTP, SSH, and upstream MCP tools

Considerations

  • macOS 14+ and Apple Silicon are required; no cross-platform support yet
  • The target server's response is passed verbatim, so sensitive data echoed back could still be seen
  • Pull requests are not accepted on the public repository, and full reproducible builds require Apple's signing materials

README quick start

Sallyport

Let your agent touch prod. Keep the keys.

Sallyport is a free Mac app that holds API and SSH credentials in an encrypted local vault and executes authenticated actions for AI agents. The agent asks for an operation over MCP; Sallyport runs it, records it in a signed journal, and the key never appears in the agent's environment. There is no command that reveals a stored credential, and no export or recovery route either.

Website: sallyport.dev

Why

Coding agents read .env files, shell variables, and config files, and so does every package they pull in. Recent npm supply-chain attacks harvested credentials from exactly those places, and a prompt-injected agent can leak a token without any malware at all.

Traditional secret managers still deliver the secret to the workload. That model breaks when the workload itself is untrusted. Sallyport inverts it: the workload gets an action, the vault keeps the secret.

The exact security boundary, including what Sallyport does not stop, is written down in docs/14-trust-model.md and docs/08-security-model.md. Executor responses are returned as received, so a target that echoes sensitive data is outside the credential-isolation guarantee.

Repository

This public repository contains one source snapshot per Sallyport release. Pull requests are not accepted here. Report bugs and security issues as described in CONTRIBUTING.md.

Install

Install the signed and notarized DMG from sallyport.dev, Releases, or Homebrew:

brew install --cask olegsotnikov/tap/sallyport

Launch the app, create the vault, add a credential, and point your MCP client at the gate:

claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcp

From install to the first gated call takes about two minutes. Requires Apple Silicon and macOS 14 or newer. Release checksums are published with each release and in https://sallyport.dev/downloads/manifest.json.

Authorization

Every action follows the fixed ladder in docs/14-trust-model.md:

  1. The vault must be ready.
  2. A marked key or MCP server requires per-call approval.
  3. A new process requires session approval unless observe mode or the optional allowlist applies. 4

Related repositories

Similar projects matched by category, topics, and programming language.

uzairansaruzi
Featured
uzairansaruzi GitHub avatar

hermex

Hermex is a native SwiftUI iPhone app that lets you control a self-hosted Hermes AI agent directly from your phone, with no subscriptions, tracking, or third-party relay.

AI & Machine LearningMobile
839
simonw
Featured
simonw GitHub avatar

speech-analyzer-cli

A macOS CLI tool that transcribes prerecorded audio using Apple's on-device speech APIs and outputs plain text, JSON, JSONL, SRT, or WebVTT.

Developer Tools
16
andyhuo520
andyhuo520 GitHub avatar

MacCheck

MacCheck is a macOS local verification tool for second-hand Mac transactions, shop inspections, and personal self-checks, offering automatic hardware detection and interactive tests with PDF/PNG report export.

Swift
385