Security

CrispyVibe is code-signed and notarized by Apple. Before installing any update, Sparkle verifies its EdDSA signature.

Workspace integrity

  • CrispyVibe signs VibeSpace and project config files with HMAC-SHA256
  • If a config file changes outside the app, CrispyVibe detects the tampering the next time it loads the file
  • A VibeSpace with a tampered config still opens and shows its name, projects, and colors, but CrispyVibe disables its startup commands
  • A non-dismissible alert identifies the affected VibeSpace
  • To restore the VibeSpace, open VibeSpace Settings, review the configuration, and save it to re-sign the file

Credential storage

  • CrispyVibe stores HMAC signing keys in the macOS Keychain, scoped to the app bundle ID
  • CrispyVibe stores authentication tokens (Cognito) in the data-protection Keychain with afterFirstUnlockThisDeviceOnly accessibility
  • SSH uses key-based authentication only (no password authentication), with keys managed by the system ssh-agent

SSH remote security

  • CrispyVibe validates host keys via ssh-keygen against known_hosts
  • ControlMaster multiplexing uses BatchMode=yes, so it does not show interactive prompts
  • File operations enforce the project root boundary. Attempts to escape it return permission denied.

Agent CLI security

  • The control socket is owner-only (0600). Only processes running as the same local user can connect.
  • All file commands enforce the project root boundary, including symlink resolution
  • Separate app instances use isolated sockets, preventing cross-instance access
  • For remote (SSH) projects, CrispyVibe relays the CLI over the SSH connection as a per-connection opt-in. The forwarded socket is owner-only on the remote host.

Terminal Insights

Before recording input, Terminal Insights checks whether the text you typed is visible on screen. At a hidden prompt (sudo, ssh, read -s, GPG passphrase), the terminal disables echo. The text never appears in the render buffer, so Terminal Insights does not capture it in command history or context summaries.

Reporting vulnerabilities

Email hello@crispyvibe.com. Do not open public issues for security vulnerabilities. We respond within 48 hours.

🚨 Warning: Do not sign into sensitive accounts in browser panels shared with AI agents. Agents with browser access can read cookies and storage via eval.

Threat models

Each feature has a published threat model documenting attack vectors, impact assessments, and mitigations:

AreaThreat model
Terminal Sessionsterminal/sessions-and-tabs
Terminal Insightsterminal/context-summary
Scroll Assistterminal/scroll-assist
Agent CLIplatform/agent-cli
Browserplatform/browser
SSH Remoteremote/ssh-remote
Remote Agent CLIremote/remote-agent-cli
Authenticationplatform/authentication
File Explorerexplorer/file-explorer
AI Agents (ACP)ai-agents/acp
VibeCastai-agents/vibecast
App Updatesplatform/app-updates