diff --git a/Apps/CLI/CHANGELOG.md b/Apps/CLI/CHANGELOG.md
index ec731e2a..e98b453a 100644
--- a/Apps/CLI/CHANGELOG.md
+++ b/Apps/CLI/CHANGELOG.md
@@ -5,17 +5,17 @@ All notable changes to Peekaboo CLI will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
-
-### Fixed
-- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184.
-
-## [3.4.2] - 2026-06-12
+## [3.5.0] - 2026-06-12
### Added
- `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility.
+### Changed
+- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models.
+- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository.
+
### Fixed
+- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184.
- Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185.
## [3.4.1] - 2026-06-10
diff --git a/Apps/CLI/Sources/Resources/Info.plist b/Apps/CLI/Sources/Resources/Info.plist
index 283292ff..2d83fb53 100644
--- a/Apps/CLI/Sources/Resources/Info.plist
+++ b/Apps/CLI/Sources/Resources/Info.plist
@@ -7,9 +7,9 @@
CFBundleName
Peekaboo
CFBundleShortVersionString
- 3.1.1
+ 3.5.0
CFBundleVersion
- 3.1.1
+ 3.5.0
LSMinimumSystemVersion
15.0
LSUIElement
@@ -23,6 +23,6 @@
NSScreenCaptureUsageDescription
Peekaboo needs screen recording permission to capture screenshots and analyze window content.
PeekabooVersionDisplayString
- Peekaboo 3.1.1
+ Peekaboo 3.5.0
diff --git a/Apps/CLI/Sources/Resources/version.json b/Apps/CLI/Sources/Resources/version.json
index 826968e3..80fb8d1e 100644
--- a/Apps/CLI/Sources/Resources/version.json
+++ b/Apps/CLI/Sources/Resources/version.json
@@ -1,3 +1,3 @@
{
- "version": "3.4.2"
+ "version": "3.5.0"
}
diff --git a/Apps/CLI/TestHost/Info.plist b/Apps/CLI/TestHost/Info.plist
index 3ebb6518..12ad507d 100644
--- a/Apps/CLI/TestHost/Info.plist
+++ b/Apps/CLI/TestHost/Info.plist
@@ -11,9 +11,9 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 3.1.1
+ 3.5.0
CFBundleVersion
- 3.1.1
+ 3.5.0
LSMinimumSystemVersion
13.0
NSMainStoryboardFile
diff --git a/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj b/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj
index 7c0702d0..af3dfa5c 100644
--- a/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj
+++ b/Apps/Mac/Peekaboo.xcodeproj/project.pbxproj
@@ -319,7 +319,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 15.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.mac.debug;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
@@ -359,7 +359,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 15.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.mac;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
diff --git a/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj b/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj
index 367be86c..9d659a53 100644
--- a/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj
+++ b/Apps/PeekabooInspector/Inspector.xcodeproj/project.pbxproj
@@ -278,7 +278,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 14.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.inspector;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
@@ -306,7 +306,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 14.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.inspector;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
diff --git a/Apps/Playground/Playground.xcodeproj/project.pbxproj b/Apps/Playground/Playground.xcodeproj/project.pbxproj
index 29ead53d..43ea29d0 100644
--- a/Apps/Playground/Playground.xcodeproj/project.pbxproj
+++ b/Apps/Playground/Playground.xcodeproj/project.pbxproj
@@ -291,7 +291,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 15.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.playground.debug;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -338,7 +338,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 15.0;
- MARKETING_VERSION = 3.4.2;
+ MARKETING_VERSION = 3.5.0;
PRODUCT_BUNDLE_IDENTIFIER = boo.peekaboo.playground;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b9e13cbc..9db95903 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,16 +1,16 @@
# Changelog
-## Unreleased
-
-### Fixed
-- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184.
-
-## [3.4.2] - 2026-06-12
+## [3.5.0] - 2026-06-12
### Added
- `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility.
+### Changed
+- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models.
+- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository.
+
### Fixed
+- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184.
- Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185.
## [3.4.1] - 2026-06-10
diff --git a/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift b/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift
index d14a0095..2c6236e9 100644
--- a/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift
+++ b/Core/PeekabooCore/Sources/PeekabooAgentRuntime/MCP/PeekabooMCPVersion.swift
@@ -1,5 +1,5 @@
enum PeekabooMCPVersion {
static let serverName = "peekaboo-mcp"
- static let current = "3.4.2"
+ static let current = "3.5.0"
static let banner = "Peekaboo MCP \(current)"
}
diff --git a/README.md b/README.md
index bc496f03..95f05b3c 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,14 @@

-[](https://www.npmjs.com/package/@steipete/peekaboo)
+[](https://www.npmjs.com/package/@steipete/peekaboo)
[](https://opensource.org/licenses/MIT)
[-0078d7?logo=apple&logoColor=white&style=flat-square)](https://www.apple.com/macos/)
[](https://swift.org/)
[](https://nodejs.org/)
-[](https://github.com/steipete/peekaboo/releases/latest)
+[](https://github.com/openclaw/Peekaboo/releases/latest)
[](https://github.com/steipete/homebrew-tap)
-[](https://deepwiki.com/steipete/peekaboo)
+[](https://deepwiki.com/openclaw/Peekaboo)
Peekaboo brings high-fidelity screen capture, AI analysis, and complete GUI automation to macOS. Version 3 adds native agent flows and multi-screen automation across the CLI and MCP server.
@@ -20,7 +20,9 @@ Peekaboo brings high-fidelity screen capture, AI analysis, and complete GUI auto
- Direct accessibility tools for settable values and named actions (`set-value`, `perform-action`).
- Menu and menubar discovery with structured JSON; no clicks required.
- Multi-provider AI through Tachikoma, including hosted, local, and OpenAI-/Anthropic-compatible providers.
+- Claude Fable 5 support with 1M context and a 128K output ceiling; saved temperature/max-token settings are shared by the app and CLI and clamped to each model's capabilities.
- MCP server for Codex, Claude Code, and Cursor plus a native CLI; the same tools in both.
+- Warm daemon and Peekaboo.app Bridge hosts for permission-bound automation, with distinct lease-owned sockets and local fallback.
- Configurable, testable workflows with reproducible sessions and strict typing.
- Requires macOS Screen Recording + Accessibility permissions (see [docs/permissions.md](docs/permissions.md)).
@@ -143,6 +145,8 @@ Peekaboo's provider list changes with Tachikoma and the tested model catalog. Se
Google Gemini, MiniMax, Ollama, LM Studio, and compatible custom endpoints.
Set providers via `PEEKABOO_AI_PROVIDERS` or `peekaboo config add`.
+Agent generation settings live under `agent.temperature` and `agent.maxTokens` in `~/.peekaboo/config.json`; the
+macOS Settings UI reads and writes the same values.
## Learn more
- Command reference: [docs/commands/](docs/commands/)
diff --git a/package.json b/package.json
index 11f2305c..d3786f64 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@steipete/peekaboo",
- "version": "3.4.2",
+ "version": "3.5.0",
"description": "macOS automation MCP server with screen capture, UI interaction, and AI analysis",
"private": false,
"type": "module",
@@ -63,14 +63,14 @@
},
"repository": {
"type": "git",
- "url": "git+https://github.com/steipete/peekaboo.git"
+ "url": "git+https://github.com/openclaw/Peekaboo.git"
},
"author": "Peter Steinberger ",
"license": "MIT",
"bugs": {
- "url": "https://github.com/steipete/peekaboo/issues"
+ "url": "https://github.com/openclaw/Peekaboo/issues"
},
- "homepage": "https://github.com/steipete/peekaboo#readme",
+ "homepage": "https://github.com/openclaw/Peekaboo#readme",
"keywords": [
"mcp",
"model-context-protocol",
diff --git a/release/release-notes.md b/release/release-notes.md
index 1b82e535..26f006d8 100644
--- a/release/release-notes.md
+++ b/release/release-notes.md
@@ -1,10 +1,12 @@
-## [3.1.1] - 2026-05-11
+## [3.5.0] - 2026-06-12
### Added
-- `peekaboo image --path -` now writes a single captured image to stdout for shell pipelines.
-- The npm package now allows Intel Macs when shipping the universal CLI binary.
+- `peekaboo agent` now supports explicit Claude Fable 5 (`claude-fable-5`) selection with 1M context and 128K max output while keeping Anthropic defaults on Opus 4.8 for zero-retention compatibility.
+
+### Changed
+- Agent runs now honor the saved `agent.temperature` and `agent.maxTokens` values shared by the CLI and macOS Settings UI, clamp them to each provider's capabilities, infer Fable limits through compatible providers, and omit unsupported sampling parameters for GPT-5 and current Anthropic reasoning models.
+- Project, issue, build, release, and app About links now use the canonical `openclaw/Peekaboo` repository.
### Fixed
-- Agent tool schemas now preserve MCP `anyOf`/`oneOf` parameters so Gemini no longer rejects `peekaboo agent` requests with orphan `required` entries. Thanks @bcharleson for #125.
-- The macOS app release script now fails if the packaged app is missing its main executable and preserves the AppleEvents entitlement when re-signing.
-- `peekaboo see --capture-engine cg` now keeps frontmost/window captures on the CoreGraphics path instead of falling through to `SCScreenshotManager`.
+- Bridge hosts now use atomic lease-backed socket ownership and bounded nonblocking transport, keep Peekaboo.app and the reusable daemon on distinct paths while preserving the healthy app's TCC-backed fallback, preserve lifecycle settings while migrating legacy daemons, prevent MCP from hosting a bridge listener, safely recover stale sockets, and release abandoned client connections instead of wedging. Thanks @Artifact-LV for #184.
+- Legacy screen and area capture now fails with a permission or native capture error instead of returning wallpaper-only/redacted pixels from background sessions. Thanks @VishalJ99 for #185.
diff --git a/version.json b/version.json
index 826968e3..80fb8d1e 100644
--- a/version.json
+++ b/version.json
@@ -1,3 +1,3 @@
{
- "version": "3.4.2"
+ "version": "3.5.0"
}