screenhand 0.4.4 → 0.4.5
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 +7 -2
- package/dist/mcp-desktop.js +89 -0
- package/dist-app-maps/com.apple.iphonesimulator.json +120 -61
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,12 +132,17 @@ Every install ships with battle-tested knowledge so AI starts from EXPERT level
|
|
|
132
132
|
|
|
133
133
|
| | Count | Apps Included |
|
|
134
134
|
|---|---|---|
|
|
135
|
-
| **References** |
|
|
135
|
+
| **References** | 37 | Terminal, Mail, Finder, Calendar, Reminders, Keynote, Pages, Notes, Photos, Apple Music, WhatsApp, Simulator, Figma, Discord, DaVinci Resolve, Canva, Instagram, X/Twitter, LinkedIn, YouTube, Reddit, Notion, n8n, and more |
|
|
136
136
|
| **Playbooks** | 49 | Calendar events, Keynote decks, Reminders, Notes workflows, WhatsApp navigation, DaVinci color grading/render, Canva carousel, social posting, Google Flow, competitor research, and more |
|
|
137
|
-
| **App Maps** |
|
|
137
|
+
| **App Maps** | 15 | Spatial UI blueprints for Finder, Mail, Calendar, Notes, Reminders, Keynote, Pages, Photos, Apple Music, Terminal, WhatsApp, Simulator, Figma, Discord, Notion |
|
|
138
138
|
|
|
139
139
|
These load automatically when the matching app or website is detected. No setup required.
|
|
140
140
|
|
|
141
|
+
**Verify after install:**
|
|
142
|
+
```bash
|
|
143
|
+
npx screenhand --info
|
|
144
|
+
```
|
|
145
|
+
|
|
141
146
|
---
|
|
142
147
|
|
|
143
148
|
## What It Does
|
package/dist/mcp-desktop.js
CHANGED
|
@@ -75,6 +75,95 @@ import { ReferenceMerger } from "./src/ingestion/reference-merger.js";
|
|
|
75
75
|
import { PlaybookPublisher } from "./src/community/publisher.js";
|
|
76
76
|
import { PlaybookFetcher } from "./src/community/fetcher.js";
|
|
77
77
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
78
|
+
// ── CLI flags (--info, --version, --help) ──
|
|
79
|
+
if (process.argv.includes("--info") || process.argv.includes("--list-knowledge")) {
|
|
80
|
+
const pkgPath = fs.existsSync(path.resolve(__dirname, "package.json"))
|
|
81
|
+
? path.resolve(__dirname, "package.json")
|
|
82
|
+
: path.resolve(__dirname, "..", "package.json");
|
|
83
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
84
|
+
const countJsonFiles = (dir) => {
|
|
85
|
+
if (!fs.existsSync(dir))
|
|
86
|
+
return { count: 0, names: [] };
|
|
87
|
+
const files = fs.readdirSync(dir).filter(f => f.endsWith(".json") && !f.includes(".ladder."));
|
|
88
|
+
return { count: files.length, names: files.map(f => f.replace(".json", "")) };
|
|
89
|
+
};
|
|
90
|
+
// Check all possible data paths: local dev, same-level dist, parent-level dist, npm installed
|
|
91
|
+
const findDataDir = (name) => {
|
|
92
|
+
const candidates = [
|
|
93
|
+
path.resolve(__dirname, name), // local dev: references/
|
|
94
|
+
path.resolve(__dirname, `dist-${name}`), // local dev: dist-references/
|
|
95
|
+
path.resolve(__dirname, "..", name), // from dist/: ../references/
|
|
96
|
+
path.resolve(__dirname, "..", `dist-${name}`), // from dist/: ../dist-references/
|
|
97
|
+
];
|
|
98
|
+
for (const dir of candidates) {
|
|
99
|
+
if (fs.existsSync(dir) && fs.readdirSync(dir).some(f => f.endsWith(".json"))) {
|
|
100
|
+
return dir;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return path.join(os.homedir(), ".screenhand", name);
|
|
104
|
+
};
|
|
105
|
+
const refsDir = findDataDir("references");
|
|
106
|
+
const pbDir = findDataDir("playbooks");
|
|
107
|
+
const mapsDir = findDataDir("app-maps");
|
|
108
|
+
const refs = countJsonFiles(refsDir);
|
|
109
|
+
const pbs = countJsonFiles(pbDir);
|
|
110
|
+
const maps = countJsonFiles(mapsDir);
|
|
111
|
+
console.log(`\nScreenHand v${pkg.version}\n`);
|
|
112
|
+
console.log(`Prebuilt Knowledge:`);
|
|
113
|
+
console.log(` References: ${refs.count} apps`);
|
|
114
|
+
refs.names.forEach(n => console.log(` - ${n}`));
|
|
115
|
+
console.log(` Playbooks: ${pbs.count} workflows`);
|
|
116
|
+
pbs.names.forEach(n => console.log(` - ${n}`));
|
|
117
|
+
console.log(` App Maps: ${maps.count} spatial blueprints`);
|
|
118
|
+
maps.names.forEach(n => console.log(` - ${n}`));
|
|
119
|
+
// User-generated knowledge
|
|
120
|
+
const userRefsDir = path.join(os.homedir(), ".screenhand", "references");
|
|
121
|
+
const userMapsDir = path.join(os.homedir(), ".screenhand", "app-maps");
|
|
122
|
+
const userRefs = countJsonFiles(userRefsDir);
|
|
123
|
+
const userMaps = countJsonFiles(userMapsDir);
|
|
124
|
+
if (userRefs.count > 0 || userMaps.count > 0) {
|
|
125
|
+
console.log(`\nUser-Learned Knowledge (~/.screenhand/):`);
|
|
126
|
+
if (userRefs.count > 0) {
|
|
127
|
+
console.log(` References: ${userRefs.count}`);
|
|
128
|
+
userRefs.names.forEach(n => console.log(` - ${n}`));
|
|
129
|
+
}
|
|
130
|
+
if (userMaps.count > 0) {
|
|
131
|
+
console.log(` App Maps: ${userMaps.count}`);
|
|
132
|
+
userMaps.names.forEach(n => console.log(` - ${n}`));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
console.log(`\nData paths:`);
|
|
136
|
+
console.log(` References: ${refsDir}`);
|
|
137
|
+
console.log(` Playbooks: ${pbDir}`);
|
|
138
|
+
console.log(` App Maps: ${mapsDir}`);
|
|
139
|
+
console.log(` User data: ${path.join(os.homedir(), ".screenhand")}`);
|
|
140
|
+
console.log();
|
|
141
|
+
process.exit(0);
|
|
142
|
+
}
|
|
143
|
+
if (process.argv.includes("--version")) {
|
|
144
|
+
const pkgPath2 = fs.existsSync(path.resolve(__dirname, "package.json"))
|
|
145
|
+
? path.resolve(__dirname, "package.json")
|
|
146
|
+
: path.resolve(__dirname, "..", "package.json");
|
|
147
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath2, "utf-8"));
|
|
148
|
+
console.log(`screenhand v${pkg.version}`);
|
|
149
|
+
process.exit(0);
|
|
150
|
+
}
|
|
151
|
+
if (process.argv.includes("--help")) {
|
|
152
|
+
console.log(`
|
|
153
|
+
ScreenHand — MCP Server for Desktop Automation
|
|
154
|
+
|
|
155
|
+
Usage:
|
|
156
|
+
npx screenhand Start MCP server (stdio)
|
|
157
|
+
npx screenhand --info Show prebuilt knowledge & data paths
|
|
158
|
+
npx screenhand --version Show version
|
|
159
|
+
|
|
160
|
+
Add to your AI client:
|
|
161
|
+
claude mcp add screenhand -- npx -y screenhand
|
|
162
|
+
|
|
163
|
+
Docs: https://github.com/manushi4/Screenhand
|
|
164
|
+
`);
|
|
165
|
+
process.exit(0);
|
|
166
|
+
}
|
|
78
167
|
// ── Audit logging for dangerous tools ──
|
|
79
168
|
const AUDIT_LOG_PATH = path.resolve(__dirname, ".audit-log.jsonl");
|
|
80
169
|
function auditLog(tool, params) {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"consistency": 6
|
|
21
21
|
},
|
|
22
22
|
"confidence": 0.13111111111111112,
|
|
23
|
-
"lastValidated": "2026-03-25T10:
|
|
23
|
+
"lastValidated": "2026-03-25T10:10:16.511Z",
|
|
24
24
|
"mapVersion": 1,
|
|
25
25
|
"uiArchitecture": {
|
|
26
26
|
"type": "other",
|
|
@@ -1780,10 +1780,12 @@
|
|
|
1780
1780
|
"parentZone": "page::Simulator",
|
|
1781
1781
|
"children": [
|
|
1782
1782
|
"WindowSharingSessionButton",
|
|
1783
|
-
": C"
|
|
1783
|
+
": C",
|
|
1784
|
+
"iCloud",
|
|
1785
|
+
"• All iCloud"
|
|
1784
1786
|
],
|
|
1785
1787
|
"source": "ocr_spatial",
|
|
1786
|
-
"lastSeen": "2026-03-
|
|
1788
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1787
1789
|
},
|
|
1788
1790
|
{
|
|
1789
1791
|
"parentLabel": "iPhone 16 Plus – iOS 18.6",
|
|
@@ -1826,10 +1828,11 @@
|
|
|
1826
1828
|
"> build",
|
|
1827
1829
|
"> Pods",
|
|
1828
1830
|
".xcode.env",
|
|
1829
|
-
".xcode.env.local"
|
|
1831
|
+
".xcode.env.local",
|
|
1832
|
+
". [TRUNCATED]"
|
|
1830
1833
|
],
|
|
1831
1834
|
"source": "ocr_spatial",
|
|
1832
|
-
"lastSeen": "2026-03-
|
|
1835
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1833
1836
|
},
|
|
1834
1837
|
{
|
|
1835
1838
|
"parentLabel": "Podfile",
|
|
@@ -1852,6 +1855,47 @@
|
|
|
1852
1855
|
],
|
|
1853
1856
|
"source": "ocr_spatial",
|
|
1854
1857
|
"lastSeen": "2026-03-25T09:59:28.015Z"
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"parentLabel": "Device",
|
|
1861
|
+
"parentZone": "page::Simulator",
|
|
1862
|
+
"children": [
|
|
1863
|
+
"1/0"
|
|
1864
|
+
],
|
|
1865
|
+
"source": "ocr_spatial",
|
|
1866
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
"parentLabel": "Notes",
|
|
1870
|
+
"parentZone": "page::Simulator",
|
|
1871
|
+
"children": [
|
|
1872
|
+
"• Bucket list |",
|
|
1873
|
+
"ScreenHand Te",
|
|
1874
|
+
"03 ScreenHand Te",
|
|
1875
|
+
"335",
|
|
1876
|
+
"Shortcut Test F",
|
|
1877
|
+
"I Recently Delete"
|
|
1878
|
+
],
|
|
1879
|
+
"source": "ocr_spatial",
|
|
1880
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"parentLabel": "Google",
|
|
1884
|
+
"parentZone": "page::Simulator",
|
|
1885
|
+
"children": [
|
|
1886
|
+
"CO"
|
|
1887
|
+
],
|
|
1888
|
+
"source": "ocr_spatial",
|
|
1889
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"parentLabel": "Help",
|
|
1893
|
+
"parentZone": "page::Simulator",
|
|
1894
|
+
"children": [
|
|
1895
|
+
"88"
|
|
1896
|
+
],
|
|
1897
|
+
"source": "ocr_spatial",
|
|
1898
|
+
"lastSeen": "2026-03-25T10:06:43.653Z"
|
|
1855
1899
|
}
|
|
1856
1900
|
]
|
|
1857
1901
|
},
|
|
@@ -2805,7 +2849,7 @@
|
|
|
2805
2849
|
"shortcutsUsed": 20,
|
|
2806
2850
|
"playbooksExported": 0,
|
|
2807
2851
|
"edgeCasesHandled": 2,
|
|
2808
|
-
"lastRecomputed": "2026-03-25T10:
|
|
2852
|
+
"lastRecomputed": "2026-03-25T10:10:09.981Z",
|
|
2809
2853
|
"visibilityConditions": [
|
|
2810
2854
|
{
|
|
2811
2855
|
"elementLabel": "iPhone 16 Plus",
|
|
@@ -2817,10 +2861,10 @@
|
|
|
2817
2861
|
"Simulator"
|
|
2818
2862
|
],
|
|
2819
2863
|
"absentOnPages": [],
|
|
2820
|
-
"seenCount":
|
|
2821
|
-
"checkCount":
|
|
2864
|
+
"seenCount": 50,
|
|
2865
|
+
"checkCount": 50,
|
|
2822
2866
|
"visibilityRate": 1,
|
|
2823
|
-
"lastSeen": "2026-03-25T10:
|
|
2867
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
2824
2868
|
"firstSeen": "2026-03-25T05:44:52.135Z"
|
|
2825
2869
|
},
|
|
2826
2870
|
{
|
|
@@ -2877,10 +2921,10 @@
|
|
|
2877
2921
|
"Simulator"
|
|
2878
2922
|
],
|
|
2879
2923
|
"absentOnPages": [],
|
|
2880
|
-
"seenCount":
|
|
2881
|
-
"checkCount":
|
|
2924
|
+
"seenCount": 18,
|
|
2925
|
+
"checkCount": 18,
|
|
2882
2926
|
"visibilityRate": 1,
|
|
2883
|
-
"lastSeen": "2026-03-25T10:
|
|
2927
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
2884
2928
|
"firstSeen": "2026-03-25T05:44:52.135Z"
|
|
2885
2929
|
},
|
|
2886
2930
|
{
|
|
@@ -4093,13 +4137,14 @@
|
|
|
4093
4137
|
"conditionType": "unknown",
|
|
4094
4138
|
"description": "Visibility rate: 100%",
|
|
4095
4139
|
"seenOnPages": [
|
|
4096
|
-
"iPhone 16 Plus – Press esc to stop capture"
|
|
4140
|
+
"iPhone 16 Plus – Press esc to stop capture",
|
|
4141
|
+
"Simulator"
|
|
4097
4142
|
],
|
|
4098
4143
|
"absentOnPages": [],
|
|
4099
|
-
"seenCount":
|
|
4100
|
-
"checkCount":
|
|
4144
|
+
"seenCount": 24,
|
|
4145
|
+
"checkCount": 24,
|
|
4101
4146
|
"visibilityRate": 1,
|
|
4102
|
-
"lastSeen": "2026-03-
|
|
4147
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4103
4148
|
"firstSeen": "2026-03-25T05:51:50.429Z"
|
|
4104
4149
|
},
|
|
4105
4150
|
{
|
|
@@ -4139,10 +4184,10 @@
|
|
|
4139
4184
|
"Simulator"
|
|
4140
4185
|
],
|
|
4141
4186
|
"absentOnPages": [],
|
|
4142
|
-
"seenCount":
|
|
4143
|
-
"checkCount":
|
|
4187
|
+
"seenCount": 8,
|
|
4188
|
+
"checkCount": 8,
|
|
4144
4189
|
"visibilityRate": 1,
|
|
4145
|
-
"lastSeen": "2026-03-25T10:
|
|
4190
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4146
4191
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4147
4192
|
},
|
|
4148
4193
|
{
|
|
@@ -4154,10 +4199,10 @@
|
|
|
4154
4199
|
"Simulator"
|
|
4155
4200
|
],
|
|
4156
4201
|
"absentOnPages": [],
|
|
4157
|
-
"seenCount":
|
|
4158
|
-
"checkCount":
|
|
4202
|
+
"seenCount": 8,
|
|
4203
|
+
"checkCount": 8,
|
|
4159
4204
|
"visibilityRate": 1,
|
|
4160
|
-
"lastSeen": "2026-03-25T10:
|
|
4205
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4161
4206
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4162
4207
|
},
|
|
4163
4208
|
{
|
|
@@ -4169,10 +4214,10 @@
|
|
|
4169
4214
|
"Simulator"
|
|
4170
4215
|
],
|
|
4171
4216
|
"absentOnPages": [],
|
|
4172
|
-
"seenCount":
|
|
4173
|
-
"checkCount":
|
|
4217
|
+
"seenCount": 8,
|
|
4218
|
+
"checkCount": 8,
|
|
4174
4219
|
"visibilityRate": 1,
|
|
4175
|
-
"lastSeen": "2026-03-25T10:
|
|
4220
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4176
4221
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4177
4222
|
},
|
|
4178
4223
|
{
|
|
@@ -4184,10 +4229,10 @@
|
|
|
4184
4229
|
"Simulator"
|
|
4185
4230
|
],
|
|
4186
4231
|
"absentOnPages": [],
|
|
4187
|
-
"seenCount":
|
|
4188
|
-
"checkCount":
|
|
4232
|
+
"seenCount": 8,
|
|
4233
|
+
"checkCount": 8,
|
|
4189
4234
|
"visibilityRate": 1,
|
|
4190
|
-
"lastSeen": "2026-03-25T10:
|
|
4235
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4191
4236
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4192
4237
|
},
|
|
4193
4238
|
{
|
|
@@ -4199,10 +4244,10 @@
|
|
|
4199
4244
|
"Simulator"
|
|
4200
4245
|
],
|
|
4201
4246
|
"absentOnPages": [],
|
|
4202
|
-
"seenCount":
|
|
4203
|
-
"checkCount":
|
|
4247
|
+
"seenCount": 8,
|
|
4248
|
+
"checkCount": 8,
|
|
4204
4249
|
"visibilityRate": 1,
|
|
4205
|
-
"lastSeen": "2026-03-25T10:
|
|
4250
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4206
4251
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4207
4252
|
},
|
|
4208
4253
|
{
|
|
@@ -4214,10 +4259,10 @@
|
|
|
4214
4259
|
"Simulator"
|
|
4215
4260
|
],
|
|
4216
4261
|
"absentOnPages": [],
|
|
4217
|
-
"seenCount":
|
|
4218
|
-
"checkCount":
|
|
4262
|
+
"seenCount": 8,
|
|
4263
|
+
"checkCount": 8,
|
|
4219
4264
|
"visibilityRate": 1,
|
|
4220
|
-
"lastSeen": "2026-03-25T10:
|
|
4265
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4221
4266
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4222
4267
|
},
|
|
4223
4268
|
{
|
|
@@ -4243,10 +4288,10 @@
|
|
|
4243
4288
|
"Simulator"
|
|
4244
4289
|
],
|
|
4245
4290
|
"absentOnPages": [],
|
|
4246
|
-
"seenCount":
|
|
4247
|
-
"checkCount":
|
|
4291
|
+
"seenCount": 8,
|
|
4292
|
+
"checkCount": 8,
|
|
4248
4293
|
"visibilityRate": 1,
|
|
4249
|
-
"lastSeen": "2026-03-25T10:
|
|
4294
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4250
4295
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4251
4296
|
},
|
|
4252
4297
|
{
|
|
@@ -4258,10 +4303,10 @@
|
|
|
4258
4303
|
"Simulator"
|
|
4259
4304
|
],
|
|
4260
4305
|
"absentOnPages": [],
|
|
4261
|
-
"seenCount":
|
|
4262
|
-
"checkCount":
|
|
4306
|
+
"seenCount": 8,
|
|
4307
|
+
"checkCount": 8,
|
|
4263
4308
|
"visibilityRate": 1,
|
|
4264
|
-
"lastSeen": "2026-03-25T10:
|
|
4309
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
4265
4310
|
"firstSeen": "2026-03-25T09:43:33.566Z"
|
|
4266
4311
|
},
|
|
4267
4312
|
{
|
|
@@ -5056,10 +5101,10 @@
|
|
|
5056
5101
|
"Simulator"
|
|
5057
5102
|
],
|
|
5058
5103
|
"absentOnPages": [],
|
|
5059
|
-
"seenCount":
|
|
5060
|
-
"checkCount":
|
|
5104
|
+
"seenCount": 2,
|
|
5105
|
+
"checkCount": 2,
|
|
5061
5106
|
"visibilityRate": 1,
|
|
5062
|
-
"lastSeen": "2026-03-25T10:
|
|
5107
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5063
5108
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5064
5109
|
},
|
|
5065
5110
|
{
|
|
@@ -5070,10 +5115,10 @@
|
|
|
5070
5115
|
"Simulator"
|
|
5071
5116
|
],
|
|
5072
5117
|
"absentOnPages": [],
|
|
5073
|
-
"seenCount":
|
|
5074
|
-
"checkCount":
|
|
5118
|
+
"seenCount": 2,
|
|
5119
|
+
"checkCount": 2,
|
|
5075
5120
|
"visibilityRate": 1,
|
|
5076
|
-
"lastSeen": "2026-03-25T10:
|
|
5121
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5077
5122
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5078
5123
|
},
|
|
5079
5124
|
{
|
|
@@ -5084,10 +5129,10 @@
|
|
|
5084
5129
|
"Simulator"
|
|
5085
5130
|
],
|
|
5086
5131
|
"absentOnPages": [],
|
|
5087
|
-
"seenCount":
|
|
5088
|
-
"checkCount":
|
|
5132
|
+
"seenCount": 2,
|
|
5133
|
+
"checkCount": 2,
|
|
5089
5134
|
"visibilityRate": 1,
|
|
5090
|
-
"lastSeen": "2026-03-25T10:
|
|
5135
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5091
5136
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5092
5137
|
},
|
|
5093
5138
|
{
|
|
@@ -5098,10 +5143,10 @@
|
|
|
5098
5143
|
"Simulator"
|
|
5099
5144
|
],
|
|
5100
5145
|
"absentOnPages": [],
|
|
5101
|
-
"seenCount":
|
|
5102
|
-
"checkCount":
|
|
5146
|
+
"seenCount": 2,
|
|
5147
|
+
"checkCount": 2,
|
|
5103
5148
|
"visibilityRate": 1,
|
|
5104
|
-
"lastSeen": "2026-03-25T10:
|
|
5149
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5105
5150
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5106
5151
|
},
|
|
5107
5152
|
{
|
|
@@ -5112,10 +5157,10 @@
|
|
|
5112
5157
|
"Simulator"
|
|
5113
5158
|
],
|
|
5114
5159
|
"absentOnPages": [],
|
|
5115
|
-
"seenCount":
|
|
5116
|
-
"checkCount":
|
|
5160
|
+
"seenCount": 2,
|
|
5161
|
+
"checkCount": 2,
|
|
5117
5162
|
"visibilityRate": 1,
|
|
5118
|
-
"lastSeen": "2026-03-25T10:
|
|
5163
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5119
5164
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5120
5165
|
},
|
|
5121
5166
|
{
|
|
@@ -5126,10 +5171,10 @@
|
|
|
5126
5171
|
"Simulator"
|
|
5127
5172
|
],
|
|
5128
5173
|
"absentOnPages": [],
|
|
5129
|
-
"seenCount":
|
|
5130
|
-
"checkCount":
|
|
5174
|
+
"seenCount": 2,
|
|
5175
|
+
"checkCount": 2,
|
|
5131
5176
|
"visibilityRate": 1,
|
|
5132
|
-
"lastSeen": "2026-03-25T10:
|
|
5177
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5133
5178
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5134
5179
|
},
|
|
5135
5180
|
{
|
|
@@ -5140,11 +5185,25 @@
|
|
|
5140
5185
|
"Simulator"
|
|
5141
5186
|
],
|
|
5142
5187
|
"absentOnPages": [],
|
|
5143
|
-
"seenCount":
|
|
5144
|
-
"checkCount":
|
|
5188
|
+
"seenCount": 2,
|
|
5189
|
+
"checkCount": 2,
|
|
5145
5190
|
"visibilityRate": 1,
|
|
5146
|
-
"lastSeen": "2026-03-25T10:
|
|
5191
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5147
5192
|
"firstSeen": "2026-03-25T10:01:02.431Z"
|
|
5193
|
+
},
|
|
5194
|
+
{
|
|
5195
|
+
"elementLabel": "3:36",
|
|
5196
|
+
"conditionType": "unknown",
|
|
5197
|
+
"description": "Visibility rate: 100%",
|
|
5198
|
+
"seenOnPages": [
|
|
5199
|
+
"Simulator"
|
|
5200
|
+
],
|
|
5201
|
+
"absentOnPages": [],
|
|
5202
|
+
"seenCount": 2,
|
|
5203
|
+
"checkCount": 2,
|
|
5204
|
+
"visibilityRate": 1,
|
|
5205
|
+
"lastSeen": "2026-03-25T10:06:30.136Z",
|
|
5206
|
+
"firstSeen": "2026-03-25T10:06:30.136Z"
|
|
5148
5207
|
}
|
|
5149
5208
|
]
|
|
5150
5209
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "screenhand",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"mcpName": "io.github.manushi4/screenhand",
|
|
5
5
|
"description": "Give AI eyes and hands on your desktop. ScreenHand is an open-source MCP server that lets Claude and other AI agents see your screen, click buttons, type text, and control any app on macOS and Windows.",
|
|
6
6
|
"homepage": "https://screenhand.com",
|