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
afterFirstUnlockThisDeviceOnlyaccessibility - 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-keygenagainstknown_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:
| Area | Threat model |
|---|---|
| Terminal Sessions | terminal/sessions-and-tabs |
| Terminal Insights | terminal/context-summary |
| Scroll Assist | terminal/scroll-assist |
| Agent CLI | platform/agent-cli |
| Browser | platform/browser |
| SSH Remote | remote/ssh-remote |
| Remote Agent CLI | remote/remote-agent-cli |
| Authentication | platform/authentication |
| File Explorer | explorer/file-explorer |
| AI Agents (ACP) | ai-agents/acp |
| VibeCast | ai-agents/vibecast |
| App Updates | platform/app-updates |