Repository navigation
v4.9.4
4.9.4 - 2026-10-15
Highlights: Keep Peekaboo.app's granted bridge host selected after a command auto-starts an ungranted on-demand daemon, name macOS 27's renamed "Device Control and Data Access" Settings row in permission guidance, explain unsigned source builds such as Homebrew core's peekaboo formula in Bridge and daemon trust failures, and reject non-finite coordinates and regions.
- Keep a granted Peekaboo.app bridge host selected when an on-demand daemon started from an ungranted terminal reports missing Accessibility, Event Synthesizing or Screen Recording, instead of downgrading every caller's permissions until the daemon idles out. Thanks @joshua-koehler! #1073.
- Show macOS 27's renamed "Device Control and Data Access" Settings row for Accessibility and Event Synthesizing, and consistently name "Screen & System Audio Recording", in
peekaboo permissions, MCP permission tools, and permission errors. Thanks @fry69! #1071. - Explain in Bridge and daemon trust failures when the running
peekaboois an unsigned source build (such as Homebrew core'speekabooformula) and point to the notarizedopenclaw/tapor npm install. Thanks @fry69! #1064. - Reject
nanand infinite coordinates and regions inclick,move,capture live,capture action,see --regionand the MCPclicktool instead of dispatching a non-finite point or capture rect, and ignore non-finite agent verification target points. Thanks @rudycelekli! #1074, #1075, #1076. - Update SwiftNIO to 2.104.0 and Service Lifecycle to 2.12.1, including its Unix signal dispatch-source leak fix, while preserving the Swift 6.2 and macOS baselines.
Verification
Run: https://github.com/openclaw/Peekaboo/actions/runs/38854053952
Verified on macos-15 (arm64), macos-15-intel (x86_64), and macos-26 (arm64).
Toolchain and notarization submissions:
{
"schemaVersion": 1,
"repository": "openclaw/Peekaboo",
"tag": "v4.9.4",
"commit": "f793855df9a35a4a697a78d26d8305d057e15c2e",
"teamId": "FWJYW4S8P8",
"authority": "Developer ID Application: OpenClaw Foundation (FWJYW4S8P8)",
"toolchain": {
"build": {
"xcode": "Xcode 27.0\nBuild version 27A266a",
"swift": "Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)\nTarget: arm64-apple-macosx27.0.0",
"sdk": "27.0"
},
"sign": {
"xcode": "Xcode 27.0\nBuild version 27A266a",
"swift": "Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)\nTarget: arm64-apple-macosx27.0.0",
"sdk": "27.0"
}
},
"submissions": {
"dmg": "2ee2d8b1-ddb8-4ef1-b3bc-c9235c67a6cc",
"app": "2a14e6ff-5187-4ef3-b902-ea46afd06ff2",
"cli": "8b9cf00f-ecf3-4e01-9351-8e203503cc73"
},
"buildNumber": "4090499",
"edSignature": "gH37wy4Z1sHFiUJfJDXZu+G/rKwJuxyooC280GR6wBJAtQf6/EMdpbJ7lNsS7hTI6+moc2F9on9B3REyfGIuCg==",
"digests": {
"peekaboo-macos-universal.tar.gz": "cf385eb18b94c4261c28b62e1e8033d993c6fe272a4254fbaa5dcb8ddf3c26bb",
"Peekaboo-4.9.4.app.zip": "7f2093fac76ddb369266f5cc31b71a6e804464d0e87a248f8464ea63c720676c",
"Peekaboo-4.9.4.dmg": "2b9c1d8a958e47ef1a07d4790b35c47ccb3b52075190c071e23149a7c4071346",
"peekaboo-macos-x86_64.tar.gz": "b43ef52695f6ee6a12ca1b2cdc5fcfb63f669a81b4e7776e39b6f08c9694d2ef",
"peekaboo-macos-arm64.tar.gz": "a1d04316c526a5f1b933b16d284d05ff0c4b95e4f640939b1703fa36b2c461b9"
},
"downloaderEntitlements": {
"bundle": "Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc",
"entitlements": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n"
}
}Checksums:
6661b1955d2309d33fca422c37a77a6aa719fc9cb294a8e8afb0804691f5a3f8 ASSET-INVENTORY.json
7f2093fac76ddb369266f5cc31b71a6e804464d0e87a248f8464ea63c720676c Peekaboo-4.9.4.app.zip
2b9c1d8a958e47ef1a07d4790b35c47ccb3b52075190c071e23149a7c4071346 Peekaboo-4.9.4.dmg
0bdb4d4bd393a3756134351a9b5b481939e823d8b1a441e54dfee62f5985a192 RELEASE-NOTES.md
a15415e3d4e70b11313c69650c4aadc0312301cafb49c09c5b19474de6ad7d31 SIGNING-MANIFEST.json
606364dc2deb9ee0c1758c4b42ca3befd55f3d63fe2b25382eb920b4ec29a65b appcast-entry.json
0fe1912c644b3cc19170828fbff95e6cafe13ca94dffcb76e0e35f20de0b3668 appcast.xml
a1d04316c526a5f1b933b16d284d05ff0c4b95e4f640939b1703fa36b2c461b9 peekaboo-macos-arm64.tar.gz
cf385eb18b94c4261c28b62e1e8033d993c6fe272a4254fbaa5dcb8ddf3c26bb peekaboo-macos-universal.tar.gz
b43ef52695f6ee6a12ca1b2cdc5fcfb63f669a81b4e7776e39b6f08c9694d2ef peekaboo-macos-x86_64.tar.gz
a95e4e52d87bf8d769c84ab78c7aec6827556dd2e868c8344b91cd84bf536277 steipete-peekaboo-4.9.4.tgz