Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ anchor: '@file'
created: 2026-10-20T01:52:57Z
norm: '1'
sig: 021fb596db81e6d0
body_hash: bd47a44b13e883fa
raw_hash: 535a5365401892a7
vouched: 2026-10-20T14:47:24Z
body_hash: 09271b9c7551eef6
raw_hash: 803a84a8375eb399
vouched: 2026-10-20T18:02:39Z
lines: 1-31
---

Expand Down
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Notable changes to Desktop Tools, newest first. Each release's GitHub release no

## [Unreleased]

## [0.17.1] - 2026-10-20

### Fixed

- `desktop_select` selects text in a web page that isn't a field, such as a paragraph or a link, through WebKit's text markers. An image pasted into a web field is refused with `PASTE_UNVERIFIABLE_RECEIVER` before the focus check, since the page's handling can't be read back. ([#88](https://github.com/githubnext/desktop-tools/issues/88), [#99](https://github.com/githubnext/desktop-tools/issues/99))
Expand Down Expand Up @@ -271,7 +273,8 @@ Notable changes to Desktop Tools, newest first. Each release's GitHub release no

- The first release: a signed, notarized Desktop Tools menu bar app, and the desktop tools served over MCP. ([#28](https://github.com/githubnext/desktop-tools/pull/28), [#29](https://github.com/githubnext/desktop-tools/pull/29), [#12](https://github.com/githubnext/desktop-tools/pull/12))

[Unreleased]: https://github.com/githubnext/desktop-tools/compare/v0.17.0...HEAD
[Unreleased]: https://github.com/githubnext/desktop-tools/compare/v0.17.1...HEAD
[0.17.1]: https://github.com/githubnext/desktop-tools/compare/v0.17.0...v0.17.1
[0.17.0]: https://github.com/githubnext/desktop-tools/compare/v0.16.1...v0.17.0
[0.16.1]: https://github.com/githubnext/desktop-tools/compare/v0.16.0...v0.16.1
[0.16.0]: https://github.com/githubnext/desktop-tools/compare/v0.15.0...v0.16.0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ You need macOS 15 or later. The MCP server ships inside the app.
}
```

A setup from before 0.17.0 that runs `npx -y --package=github:githubnext/desktop-tools#v0.17.0 desktop-tools-mcp` (Node 22 or later) keeps working: it hands over to the app's server.
An `npx` setup, `npx -y --package=github:githubnext/desktop-tools#v0.17.1 desktop-tools-mcp` (Node 22 or later), also works: it hands over to the app's server. One pinned before v0.17.0 is refused with `CLIENT_OUTDATED`, so update its tag.

4. **Verify.** Ask the agent to call `desktop_apps`. It should list the running apps with an `inventory_completeness` of `complete`. If it says the socket is missing, open the app.

Expand Down
4 changes: 2 additions & 2 deletions docs/mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
`desktop-tools-mcp` (`dist/mcp.js`) serves the desktop tools over stdio MCP, with Ace's native-first guidance as its instructions. By default it uses the [Desktop Tools app](app.md)'s signed client and socket in `~/.local/state/desktop-tools`. Run it from this repository with `npx`, pinned to a release tag, or from a checkout with `node`:

```sh
claude mcp add desktop -- npx -y --package=github:githubnext/desktop-tools#v0.17.0 desktop-tools-mcp
claude mcp add desktop -- npx -y --package=github:githubnext/desktop-tools#v0.17.1 desktop-tools-mcp
claude mcp add desktop -- node <path>/dist/mcp.js
```

Expand All @@ -25,7 +25,7 @@ For Codex, in `~/.codex/config.toml`:
```toml
[mcp_servers.desktop]
command = "npx"
args = ["-y", "--package=github:githubnext/desktop-tools#v0.17.0", "desktop-tools-mcp"]
args = ["-y", "--package=github:githubnext/desktop-tools#v0.17.1", "desktop-tools-mcp"]
```

The tool names, descriptions, and argument schemas come from `@githubnext/desktop-tools/tools` (`desktopTools`, `desktopRequest`), which Ace's `desktop_*` tools also use. [Tools](tools.md) lists them. The descriptions don't repeat the rules every tool shares: exact targets, single-use snapshots, background and foreground input, what each outcome means, pausing, `desktop_wait` and `expect`, and the recipes. `desktopToolRules(app)` returns those rules, and the server adds them to its instructions; a host with its own agent guidance should include them too.
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@githubnext/desktop-tools",
"version": "0.17.0",
"version": "0.17.1",
"description": "Signed macOS desktop inspection and input for agents, with a pure Swift host and MCP server",
"license": "MIT",
"type": "module",
Expand Down
Loading