screenhand 0.4.0 → 0.4.2
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/dist/mcp-desktop.js +10 -0
- package/dist/src/ingestion/coverage-auditor.js +12 -3
- package/dist/src/ingestion/feature-extractor.js +29 -29
- package/dist/src/memory/playbook-seeds.js +1 -1
- package/dist/src/playbook/engine.js +15 -0
- package/dist/src/playbook/mcp-recorder.js +21 -1
- package/dist/src/state/app-map.js +56 -51
- package/dist/src/state/ladder-generator.js +28 -28
- package/dist-app-maps/com.apple.Music.json +6587 -0
- package/dist-app-maps/com.apple.Notes.json +6098 -0
- package/dist-app-maps/com.apple.Photos.json +406 -0
- package/dist-app-maps/com.apple.Terminal.json +3968 -0
- package/dist-app-maps/com.apple.finder.json +420 -0
- package/dist-app-maps/com.apple.iCal.json +2375 -0
- package/dist-app-maps/com.apple.iWork.Keynote.json +2374 -0
- package/dist-app-maps/com.apple.iWork.Pages.json +7564 -0
- package/dist-app-maps/com.apple.mail.json +8353 -0
- package/dist-app-maps/com.apple.reminders.json +3322 -0
- package/dist-app-maps/net.whatsapp.WhatsApp.json +5151 -0
- package/dist-playbooks/calendar-create-event.json +20 -0
- package/dist-playbooks/calendar-list-events.json +20 -0
- package/dist-playbooks/calendar-navigate-views.json +47 -0
- package/dist-playbooks/calendar-open-settings.json +20 -0
- package/dist-playbooks/google-ads-transparency-competitor-research.json +89 -0
- package/dist-playbooks/google-search-competitor-research.json +76 -0
- package/dist-playbooks/keynote-add-slide.json +20 -0
- package/dist-playbooks/keynote-create-presentation.json +20 -0
- package/dist-playbooks/keynote-export-pdf.json +20 -0
- package/dist-playbooks/keynote-play-slideshow.json +20 -0
- package/dist-playbooks/meta-ad-library-competitor-research.json +100 -0
- package/dist-playbooks/notes-mastery-workflows.json +468 -0
- package/dist-playbooks/pages-export-pdf.json +20 -0
- package/dist-playbooks/pages-new-document.json +20 -0
- package/dist-playbooks/pages-open-document.json +20 -0
- package/dist-playbooks/reminders-complete.json +21 -0
- package/dist-playbooks/reminders-create.json +21 -0
- package/dist-playbooks/reminders-list.json +22 -0
- package/dist-playbooks/reminders-open.json +35 -0
- package/dist-playbooks/whatsapp-contact-info.json +32 -0
- package/dist-playbooks/whatsapp-navigate.json +71 -0
- package/dist-playbooks/whatsapp-new-call.json +32 -0
- package/dist-playbooks/whatsapp-new-group.json +32 -0
- package/dist-playbooks/whatsapp-search.json +28 -0
- package/dist-playbooks/whatsapp-settings.json +23 -0
- package/dist-playbooks/x_change_avatar.json +52 -0
- package/dist-references/apple-music.json +822 -0
- package/dist-references/calendar.json +1020 -0
- package/dist-references/finder.json +735 -7
- package/dist-references/google-search-competitor-research.json +73 -0
- package/dist-references/keynote.json +134 -0
- package/dist-references/mail.json +431 -0
- package/dist-references/pages.json +1203 -0
- package/dist-references/photos.json +642 -0
- package/dist-references/reminders.json +835 -0
- package/dist-references/terminal.json +640 -0
- package/dist-references/whatsapp.json +324 -0
- package/package.json +1 -1
|
@@ -0,0 +1,640 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "terminal",
|
|
3
|
+
"name": "Terminal — Auto-Generated Reference",
|
|
4
|
+
"platform": "terminal",
|
|
5
|
+
"bundleId": "com.apple.Terminal",
|
|
6
|
+
"shortcuts": {
|
|
7
|
+
"Apple": {
|
|
8
|
+
"AXMenu > Force Quit…": "Option+Cmd+⎋",
|
|
9
|
+
"AXMenu > Force Quit Terminal": "Option+Shift+Cmd+⎋",
|
|
10
|
+
"AXMenu > Lock Screen": "Ctrl+Cmd+Q",
|
|
11
|
+
"AXMenu > Log Out khushi goyal…": "Shift+Cmd+Q",
|
|
12
|
+
"AXMenu > Log Out khushi goyal": "Option+Shift+Cmd+Q"
|
|
13
|
+
},
|
|
14
|
+
"Terminal": {
|
|
15
|
+
"AXMenu > Settings…": "Cmd+,",
|
|
16
|
+
"AXMenu > Hide Terminal": "Cmd+H",
|
|
17
|
+
"AXMenu > Hide Others": "Option+Cmd+H",
|
|
18
|
+
"AXMenu > Quit Terminal": "Cmd+Q",
|
|
19
|
+
"AXMenu > Quit and Keep Windows": "Option+Cmd+Q"
|
|
20
|
+
},
|
|
21
|
+
"Shell": {
|
|
22
|
+
"AXMenu > New Window > AXMenu > New Window with Profile - Basic": "Cmd+N",
|
|
23
|
+
"AXMenu > New Window > AXMenu > New Window with Same Command": "Ctrl+Cmd+N",
|
|
24
|
+
"AXMenu > New Tab > AXMenu > New Tab with Profile – Basic": "Cmd+T",
|
|
25
|
+
"AXMenu > New Tab > AXMenu > New Tab with Same Command": "Ctrl+Cmd+T",
|
|
26
|
+
"AXMenu > New Command…": "Shift+Cmd+N",
|
|
27
|
+
"AXMenu > New Remote Connection…": "Shift+Cmd+K",
|
|
28
|
+
"AXMenu > Open…": "Cmd+O",
|
|
29
|
+
"AXMenu > Close Window": "Cmd+W",
|
|
30
|
+
"AXMenu > Close All": "Option+Cmd+W",
|
|
31
|
+
"AXMenu > Export Text As…": "Cmd+S",
|
|
32
|
+
"AXMenu > Export Selected Text As…": "Shift+Cmd+S",
|
|
33
|
+
"AXMenu > Show Inspector": "Cmd+I",
|
|
34
|
+
"AXMenu > Edit Title": "Shift+Cmd+I",
|
|
35
|
+
"AXMenu > Edit Background Color": "Option+Cmd+I",
|
|
36
|
+
"AXMenu > Reset": "Option+Cmd+R",
|
|
37
|
+
"AXMenu > Hard Reset": "Ctrl+Option+Cmd+R",
|
|
38
|
+
"AXMenu > Print Selection…": "Option+Cmd+P",
|
|
39
|
+
"AXMenu > Print…": "Cmd+P"
|
|
40
|
+
},
|
|
41
|
+
"Edit": {
|
|
42
|
+
"AXMenu > Undo": "Cmd+Z",
|
|
43
|
+
"AXMenu > Redo": "Shift+Cmd+Z",
|
|
44
|
+
"AXMenu > Cut": "Cmd+X",
|
|
45
|
+
"AXMenu > Copy": "Cmd+C",
|
|
46
|
+
"AXMenu > Copy Special > AXMenu > Copy Without Background Color": "Ctrl+Shift+Cmd+C",
|
|
47
|
+
"AXMenu > Copy Special > AXMenu > Copy Plain Text": "Option+Shift+Cmd+C",
|
|
48
|
+
"AXMenu > Paste": "Cmd+V",
|
|
49
|
+
"AXMenu > Paste Escaped Text": "Ctrl+Cmd+V",
|
|
50
|
+
"AXMenu > Paste Selection": "Shift+Cmd+V",
|
|
51
|
+
"AXMenu > Paste Escaped Selection": "Ctrl+Shift+Cmd+V",
|
|
52
|
+
"AXMenu > Select All": "Cmd+A",
|
|
53
|
+
"AXMenu > Select Between Marks": "Shift+Cmd+A",
|
|
54
|
+
"AXMenu > Marks > AXMenu > Mark Line and Send Return": "Cmd+\r",
|
|
55
|
+
"AXMenu > Marks > AXMenu > Send Return Without Marking": "Shift+Cmd+\r",
|
|
56
|
+
"AXMenu > Marks > AXMenu > Mark": "Cmd+U",
|
|
57
|
+
"AXMenu > Marks > AXMenu > Mark as Bookmark": "Option+Cmd+U",
|
|
58
|
+
"AXMenu > Marks > AXMenu > Unmark": "Shift+Cmd+U",
|
|
59
|
+
"AXMenu > Bookmarks > AXMenu > Insert Bookmark": "Shift+Cmd+M",
|
|
60
|
+
"AXMenu > Bookmarks > AXMenu > Insert Bookmark with Name…": "Option+Shift+Cmd+M",
|
|
61
|
+
"AXMenu > Navigate > AXMenu > Jump to Previous Mark": "Cmd+",
|
|
62
|
+
"AXMenu > Navigate > AXMenu > Select to Previous Mark": "Shift+Cmd+",
|
|
63
|
+
"AXMenu > Navigate > AXMenu > Jump to Next Mark": "Cmd+",
|
|
64
|
+
"AXMenu > Navigate > AXMenu > Select to Next Mark": "Shift+Cmd+",
|
|
65
|
+
"AXMenu > Navigate > AXMenu > Jump to Previous Bookmark": "Option+Cmd+",
|
|
66
|
+
"AXMenu > Navigate > AXMenu > Select to Previous Bookmark": "Option+Shift+Cmd+",
|
|
67
|
+
"AXMenu > Navigate > AXMenu > Jump to Next Bookmark": "Option+Cmd+",
|
|
68
|
+
"AXMenu > Navigate > AXMenu > Select to Next Bookmark": "Option+Shift+Cmd+",
|
|
69
|
+
"AXMenu > Clear to Previous Mark": "Cmd+L",
|
|
70
|
+
"AXMenu > Clear to Previous Bookmark": "Option+Cmd+L",
|
|
71
|
+
"AXMenu > Clear to Start": "Cmd+K",
|
|
72
|
+
"AXMenu > Clear Scrollback": "Option+Cmd+K",
|
|
73
|
+
"AXMenu > Clear Screen": "Ctrl+Cmd+L",
|
|
74
|
+
"AXMenu > Fill Screen": "Ctrl+Option+Cmd+L",
|
|
75
|
+
"AXMenu > Find > AXMenu > Find…": "Cmd+F",
|
|
76
|
+
"AXMenu > Find > AXMenu > Find Next": "Cmd+G",
|
|
77
|
+
"AXMenu > Find > AXMenu > Find Previous": "Shift+Cmd+G",
|
|
78
|
+
"AXMenu > Find > AXMenu > Hide Find Bar": "Shift+Cmd+F",
|
|
79
|
+
"AXMenu > Find > AXMenu > Use Selection for Find": "Cmd+E",
|
|
80
|
+
"AXMenu > Find > AXMenu > Jump to Selection": "Cmd+J",
|
|
81
|
+
"AXMenu > Show Colors": "Shift+Cmd+C",
|
|
82
|
+
"AXMenu > Use Option as Meta Key": "Option+Cmd+O",
|
|
83
|
+
"AXMenu > Num Lock": "Cmd+⌧",
|
|
84
|
+
"AXMenu > Start Dictation…": "Cmd+🎤",
|
|
85
|
+
"AXMenu > Emoji & Symbols": "Cmd+🌐"
|
|
86
|
+
},
|
|
87
|
+
"View": {
|
|
88
|
+
"AXMenu > Show All Tabs": "Shift+Cmd+\\",
|
|
89
|
+
"AXMenu > Show Tab Bar": "Shift+Cmd+T",
|
|
90
|
+
"AXMenu > Show Alternate Screen": "Shift+Cmd+",
|
|
91
|
+
"AXMenu > Hide Alternate Screen": "Shift+Cmd+",
|
|
92
|
+
"AXMenu > Allow Mouse Reporting": "Cmd+R",
|
|
93
|
+
"AXMenu > Split Pane": "Cmd+D",
|
|
94
|
+
"AXMenu > Close Split Pane": "Shift+Cmd+D",
|
|
95
|
+
"AXMenu > Default Font Size": "Cmd+0",
|
|
96
|
+
"AXMenu > Bigger": "Cmd++",
|
|
97
|
+
"AXMenu > Smaller": "Cmd+-",
|
|
98
|
+
"AXMenu > Scroll to Top": "Cmd+",
|
|
99
|
+
"AXMenu > Scroll to Bottom": "Cmd+",
|
|
100
|
+
"AXMenu > Page Up": "Cmd+",
|
|
101
|
+
"AXMenu > Page Down": "Cmd+",
|
|
102
|
+
"AXMenu > Line Up": "Option+Cmd+",
|
|
103
|
+
"AXMenu > Line Down": "Option+Cmd+",
|
|
104
|
+
"AXMenu > Enter Full Screen": "Cmd+F"
|
|
105
|
+
},
|
|
106
|
+
"Window": {
|
|
107
|
+
"AXMenu > Minimize": "Cmd+M",
|
|
108
|
+
"AXMenu > Minimize All": "Option+Cmd+M",
|
|
109
|
+
"AXMenu > Fill": "Ctrl+Cmd+F",
|
|
110
|
+
"AXMenu > Center": "Ctrl+Cmd+C",
|
|
111
|
+
"AXMenu > Move & Resize > AXMenu > Return to Previous Size": "Ctrl+Cmd+R",
|
|
112
|
+
"AXMenu > Cycle Through Windows": "Cmd+`",
|
|
113
|
+
"AXMenu > Show Previous Tab": "Ctrl+Shift+Cmd+\t",
|
|
114
|
+
"AXMenu > Show Next Tab": "Ctrl+Cmd+\t",
|
|
115
|
+
"AXMenu > khushi — -zsh — 80×24": "Option+Cmd+1"
|
|
116
|
+
},
|
|
117
|
+
"Help": {
|
|
118
|
+
"AXMenu > Open man Page for Selection": "Ctrl+Cmd+?",
|
|
119
|
+
"AXMenu > Search man Page Index for Selection": "Ctrl+Option+Cmd+/"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"selectors": {
|
|
123
|
+
"window": {
|
|
124
|
+
"title": "AXStaticText = '<user> — -zsh — WxH' in AXWindow",
|
|
125
|
+
"textArea": "AXTextArea of AXScrollArea of AXSplitGroup of AXWindow — full terminal buffer",
|
|
126
|
+
"scrollBar": "AXScrollBar of AXScrollArea",
|
|
127
|
+
"splitPane": "Two AXScrollArea inside AXSplitGroup when split active",
|
|
128
|
+
"toolbar": "AXButton × 3 at top of window (Split, Inspector, Profile avatar)",
|
|
129
|
+
"inspectorButton": "AXButton[2] of AXWindow — opens Shell Inspector"
|
|
130
|
+
},
|
|
131
|
+
"input": {
|
|
132
|
+
"promptLine": "Last line of AXTextArea value — ends with '% ' or '$ '",
|
|
133
|
+
"sendCommand": "set value of AXTextArea + key code 36 (Return)",
|
|
134
|
+
"pasteEscaped": "Edit > Paste Escaped Text (Ctrl+Cmd+V) — escapes special chars before pasting"
|
|
135
|
+
},
|
|
136
|
+
"tabs": {
|
|
137
|
+
"newTab": "Cmd+T (New Tab with Profile – Basic)",
|
|
138
|
+
"nextTab": "Ctrl+Cmd+Tab",
|
|
139
|
+
"prevTab": "Ctrl+Shift+Cmd+Tab",
|
|
140
|
+
"tabBar": "Shift+Cmd+T to show/hide",
|
|
141
|
+
"allTabs": "Shift+Cmd+\\ — Tab Overview"
|
|
142
|
+
},
|
|
143
|
+
"search": {
|
|
144
|
+
"findBar": "Cmd+F — opens in-terminal find bar",
|
|
145
|
+
"findNext": "Cmd+G",
|
|
146
|
+
"findPrev": "Shift+Cmd+G",
|
|
147
|
+
"useSelectionForFind": "Cmd+E"
|
|
148
|
+
},
|
|
149
|
+
"marks": {
|
|
150
|
+
"markLine": "Cmd+U — marks current line",
|
|
151
|
+
"markAsBookmark": "Option+Cmd+U",
|
|
152
|
+
"unmark": "Shift+Cmd+U",
|
|
153
|
+
"jumpToPrevMark": "Cmd+Up",
|
|
154
|
+
"jumpToNextMark": "Cmd+Down",
|
|
155
|
+
"selectBetweenMarks": "Shift+Cmd+A",
|
|
156
|
+
"clearToMark": "Cmd+L",
|
|
157
|
+
"clearScrollback": "Option+Cmd+K",
|
|
158
|
+
"clearScreen": "Ctrl+Cmd+L"
|
|
159
|
+
},
|
|
160
|
+
"settings": {
|
|
161
|
+
"open": "Cmd+,",
|
|
162
|
+
"tabs": [
|
|
163
|
+
"Profiles",
|
|
164
|
+
"Keyboard",
|
|
165
|
+
"Pointer"
|
|
166
|
+
],
|
|
167
|
+
"profiles": "Built-in: Basic, Grass, Homebrew, Man Page, Novel, Ocean, Pro, Red Sands, Silver Aerogel, Solid Colors",
|
|
168
|
+
"perWindowProfile": "Shell > Use Settings as Default"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"flows": {
|
|
172
|
+
"run_command": {
|
|
173
|
+
"steps": [
|
|
174
|
+
"tell application \"Terminal\" to activate",
|
|
175
|
+
"tell application \"System Events\"",
|
|
176
|
+
" tell process \"Terminal\"",
|
|
177
|
+
" set value of text area 1 of scroll area 1 of splitter group 1 of window 1 to \"your command\"",
|
|
178
|
+
" key code 36 -- Return",
|
|
179
|
+
" end tell",
|
|
180
|
+
"end tell"
|
|
181
|
+
],
|
|
182
|
+
"applescript": "tell application \"Terminal\" to do script \"echo hello\" in window 1",
|
|
183
|
+
"note": "do script is BLOCKED by ScreenHand. Use System Events text area approach instead.",
|
|
184
|
+
"verified": true
|
|
185
|
+
},
|
|
186
|
+
"read_output": {
|
|
187
|
+
"steps": [
|
|
188
|
+
"tell application \"System Events\"",
|
|
189
|
+
" tell process \"Terminal\"",
|
|
190
|
+
" return value of text area 1 of scroll area 1 of splitter group 1 of window 1",
|
|
191
|
+
" end tell",
|
|
192
|
+
"end tell"
|
|
193
|
+
],
|
|
194
|
+
"note": "Returns entire visible buffer as string. Parse last line for prompt, preceding lines for output.",
|
|
195
|
+
"verified": true
|
|
196
|
+
},
|
|
197
|
+
"new_window": {
|
|
198
|
+
"steps": [
|
|
199
|
+
"Cmd+N — new window with default profile",
|
|
200
|
+
"Ctrl+Cmd+N — new window with same command as current"
|
|
201
|
+
],
|
|
202
|
+
"verified": true
|
|
203
|
+
},
|
|
204
|
+
"new_tab": {
|
|
205
|
+
"steps": [
|
|
206
|
+
"Cmd+T — new tab with default profile",
|
|
207
|
+
"Ctrl+Cmd+T — new tab with same command"
|
|
208
|
+
],
|
|
209
|
+
"verified": true
|
|
210
|
+
},
|
|
211
|
+
"split_pane": {
|
|
212
|
+
"steps": [
|
|
213
|
+
"Cmd+D — split current window into two panes (side by side)",
|
|
214
|
+
"Shift+Cmd+D — close split pane",
|
|
215
|
+
"Click in either pane to focus"
|
|
216
|
+
],
|
|
217
|
+
"verified": true
|
|
218
|
+
},
|
|
219
|
+
"ssh_remote": {
|
|
220
|
+
"steps": [
|
|
221
|
+
"Shift+Cmd+K — New Remote Connection dialog",
|
|
222
|
+
"Select protocol: SSH / SFTP / FTP / Telnet",
|
|
223
|
+
"Enter server address + user",
|
|
224
|
+
"Click Connect — opens new tab with SSH session"
|
|
225
|
+
],
|
|
226
|
+
"applescript_alternative": "tell application \"Terminal\" to do script \"ssh user@host\"",
|
|
227
|
+
"verified": false
|
|
228
|
+
},
|
|
229
|
+
"open_man_page": {
|
|
230
|
+
"steps": [
|
|
231
|
+
"Select a command name in terminal output",
|
|
232
|
+
"Ctrl+Cmd+? — Open man Page for Selection",
|
|
233
|
+
"OR: Ctrl+Option+Cmd+/ — Search man Page Index"
|
|
234
|
+
],
|
|
235
|
+
"verified": true
|
|
236
|
+
},
|
|
237
|
+
"change_font_size": {
|
|
238
|
+
"steps": [
|
|
239
|
+
"Cmd++ — bigger",
|
|
240
|
+
"Cmd+- — smaller",
|
|
241
|
+
"Cmd+0 — reset to default"
|
|
242
|
+
],
|
|
243
|
+
"verified": true
|
|
244
|
+
},
|
|
245
|
+
"fullscreen": {
|
|
246
|
+
"steps": [
|
|
247
|
+
"Cmd+F (or View > Enter Full Screen)"
|
|
248
|
+
],
|
|
249
|
+
"note": "Ctrl+Cmd+F also works (standard macOS shortcut)",
|
|
250
|
+
"verified": true
|
|
251
|
+
},
|
|
252
|
+
"secure_keyboard_entry": {
|
|
253
|
+
"steps": [
|
|
254
|
+
"Terminal menu > Secure Keyboard Entry (toggle)"
|
|
255
|
+
],
|
|
256
|
+
"note": "Prevents other apps from reading keystrokes — use when typing passwords",
|
|
257
|
+
"verified": true
|
|
258
|
+
},
|
|
259
|
+
"export_transcript": {
|
|
260
|
+
"steps": [
|
|
261
|
+
"Shell > Export Text As… (Cmd+S) — saves entire buffer as .txt",
|
|
262
|
+
"Shell > Export Selected Text As… (Shift+Cmd+S) — saves selection only"
|
|
263
|
+
],
|
|
264
|
+
"verified": true
|
|
265
|
+
},
|
|
266
|
+
"change_profile": {
|
|
267
|
+
"steps": [
|
|
268
|
+
"Shell > Use Settings as Default — applies current window profile as default",
|
|
269
|
+
"Shell > Export Settings… — exports .terminal profile file",
|
|
270
|
+
"Open .terminal file (Cmd+O) — opens new window with that profile"
|
|
271
|
+
],
|
|
272
|
+
"verified": false
|
|
273
|
+
},
|
|
274
|
+
"window_groups": {
|
|
275
|
+
"steps": [
|
|
276
|
+
"Window > Save Windows as Group… — saves all current windows/tabs as named group",
|
|
277
|
+
"Window > Open Window Group — restore saved group",
|
|
278
|
+
"Useful for restoring complex multi-tab dev setups"
|
|
279
|
+
],
|
|
280
|
+
"verified": false
|
|
281
|
+
},
|
|
282
|
+
"applescript_automation": {
|
|
283
|
+
"steps": [
|
|
284
|
+
"Read terminal output:",
|
|
285
|
+
" tell process \"Terminal\" → value of text area 1 of scroll area 1 of splitter group 1",
|
|
286
|
+
"Type into terminal:",
|
|
287
|
+
" set value of text area 1 to \"command\" → key code 36",
|
|
288
|
+
"NOTE: 'do script' is blocked by ScreenHand security policy"
|
|
289
|
+
],
|
|
290
|
+
"verified": true
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"errors": {
|
|
294
|
+
"do_script_blocked": {
|
|
295
|
+
"description": "tell application \"Terminal\" to do script \"...\" is blocked by ScreenHand (shell execution restriction)",
|
|
296
|
+
"workaround": "Use System Events: set value of text area 1 of scroll area 1 of splitter group 1 of window 1 to \"command\", then key code 36",
|
|
297
|
+
"observed": "2026-03-24"
|
|
298
|
+
},
|
|
299
|
+
"window_not_found": {
|
|
300
|
+
"description": "Terminal window may not exist if app just launched",
|
|
301
|
+
"workaround": "Open new window first with Cmd+N or wait 0.5s after activate",
|
|
302
|
+
"observed": "2026-03-24"
|
|
303
|
+
},
|
|
304
|
+
"text_area_path": {
|
|
305
|
+
"description": "AX path varies — text area is nested: text area 1 of scroll area 1 of splitter group 1 of window 1",
|
|
306
|
+
"workaround": "Always use splitter group 1 in path even when not split",
|
|
307
|
+
"observed": "2026-03-24"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"websiteFeatures": [
|
|
311
|
+
{
|
|
312
|
+
"id": "run_commands",
|
|
313
|
+
"name": "Run Shell Commands",
|
|
314
|
+
"description": "Execute any Unix/bash/zsh command. Full shell access with PATH, env vars, stdin/stdout/stderr.",
|
|
315
|
+
"category": "core",
|
|
316
|
+
"level": "beginner"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"id": "tabs",
|
|
320
|
+
"name": "Tabs (Cmd+T)",
|
|
321
|
+
"description": "Multiple terminal sessions in one window. Each tab is independent shell. Name tabs. New Tab with Same Command repeats last command.",
|
|
322
|
+
"category": "core",
|
|
323
|
+
"level": "beginner"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"id": "windows",
|
|
327
|
+
"name": "Multiple Windows (Cmd+N)",
|
|
328
|
+
"description": "Open multiple Terminal windows. Save window groups for dev setups. Merge all windows into tabs.",
|
|
329
|
+
"category": "core",
|
|
330
|
+
"level": "beginner"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"id": "split_panes",
|
|
334
|
+
"name": "Split Pane (Cmd+D)",
|
|
335
|
+
"description": "Split window horizontally into two independent panes. Each pane runs its own shell. Close with Shift+Cmd+D.",
|
|
336
|
+
"category": "core",
|
|
337
|
+
"level": "pro"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"id": "profiles",
|
|
341
|
+
"name": "Profiles",
|
|
342
|
+
"description": "10 built-in themes: Basic, Pro, Homebrew, Grass, Ocean, etc. Customize font, colors, cursor, window size. Per-window/tab profile. Export as .terminal files.",
|
|
343
|
+
"category": "customization",
|
|
344
|
+
"level": "pro"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"id": "font_size",
|
|
348
|
+
"name": "Font Size Control",
|
|
349
|
+
"description": "Cmd+Plus (bigger), Cmd+Minus (smaller), Cmd+0 (reset). Per-session, non-destructive.",
|
|
350
|
+
"category": "customization",
|
|
351
|
+
"level": "beginner"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "find",
|
|
355
|
+
"name": "Find in Buffer (Cmd+F)",
|
|
356
|
+
"description": "Search terminal scrollback for text. Find next/prev, use selection as search term. Works across entire buffer.",
|
|
357
|
+
"category": "navigation",
|
|
358
|
+
"level": "beginner"
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"id": "marks_bookmarks",
|
|
362
|
+
"name": "Marks & Bookmarks",
|
|
363
|
+
"description": "Mark lines (Cmd+U) to create navigation anchors. Bookmarks (Option+Cmd+U) for named positions. Jump between marks (Cmd+Up/Down). Select between marks (Shift+Cmd+A).",
|
|
364
|
+
"category": "navigation",
|
|
365
|
+
"level": "pro"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"id": "scrollback",
|
|
369
|
+
"name": "Scrollback Buffer",
|
|
370
|
+
"description": "Scroll through command history output. Page Up/Down (Cmd+Up/Down). Scroll to top (Cmd+Home), bottom (Cmd+End). Clear scrollback (Option+Cmd+K).",
|
|
371
|
+
"category": "navigation",
|
|
372
|
+
"level": "beginner"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"id": "ssh_remote",
|
|
376
|
+
"name": "SSH / Remote Connection (Shift+Cmd+K)",
|
|
377
|
+
"description": "Built-in New Remote Connection dialog for SSH, SFTP, FTP, Telnet. Opens new tab per connection.",
|
|
378
|
+
"category": "networking",
|
|
379
|
+
"level": "pro"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"id": "man_pages",
|
|
383
|
+
"name": "man Page Lookup",
|
|
384
|
+
"description": "Select any command > Ctrl+Cmd+? opens its man page in new window. Ctrl+Option+Cmd+/ searches man page index. Essential for command reference.",
|
|
385
|
+
"category": "reference",
|
|
386
|
+
"level": "beginner"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "secure_keyboard",
|
|
390
|
+
"name": "Secure Keyboard Entry",
|
|
391
|
+
"description": "Terminal menu toggle. Blocks other apps from reading keystrokes. Use when entering passwords/API keys.",
|
|
392
|
+
"category": "security",
|
|
393
|
+
"level": "pro"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"id": "paste_escaped",
|
|
397
|
+
"name": "Paste Escaped Text (Ctrl+Cmd+V)",
|
|
398
|
+
"description": "Pastes clipboard content with special characters escaped (spaces, quotes, etc.). Safe for pasting file paths or code snippets.",
|
|
399
|
+
"category": "editing",
|
|
400
|
+
"level": "pro"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"id": "export_text",
|
|
404
|
+
"name": "Export Terminal Transcript",
|
|
405
|
+
"description": "Shell > Export Text As (Cmd+S) saves full buffer to .txt. Export Selected saves just selection. Good for saving command output.",
|
|
406
|
+
"category": "output",
|
|
407
|
+
"level": "pro"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"id": "inspect_title",
|
|
411
|
+
"name": "Inspector & Custom Title",
|
|
412
|
+
"description": "Cmd+I opens Shell Inspector (title, command, PID, profile). Shift+Cmd+I to set custom tab/window title.",
|
|
413
|
+
"category": "customization",
|
|
414
|
+
"level": "pro"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"id": "window_groups",
|
|
418
|
+
"name": "Window Groups",
|
|
419
|
+
"description": "Window > Save Windows as Group — saves all open windows/tabs as named group. Restore later. Perfect for dev environment snapshots.",
|
|
420
|
+
"category": "productivity",
|
|
421
|
+
"level": "expert"
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"id": "fullscreen",
|
|
425
|
+
"name": "Full Screen (Cmd+F)",
|
|
426
|
+
"description": "Expands terminal to full screen. Immersive coding mode.",
|
|
427
|
+
"category": "display",
|
|
428
|
+
"level": "beginner"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"id": "alternate_screen",
|
|
432
|
+
"name": "Alternate Screen",
|
|
433
|
+
"description": "Toggle alternate screen buffer (used by vim, less, man). Shift+Cmd+↑/↓ to show/hide. Keeps main scrollback clean.",
|
|
434
|
+
"category": "display",
|
|
435
|
+
"level": "expert"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"id": "mouse_reporting",
|
|
439
|
+
"name": "Mouse Reporting (Cmd+R)",
|
|
440
|
+
"description": "Allow terminal apps (tmux, vim) to receive mouse events for click-to-position, scroll, etc.",
|
|
441
|
+
"category": "display",
|
|
442
|
+
"level": "expert"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"id": "applescript_control",
|
|
446
|
+
"name": "AppleScript / ScreenHand Automation",
|
|
447
|
+
"description": "Read terminal output via AX tree (text area 1 of scroll area 1 of splitter group 1). Type commands by setting text area value + Return. 'do script' blocked by ScreenHand policy.",
|
|
448
|
+
"category": "automation",
|
|
449
|
+
"level": "expert"
|
|
450
|
+
}
|
|
451
|
+
],
|
|
452
|
+
"valueAddFeatures": [
|
|
453
|
+
{
|
|
454
|
+
"id": "summarize_all",
|
|
455
|
+
"name": "Summarize",
|
|
456
|
+
"description": "Read and summarize all Terminal content",
|
|
457
|
+
"category": "intelligence",
|
|
458
|
+
"level": "expert"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"id": "change_monitor",
|
|
462
|
+
"name": "Change Monitor",
|
|
463
|
+
"description": "Monitor Terminal for changes and notify",
|
|
464
|
+
"category": "monitoring",
|
|
465
|
+
"level": "grandmaster"
|
|
466
|
+
}
|
|
467
|
+
],
|
|
468
|
+
"additionalFeatures": [
|
|
469
|
+
{
|
|
470
|
+
"id": "drag_drop_files",
|
|
471
|
+
"name": "Drag & Drop Files/Folders",
|
|
472
|
+
"description": "Drag file/folder into Terminal to insert absolute path on command line. Hold Cmd to skip escaping.",
|
|
473
|
+
"category": "navigation",
|
|
474
|
+
"level": "beginner",
|
|
475
|
+
"verified": "docs"
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"id": "drag_drop_colors",
|
|
479
|
+
"name": "Drag & Drop Colors",
|
|
480
|
+
"description": "Drag a color swatch from the color panel onto a Terminal window to change its background color.",
|
|
481
|
+
"category": "customization",
|
|
482
|
+
"level": "pro",
|
|
483
|
+
"verified": "docs"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"id": "drag_drop_clippings",
|
|
487
|
+
"name": "Drag & Drop Text Clippings",
|
|
488
|
+
"description": "Drag .textClipping files directly into the prompt. Content is inserted as-is.",
|
|
489
|
+
"category": "editing",
|
|
490
|
+
"level": "pro",
|
|
491
|
+
"verified": "docs"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"id": "url_detection",
|
|
495
|
+
"name": "URL Detection",
|
|
496
|
+
"description": "Terminal auto-detects URLs in output. Cmd+double-click opens URL in browser.",
|
|
497
|
+
"category": "navigation",
|
|
498
|
+
"level": "beginner",
|
|
499
|
+
"verified": "live"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"id": "file_path_selection",
|
|
503
|
+
"name": "File Path Selection",
|
|
504
|
+
"description": "Shift+Cmd+double-click selects an entire file path in terminal output.",
|
|
505
|
+
"category": "editing",
|
|
506
|
+
"level": "pro",
|
|
507
|
+
"verified": "docs"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"id": "rectangular_selection",
|
|
511
|
+
"name": "Rectangular Block Selection",
|
|
512
|
+
"description": "Option+drag selects a rectangular region of text across multiple lines.",
|
|
513
|
+
"category": "editing",
|
|
514
|
+
"level": "expert",
|
|
515
|
+
"verified": "docs"
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"id": "cmdline_editing",
|
|
519
|
+
"name": "Command Line Editing Shortcuts",
|
|
520
|
+
"description": "Ctrl+A (start), Ctrl+E (end), Ctrl+U (delete line), Ctrl+K (delete to end), Ctrl+W (delete word), Ctrl+T (transpose).",
|
|
521
|
+
"category": "editing",
|
|
522
|
+
"level": "pro",
|
|
523
|
+
"verified": "live"
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"id": "reverse_history",
|
|
527
|
+
"name": "Reverse History Search",
|
|
528
|
+
"description": "Ctrl+R opens incremental search through shell command history. Type to filter, Enter to run, Escape to cancel.",
|
|
529
|
+
"category": "navigation",
|
|
530
|
+
"level": "pro",
|
|
531
|
+
"verified": "live"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "option_meta_key",
|
|
535
|
+
"name": "Option as Meta Key",
|
|
536
|
+
"description": "Cmd+Option+O toggle. Enables Emacs/readline Meta key combos (e.g. Meta+F to move forward one word).",
|
|
537
|
+
"category": "customization",
|
|
538
|
+
"level": "expert",
|
|
539
|
+
"verified": "live"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"id": "break_cmd_period",
|
|
543
|
+
"name": "Break (Cmd+.)",
|
|
544
|
+
"description": "Cmd+Period sends interrupt signal — equivalent to Ctrl+C. Stops running command.",
|
|
545
|
+
"category": "core",
|
|
546
|
+
"level": "beginner",
|
|
547
|
+
"verified": "live"
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"id": "soft_hard_reset",
|
|
551
|
+
"name": "Soft + Hard Reset",
|
|
552
|
+
"description": "Option+Cmd+R (soft reset): resets terminal state. Ctrl+Option+Cmd+R (hard reset): full reset including alternate screen.",
|
|
553
|
+
"category": "core",
|
|
554
|
+
"level": "pro",
|
|
555
|
+
"verified": "live"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"id": "bell_config",
|
|
559
|
+
"name": "Bell / Visual Alert Config",
|
|
560
|
+
"description": "Settings > Profiles > Advanced: audible bell, visual bell flash, badge app icon, bounce Dock icon (once or until foreground).",
|
|
561
|
+
"category": "customization",
|
|
562
|
+
"level": "pro",
|
|
563
|
+
"verified": "live"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"id": "scrollback_limit",
|
|
567
|
+
"name": "Limit Scrollback Rows",
|
|
568
|
+
"description": "Settings > Profiles > Window: limit scrollback to N rows (default 10,000) or available memory.",
|
|
569
|
+
"category": "display",
|
|
570
|
+
"level": "pro",
|
|
571
|
+
"verified": "live"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"id": "encodings",
|
|
575
|
+
"name": "Encodings Settings",
|
|
576
|
+
"description": "Settings > Encodings toolbar tab: enable/disable encodings per profile. UTF-8/16/32, ISO Latin, Japanese, ASCII, EBCDIC and more.",
|
|
577
|
+
"category": "customization",
|
|
578
|
+
"level": "expert",
|
|
579
|
+
"verified": "live"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"id": "keyboard_settings",
|
|
583
|
+
"name": "Keyboard Key Mappings",
|
|
584
|
+
"description": "Settings > Profiles > Keyboard: map function keys to escape sequences. Per-profile. Option as Meta key toggle. Scroll alternate screen toggle.",
|
|
585
|
+
"category": "customization",
|
|
586
|
+
"level": "expert",
|
|
587
|
+
"verified": "live"
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"id": "export_import_profiles",
|
|
591
|
+
"name": "Import / Export Profiles",
|
|
592
|
+
"description": "Shell > Export Settings… saves profile as .terminal file. Open > .terminal file imports it. Share profiles across machines.",
|
|
593
|
+
"category": "customization",
|
|
594
|
+
"level": "pro",
|
|
595
|
+
"verified": "live"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"id": "character_viewer",
|
|
599
|
+
"name": "Character Viewer",
|
|
600
|
+
"description": "Edit > Emoji & Symbols (Ctrl+Cmd+Space): opens system character picker to insert emoji, symbols, special chars.",
|
|
601
|
+
"category": "editing",
|
|
602
|
+
"level": "beginner",
|
|
603
|
+
"verified": "live"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"id": "launchd_scheduling",
|
|
607
|
+
"name": "launchd Task Scheduling",
|
|
608
|
+
"description": "Create ~/Library/LaunchAgents/*.plist files to schedule shell scripts via launchd. Terminal runs the scripts on schedule.",
|
|
609
|
+
"category": "automation",
|
|
610
|
+
"level": "grandmaster",
|
|
611
|
+
"verified": "docs"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"id": "color_picker",
|
|
615
|
+
"name": "Color Picker",
|
|
616
|
+
"description": "Edit > Show Colors (Shift+Cmd+C): opens system color panel. Drag colors to Terminal window to change background. Also accessible via Profile text/bg color wells.",
|
|
617
|
+
"category": "customization",
|
|
618
|
+
"level": "pro",
|
|
619
|
+
"verified": "live"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"id": "window_title_config",
|
|
623
|
+
"name": "Window Title Customization",
|
|
624
|
+
"description": "Settings > Profiles > Window > Title: show process name, TTY, dimensions, profile name, arguments, shell command, working directory, or custom escape sequence.",
|
|
625
|
+
"category": "customization",
|
|
626
|
+
"level": "pro",
|
|
627
|
+
"verified": "live"
|
|
628
|
+
}
|
|
629
|
+
],
|
|
630
|
+
"newMenuItemsFound": [
|
|
631
|
+
"View > Hide Marks",
|
|
632
|
+
"Window > Merge All Windows",
|
|
633
|
+
"Window > Move Tab to New Window",
|
|
634
|
+
"Edit > Writing Tools (macOS Sequoia)",
|
|
635
|
+
"Edit > AutoFill"
|
|
636
|
+
],
|
|
637
|
+
"mastery": "expert",
|
|
638
|
+
"masteryNotes": "100 shortcuts, 296 menu items. 40 features total (29 live-verified, 5 docs-confirmed, 1 removed). All 14 flows live-verified. Drag/drop/rectangular-selection require mouse so docs-only. Pointer settings tab removed in current macOS.",
|
|
639
|
+
"testedOn": "2026-03-24"
|
|
640
|
+
}
|