@assemblyline-agents/peekaboo 5.0.9 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -70
- package/ai.assemblyline/connections/peekaboo.json +82 -0
- package/ai.assemblyline/index.cjs +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/plugin.json +11 -0
package/README.md
CHANGED
|
@@ -1,30 +1,18 @@
|
|
|
1
1
|
# @assemblyline-agents/peekaboo
|
|
2
2
|
|
|
3
|
-
Official
|
|
4
|
-
|
|
3
|
+
Official same-host macOS computer-use plugin backed by Peekaboo's stdio MCP
|
|
4
|
+
server.
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## Requirements
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
- macOS 15 or newer
|
|
9
|
+
- a local Assembly Line gateway on the Mac being controlled
|
|
10
|
+
- Accessibility and Screen Recording permission for the host process
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Hosted gateways cannot reach back to the Mac. Validation warns and deployment
|
|
13
|
+
rejects that combination.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
- runtime platform: `darwin`
|
|
16
|
-
- minimum supported host for Peekaboo: macOS 15+
|
|
17
|
-
|
|
18
|
-
`assembly-line validate` warns when `gateway.ts` defaults to a hosted target.
|
|
19
|
-
`assembly-line deploy` refuses incompatible targets, including a hosted `--target`
|
|
20
|
-
override. The runtime also rejects the connection before launching a process
|
|
21
|
-
when it is loaded on a non-macOS host.
|
|
22
|
-
|
|
23
|
-
The model provider may still be remote. OpenAI, Anthropic, or another model can
|
|
24
|
-
perform inference in the cloud while the Assembly Line Node host and Peekaboo execute
|
|
25
|
-
on the local Mac.
|
|
26
|
-
|
|
27
|
-
## Setup
|
|
15
|
+
## Configure
|
|
28
16
|
|
|
29
17
|
```sh
|
|
30
18
|
brew install steipete/tap/peekaboo
|
|
@@ -32,67 +20,61 @@ peekaboo permissions status
|
|
|
32
20
|
assembly-line add peekaboo agent
|
|
33
21
|
```
|
|
34
22
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
// agent/gateway.ts
|
|
39
|
-
import { adapter, defineGateway } from "@assemblyline-agents/core";
|
|
23
|
+
Keep the gateway local in `agent.md`:
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
runtime: adapter("node")
|
|
44
|
-
});
|
|
25
|
+
```yaml
|
|
26
|
+
deploy: local
|
|
45
27
|
```
|
|
46
28
|
|
|
47
|
-
The
|
|
48
|
-
|
|
29
|
+
The plugin's reviewed tools activate when selected. To inspect without acting,
|
|
30
|
+
disable its write actions through the connection exception:
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
capabilities:
|
|
34
|
+
peekaboo:
|
|
35
|
+
connections:
|
|
36
|
+
peekaboo:
|
|
37
|
+
disable:
|
|
38
|
+
- click
|
|
39
|
+
- type
|
|
40
|
+
- hotkey
|
|
41
|
+
- scroll
|
|
42
|
+
- drag
|
|
43
|
+
- swipe
|
|
44
|
+
- move
|
|
45
|
+
- set_value
|
|
46
|
+
- perform_action
|
|
47
|
+
- app
|
|
48
|
+
- window
|
|
49
|
+
- menu
|
|
50
|
+
- dock
|
|
51
|
+
- dialog
|
|
52
|
+
- space
|
|
53
|
+
```
|
|
49
54
|
|
|
50
|
-
|
|
51
|
-
// agent/connections/peekaboo.ts
|
|
52
|
-
import { definePeekabooConnection } from "@assemblyline-agents/peekaboo";
|
|
55
|
+
Or require approval for selected actions:
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
```yaml
|
|
58
|
+
capabilities:
|
|
59
|
+
peekaboo:
|
|
60
|
+
connections:
|
|
61
|
+
peekaboo:
|
|
62
|
+
approval:
|
|
63
|
+
click: always
|
|
64
|
+
type: always
|
|
57
65
|
```
|
|
58
66
|
|
|
59
|
-
Validate and run
|
|
67
|
+
Validate and run on the Mac:
|
|
60
68
|
|
|
61
69
|
```sh
|
|
62
70
|
assembly-line validate agent
|
|
63
71
|
assembly-line deploy agent --target local --serve
|
|
64
72
|
```
|
|
65
73
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Changing action authority
|
|
71
|
-
|
|
72
|
-
Require approval for desktop actions when the host provides an approval surface:
|
|
73
|
-
|
|
74
|
-
```ts
|
|
75
|
-
export default definePeekabooConnection({ access: "approval-required" });
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Use the read-only preset when the agent should inspect the Mac without acting:
|
|
79
|
-
|
|
80
|
-
```ts
|
|
81
|
-
export default definePeekabooConnection({ access: "read-only" });
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Use the default policy only for an agent running in a macOS account whose
|
|
85
|
-
applications, files, and signed-in services are appropriate for unattended
|
|
86
|
-
control.
|
|
87
|
-
|
|
88
|
-
The initial allowlist is accessibility-first. Screenshot/vision, recording,
|
|
89
|
-
nested agents, configuration, cleanup, shell, clipboard/paste, and
|
|
90
|
-
browser-specific Peekaboo tools are excluded.
|
|
74
|
+
For a hosted agent controlling a paired Mac, use
|
|
75
|
+
`@assemblyline-agents/computer-use` instead of exposing Peekaboo over the public
|
|
76
|
+
internet.
|
|
91
77
|
|
|
92
|
-
##
|
|
78
|
+
## License
|
|
93
79
|
|
|
94
|
-
|
|
95
|
-
HTTP bridge to the public internet. A hosted agent should use
|
|
96
|
-
`@assemblyline-agents/computer-use`, which pairs Assembly Line Builder's signed Mac host with a
|
|
97
|
-
deployment-scoped credential, outbound connection, local policy enforcement,
|
|
98
|
-
approvals, and end-to-end encrypted relay transport.
|
|
80
|
+
MIT
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "peekaboo",
|
|
3
|
+
"role": "connection",
|
|
4
|
+
"packageName": "@assemblyline-agents/peekaboo",
|
|
5
|
+
"helper": "definePeekabooConnection",
|
|
6
|
+
"protocol": "mcp",
|
|
7
|
+
"transport": "stdio",
|
|
8
|
+
"provider": "peekaboo",
|
|
9
|
+
"description": "Same-host macOS accessibility and input automation through Peekaboo's stdio MCP server.",
|
|
10
|
+
"capabilities": [
|
|
11
|
+
"mcp",
|
|
12
|
+
"live-tools",
|
|
13
|
+
"stdio"
|
|
14
|
+
],
|
|
15
|
+
"scopes": [],
|
|
16
|
+
"subject": "environment",
|
|
17
|
+
"tools": {
|
|
18
|
+
"allow": [
|
|
19
|
+
"inspect_ui",
|
|
20
|
+
"list",
|
|
21
|
+
"permissions",
|
|
22
|
+
"click",
|
|
23
|
+
"type",
|
|
24
|
+
"hotkey",
|
|
25
|
+
"scroll",
|
|
26
|
+
"drag",
|
|
27
|
+
"swipe",
|
|
28
|
+
"move",
|
|
29
|
+
"set_value",
|
|
30
|
+
"perform_action",
|
|
31
|
+
"app",
|
|
32
|
+
"window",
|
|
33
|
+
"menu",
|
|
34
|
+
"dock",
|
|
35
|
+
"dialog",
|
|
36
|
+
"space"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"hostRequirements": {
|
|
40
|
+
"deployTargets": [
|
|
41
|
+
"local"
|
|
42
|
+
],
|
|
43
|
+
"platforms": [
|
|
44
|
+
"darwin"
|
|
45
|
+
],
|
|
46
|
+
"message": "Peekaboo is a same-host macOS connection. Run this agent with the local deploy target on the Mac being controlled; hosted Railway, Docker, Fly, and VPS deployments cannot reach back to that Mac."
|
|
47
|
+
},
|
|
48
|
+
"readToolPatterns": [
|
|
49
|
+
"inspect_ui",
|
|
50
|
+
"list",
|
|
51
|
+
"permissions"
|
|
52
|
+
],
|
|
53
|
+
"writeToolPatterns": [
|
|
54
|
+
"click",
|
|
55
|
+
"type",
|
|
56
|
+
"hotkey",
|
|
57
|
+
"scroll",
|
|
58
|
+
"drag",
|
|
59
|
+
"swipe",
|
|
60
|
+
"move",
|
|
61
|
+
"set_value",
|
|
62
|
+
"perform_action",
|
|
63
|
+
"app",
|
|
64
|
+
"window",
|
|
65
|
+
"menu",
|
|
66
|
+
"dock",
|
|
67
|
+
"dialog",
|
|
68
|
+
"space"
|
|
69
|
+
],
|
|
70
|
+
"setup": [
|
|
71
|
+
{
|
|
72
|
+
"kind": "connection",
|
|
73
|
+
"name": "peekaboo-developer-configuration",
|
|
74
|
+
"required": true,
|
|
75
|
+
"message": "Local deployment only: install Peekaboo on the Assembly Line Mac (macOS 15+), grant that host process Accessibility and Screen Recording permissions, and use the local deploy target. Hosted targets are rejected."
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"requiredConfig": [],
|
|
79
|
+
"optionalConfig": [],
|
|
80
|
+
"requiredCredentials": [],
|
|
81
|
+
"optionalCredentials": []
|
|
82
|
+
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,+BAA+B,EACrC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAChF,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,2IAS1E;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import connectionContract_peekaboo from "../ai.assemblyline/connections/peekaboo.json" with { type: "json" };
|
|
2
|
+
import { definePlugin, defineStdioMcpPluginConnection } from "@assemblyline-agents/core";
|
|
3
|
+
const PLUGIN = connectionContract_peekaboo;
|
|
3
4
|
const DEFAULT_ARGS = ["mcp", "serve", "--transport", "stdio"];
|
|
4
5
|
export function definePeekabooConnection(options) {
|
|
5
6
|
const { bridgeSocket, ...connection } = options;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,2BAA2B,MAAM,8CAA8C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7G,OAAO,EACL,YAAY,EACZ,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG,2BAAkE,CAAC;AAClF,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAO9D,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC;IACpD,IAAI,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,8BAA8B,CAAC,MAAM,EAAE;QAC5C,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,UAAU;QACzC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assemblyline-agents/peekaboo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@assemblyline-agents/core": "
|
|
12
|
+
"@assemblyline-agents/core": "6.0.0"
|
|
13
13
|
},
|
|
14
14
|
"description": "Official Assembly Line Peekaboo local macOS computer-use connection plugin.",
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
16
|
+
"dist",
|
|
17
|
+
"plugin.json",
|
|
18
|
+
"ai.assemblyline"
|
|
17
19
|
],
|
|
18
20
|
"engines": {
|
|
19
21
|
"node": ">=22.19.0"
|
package/plugin.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
|
+
"name": "peekaboo",
|
|
4
|
+
"version": "6.0.0",
|
|
5
|
+
"description": "Official Assembly Line Peekaboo local macOS computer-use connection plugin.",
|
|
6
|
+
"extensions": {
|
|
7
|
+
"ai.assemblyline": {
|
|
8
|
+
"entry": "./ai.assemblyline/index.cjs"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|