Skip to content

Enable keychain and launch-services under safe - #71

Merged
technicalpickles merged 3 commits into
mainfrom
safe-enable-launch-services
Oct 16, 2026
Merged

technicalpickles merged 3 commits into
mainfrom
safe-enable-launch-services

Conversation

@technicalpickles

Copy link
Copy Markdown
Owner

Summary

  • safe pi couldn't run open (MCP OAuth sign-in, plannotator) or gh. open died with kLSUnknownErr -10810 from RunningBoard, and gh auth status called a good token invalid because it lives in the Keychain.
  • bin/safe now passes --enable=clipboard,keychain,launch-services. Each feature has a comment saying what it unlocks and what it exposes, and ADR 0060 records the same.
  • Tradeoffs, accepted on purpose: keychain lets sandboxed code read every Keychain item, and launch-services lets it launch apps outside the sandbox (an escape hatch the role escape guards don't cover). A dedicated token via --env-pass is the narrower alternative for gh if this gets uncomfortable.

Test plan

  • safe -- zsh, then open https://example.com and gh auth status. Both work (checked on my machine).

🤖 Generated with Claude Code

technicalpickles and others added 3 commits October 16, 2026 16:47
open failed with kLSUnknownErr (-10810) via RunningBoard: the sandbox
blocked the Launch Services mach lookups. safehouse ships an opt-in
feature for it; launched apps run unsandboxed, noted in ADR 0060.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gh stores its token in the Keychain; without the keychain feature it
reports the token as invalid under safehouse. Tradeoff noted in ADR 0060.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@technicalpickles
technicalpickles marked this pull request as ready for review October 16, 2026 20:54
@technicalpickles
technicalpickles merged commit 5bc4cb9 into main Oct 16, 2026
1 check passed
@technicalpickles
technicalpickles deleted the safe-enable-launch-services branch October 16, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant