@arthony/keybook 0.4.0 → 0.5.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/dist/cli.js +11 -6
- package/package.json +20 -32
- package/seed/chrome.yaml +48 -0
- package/seed/cursor.yaml +31 -0
- package/seed/jetbrains.yaml +63 -0
- package/seed/notion.yaml +62 -0
- package/seed/safari.yaml +51 -0
- package/seed/vscode.yaml +24 -0
- package/seed/zed.yaml +45 -0
package/dist/cli.js
CHANGED
|
@@ -795,7 +795,7 @@ function AddEntryForm({ apps, existingTags, onSubmit, onComplete, onCancel, reso
|
|
|
795
795
|
const idx = TYPES.indexOf(draft.type);
|
|
796
796
|
return update({ type: TYPES[key.leftArrow ? (idx + TYPES.length - 1) % TYPES.length : (idx + 1) % TYPES.length] });
|
|
797
797
|
}
|
|
798
|
-
if (key.return) return
|
|
798
|
+
if (key.return) return setFocused(2);
|
|
799
799
|
return;
|
|
800
800
|
}
|
|
801
801
|
if (focused === 3 && draft.type === "recipe") {
|
|
@@ -818,6 +818,7 @@ function AddEntryForm({ apps, existingTags, onSubmit, onComplete, onCancel, reso
|
|
|
818
818
|
if (key.backspace || key.delete) return update({ [fieldKey]: draft[fieldKey].slice(0, -1) });
|
|
819
819
|
if (input && !key.ctrl && !key.meta) return update({ [fieldKey]: draft[fieldKey] + input });
|
|
820
820
|
});
|
|
821
|
+
const enterHint = focused <= 1 ? "next" : focused === 3 && draft.type === "recipe" ? "add step" : "review";
|
|
821
822
|
if (screen === "review") return /* @__PURE__ */ jsx(ReviewScreen, {
|
|
822
823
|
app: resolvedApp(review),
|
|
823
824
|
entry: draftToEntryInput(review),
|
|
@@ -842,12 +843,16 @@ function AddEntryForm({ apps, existingTags, onSubmit, onComplete, onCancel, reso
|
|
|
842
843
|
lockedApp
|
|
843
844
|
})
|
|
844
845
|
}),
|
|
845
|
-
/* @__PURE__ */
|
|
846
|
+
/* @__PURE__ */ jsxs(Box, {
|
|
846
847
|
marginTop: 1,
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
848
|
+
flexDirection: "column",
|
|
849
|
+
children: [hint ? /* @__PURE__ */ jsx(Text, {
|
|
850
|
+
color: "red",
|
|
851
|
+
children: hint
|
|
852
|
+
}) : null, /* @__PURE__ */ jsx(Text, {
|
|
853
|
+
color: "gray",
|
|
854
|
+
children: `⌃N next · ⌃P prev · ⏎ ${enterHint} · esc cancel`
|
|
855
|
+
})]
|
|
851
856
|
})
|
|
852
857
|
]
|
|
853
858
|
});
|
package/package.json
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arthony/keybook",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"publishConfig": {
|
|
5
|
-
"access": "public"
|
|
6
|
-
},
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"publishConfig": { "access": "public" },
|
|
7
5
|
"description": "A macOS TUI for searching keyboard shortcuts and recipes of your favorite apps",
|
|
8
6
|
"keywords": [
|
|
9
7
|
"cli",
|
|
@@ -17,27 +15,22 @@
|
|
|
17
15
|
"productivity"
|
|
18
16
|
],
|
|
19
17
|
"homepage": "https://github.com/Ariyapong/keybook#readme",
|
|
20
|
-
"repository": {
|
|
21
|
-
|
|
22
|
-
"url": "git+https://github.com/Ariyapong/keybook.git"
|
|
23
|
-
},
|
|
24
|
-
"bugs": {
|
|
25
|
-
"url": "https://github.com/Ariyapong/keybook/issues"
|
|
26
|
-
},
|
|
18
|
+
"repository": { "type": "git", "url": "git+https://github.com/Ariyapong/keybook.git" },
|
|
19
|
+
"bugs": { "url": "https://github.com/Ariyapong/keybook/issues" },
|
|
27
20
|
"author": "Ariyapong Wimolnoch",
|
|
28
21
|
"type": "module",
|
|
29
|
-
"bin": {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
22
|
+
"bin": { "keybook": "dist/cli.js", "kb": "dist/cli.js" },
|
|
23
|
+
"files": ["dist", "seed", "README.md", "LICENSE"],
|
|
24
|
+
"engines": { "node": ">=22" },
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsdown",
|
|
27
|
+
"dev": "tsx src/cli.ts",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:watch": "vitest",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"lint": "biome check .",
|
|
32
|
+
"format": "biome format --write .",
|
|
33
|
+
"prepublishOnly": "pnpm build"
|
|
41
34
|
},
|
|
42
35
|
"dependencies": {
|
|
43
36
|
"commander": "^12.1.0",
|
|
@@ -58,13 +51,8 @@
|
|
|
58
51
|
"vitest": "^2.1.0"
|
|
59
52
|
},
|
|
60
53
|
"license": "MIT",
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
"test": "vitest run",
|
|
65
|
-
"test:watch": "vitest",
|
|
66
|
-
"typecheck": "tsc --noEmit",
|
|
67
|
-
"lint": "biome check .",
|
|
68
|
-
"format": "biome format --write ."
|
|
54
|
+
"packageManager": "pnpm@10.25.0",
|
|
55
|
+
"pnpm": {
|
|
56
|
+
"onlyBuiltDependencies": ["@biomejs/biome", "esbuild"]
|
|
69
57
|
}
|
|
70
|
-
}
|
|
58
|
+
}
|
package/seed/chrome.yaml
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
app: Google Chrome
|
|
2
|
+
entries:
|
|
3
|
+
- action: Open a new tab
|
|
4
|
+
keys: "⌘T"
|
|
5
|
+
tags: [new tab]
|
|
6
|
+
- action: Reopen the last closed tab
|
|
7
|
+
keys: "⌘⇧T"
|
|
8
|
+
tags: [restore tab]
|
|
9
|
+
- action: Open a new window
|
|
10
|
+
keys: "⌘N"
|
|
11
|
+
- action: Open a new Incognito window
|
|
12
|
+
keys: "⌘⇧N"
|
|
13
|
+
tags: [incognito, private]
|
|
14
|
+
- action: Close the current tab
|
|
15
|
+
keys: "⌘W"
|
|
16
|
+
- action: Next / previous tab
|
|
17
|
+
keys: "⌃⇥, ⌃⇧⇥"
|
|
18
|
+
- action: Jump to tab 1–8
|
|
19
|
+
keys: "⌘1"
|
|
20
|
+
notes: ⌘1–⌘8 jump to that tab; ⌘9 jumps to the last tab.
|
|
21
|
+
- action: Focus the address bar
|
|
22
|
+
keys: "⌘L"
|
|
23
|
+
tags: [omnibox, url]
|
|
24
|
+
- action: Find on the page
|
|
25
|
+
keys: "⌘F"
|
|
26
|
+
- action: Reload / hard reload
|
|
27
|
+
keys: "⌘R, ⌘⇧R"
|
|
28
|
+
- action: Open Developer Tools
|
|
29
|
+
keys: "⌘⌥I"
|
|
30
|
+
tags: [devtools, inspect]
|
|
31
|
+
- action: View page source
|
|
32
|
+
keys: "⌘⌥U"
|
|
33
|
+
tags: [source]
|
|
34
|
+
- action: Open History
|
|
35
|
+
keys: "⌘Y"
|
|
36
|
+
- action: Open Downloads
|
|
37
|
+
keys: "⌘⇧J"
|
|
38
|
+
tags: [downloads]
|
|
39
|
+
- action: Bookmark this page
|
|
40
|
+
keys: "⌘D"
|
|
41
|
+
tags: [favorite]
|
|
42
|
+
- action: Zoom in / out / reset
|
|
43
|
+
keys: "⌘+, ⌘-, ⌘0"
|
|
44
|
+
- action: Back / forward
|
|
45
|
+
keys: "⌘[, ⌘]"
|
|
46
|
+
- action: Toggle full screen
|
|
47
|
+
keys: "⌃⌘F"
|
|
48
|
+
tags: [fullscreen]
|
package/seed/cursor.yaml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
app: Cursor
|
|
2
|
+
entries:
|
|
3
|
+
- action: Inherits the VS Code keymap
|
|
4
|
+
steps:
|
|
5
|
+
- Cursor is a VS Code fork — all standard editing/navigation shortcuts match VS Code
|
|
6
|
+
- See the "VS Code" entries in keybook for those
|
|
7
|
+
notes: This file lists only Cursor's AI-specific additions.
|
|
8
|
+
tags: [info, vscode]
|
|
9
|
+
- action: Inline edit (edit selection with AI)
|
|
10
|
+
keys: "⌘K"
|
|
11
|
+
tags: [ai, edit]
|
|
12
|
+
- action: Toggle the AI chat / sidepanel
|
|
13
|
+
keys: "⌘I, ⌘L"
|
|
14
|
+
notes: Both shortcuts toggle the same sidepanel. ⌘L also has a secondary role — when code is selected it adds the selection to a new chat.
|
|
15
|
+
tags: [ai, chat]
|
|
16
|
+
- action: Toggle Agent layout
|
|
17
|
+
keys: "⌘E"
|
|
18
|
+
tags: [ai, agent]
|
|
19
|
+
- action: Add the current selection to chat
|
|
20
|
+
keys: "⌘⇧L"
|
|
21
|
+
tags: [ai, chat, context]
|
|
22
|
+
- action: Accept an inline (Tab) completion
|
|
23
|
+
keys: "⇥"
|
|
24
|
+
tags: [ai, autocomplete]
|
|
25
|
+
- action: Accept / reject all AI-suggested changes
|
|
26
|
+
keys: "⌘⏎, ⌘⌫"
|
|
27
|
+
notes: ⌘⏎ accepts all suggested changes; ⌘⌫ rejects them.
|
|
28
|
+
tags: [ai, diff]
|
|
29
|
+
- action: Open a new AI chat
|
|
30
|
+
keys: "⌘N"
|
|
31
|
+
tags: [ai, chat]
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
app: JetBrains
|
|
2
|
+
entries:
|
|
3
|
+
- action: Search Everywhere
|
|
4
|
+
steps:
|
|
5
|
+
- Press ⇧ twice (double-Shift)
|
|
6
|
+
- Type a class, file, action, or setting name
|
|
7
|
+
notes: The universal search across the IDE. This is the default macOS keymap, shared by IntelliJ IDEA, WebStorm, PyCharm, etc.
|
|
8
|
+
tags: [search, navigate]
|
|
9
|
+
- action: Find Action
|
|
10
|
+
keys: "⌘⇧A"
|
|
11
|
+
tags: [action, command]
|
|
12
|
+
- action: Recent files
|
|
13
|
+
keys: "⌘E"
|
|
14
|
+
tags: [navigate, recent]
|
|
15
|
+
- action: Go to class
|
|
16
|
+
keys: "⌘O"
|
|
17
|
+
tags: [navigate, goto]
|
|
18
|
+
- action: Go to file
|
|
19
|
+
keys: "⌘⇧O"
|
|
20
|
+
tags: [navigate, goto]
|
|
21
|
+
- action: Go to symbol
|
|
22
|
+
keys: "⌥⌘O"
|
|
23
|
+
tags: [navigate, goto]
|
|
24
|
+
- action: Go to declaration / definition
|
|
25
|
+
keys: "⌘B"
|
|
26
|
+
tags: [navigate]
|
|
27
|
+
- action: Find usages
|
|
28
|
+
keys: "⌥F7"
|
|
29
|
+
tags: [search, references]
|
|
30
|
+
- action: Rename (refactor)
|
|
31
|
+
keys: "⇧F6"
|
|
32
|
+
tags: [refactor]
|
|
33
|
+
- action: Reformat code
|
|
34
|
+
keys: "⌥⌘L"
|
|
35
|
+
tags: [format]
|
|
36
|
+
- action: Show intention actions / quick-fix
|
|
37
|
+
keys: "⌥⏎"
|
|
38
|
+
tags: [quickfix, lightbulb]
|
|
39
|
+
- action: Run
|
|
40
|
+
keys: "⌃R"
|
|
41
|
+
tags: [run]
|
|
42
|
+
- action: Debug
|
|
43
|
+
keys: "⌃D"
|
|
44
|
+
tags: [debug]
|
|
45
|
+
- action: Toggle line comment
|
|
46
|
+
keys: "⌘/"
|
|
47
|
+
tags: [comment]
|
|
48
|
+
- action: Duplicate the current line / selection
|
|
49
|
+
keys: "⌘D"
|
|
50
|
+
tags: [edit]
|
|
51
|
+
- action: Delete the current line
|
|
52
|
+
keys: "⌘⌫"
|
|
53
|
+
tags: [delete line]
|
|
54
|
+
- action: Generate code
|
|
55
|
+
keys: "⌘N"
|
|
56
|
+
notes: Constructors, getters/setters, overrides, etc.
|
|
57
|
+
tags: [generate]
|
|
58
|
+
- action: Extend / shrink selection
|
|
59
|
+
keys: "⌥↑, ⌥↓"
|
|
60
|
+
tags: [select]
|
|
61
|
+
- action: Code completion
|
|
62
|
+
keys: "⌃␣"
|
|
63
|
+
tags: [autocomplete]
|
package/seed/notion.yaml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
app: Notion
|
|
2
|
+
entries:
|
|
3
|
+
- action: Open Quick Find / search
|
|
4
|
+
keys: "⌘P, ⌘K"
|
|
5
|
+
tags: [search, find, navigate]
|
|
6
|
+
- action: Create a new page
|
|
7
|
+
keys: "⌘N"
|
|
8
|
+
tags: [new page]
|
|
9
|
+
- action: Open a new tab
|
|
10
|
+
keys: "⌘T"
|
|
11
|
+
tags: [tab]
|
|
12
|
+
- action: Open a new Notion window
|
|
13
|
+
keys: "⌘⇧N"
|
|
14
|
+
tags: [window]
|
|
15
|
+
- action: Reopen last closed tab
|
|
16
|
+
keys: "⌘⇧T"
|
|
17
|
+
tags: [tab, restore]
|
|
18
|
+
- action: Close the current tab
|
|
19
|
+
keys: "⌘W"
|
|
20
|
+
tags: [tab]
|
|
21
|
+
- action: Copy link to the current page
|
|
22
|
+
keys: "⌘L"
|
|
23
|
+
tags: [link, share]
|
|
24
|
+
- action: Navigate back / forward
|
|
25
|
+
keys: "⌘[, ⌘]"
|
|
26
|
+
tags: [navigate, history]
|
|
27
|
+
- action: Toggle dark / light mode
|
|
28
|
+
keys: "⌘⇧L"
|
|
29
|
+
tags: [appearance, theme]
|
|
30
|
+
- action: Bold selected text
|
|
31
|
+
keys: "⌘B"
|
|
32
|
+
tags: [format, text]
|
|
33
|
+
- action: Italicize selected text
|
|
34
|
+
keys: "⌘I"
|
|
35
|
+
tags: [format, text]
|
|
36
|
+
- action: Underline selected text
|
|
37
|
+
keys: "⌘U"
|
|
38
|
+
tags: [format, text]
|
|
39
|
+
- action: Strikethrough selected text
|
|
40
|
+
keys: "⌘⇧S"
|
|
41
|
+
tags: [format, text]
|
|
42
|
+
- action: Inline code for selected text
|
|
43
|
+
keys: "⌘E"
|
|
44
|
+
tags: [format, code]
|
|
45
|
+
- action: Add link to selected text
|
|
46
|
+
keys: "⌘K"
|
|
47
|
+
tags: [link]
|
|
48
|
+
- action: Indent / un-indent a block
|
|
49
|
+
keys: "⇥, ⇧⇥"
|
|
50
|
+
tags: [indent, nest, block]
|
|
51
|
+
- action: Duplicate selected blocks
|
|
52
|
+
keys: "⌘D"
|
|
53
|
+
tags: [block, duplicate]
|
|
54
|
+
- action: Add a comment
|
|
55
|
+
keys: "⌘⇧M"
|
|
56
|
+
tags: [comment]
|
|
57
|
+
- action: Insert a block (slash menu)
|
|
58
|
+
steps:
|
|
59
|
+
- Type / at the start of a line
|
|
60
|
+
- Pick a block type (heading, to-do, toggle, code, …)
|
|
61
|
+
notes: The slash menu is the main way to insert and transform blocks.
|
|
62
|
+
tags: [block, insert, tip]
|
package/seed/safari.yaml
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
app: Safari
|
|
2
|
+
entries:
|
|
3
|
+
- action: Open a new tab
|
|
4
|
+
keys: "⌘T"
|
|
5
|
+
tags: [new tab]
|
|
6
|
+
- action: Open a new window
|
|
7
|
+
keys: "⌘N"
|
|
8
|
+
- action: Open a new private window
|
|
9
|
+
keys: "⌘⇧N"
|
|
10
|
+
tags: [private, incognito]
|
|
11
|
+
- action: Reopen the last closed tab
|
|
12
|
+
keys: "⌘⇧T"
|
|
13
|
+
tags: [restore tab]
|
|
14
|
+
- action: Close the current tab
|
|
15
|
+
keys: "⌘W"
|
|
16
|
+
- action: Next / previous tab
|
|
17
|
+
keys: "⌃⇥, ⌃⇧⇥"
|
|
18
|
+
- action: Jump to tab 1–8
|
|
19
|
+
keys: "⌘1"
|
|
20
|
+
notes: ⌘1–⌘8 select the first eight tabs; ⌘9 selects the last tab.
|
|
21
|
+
- action: Focus the Smart Search field (address bar)
|
|
22
|
+
keys: "⌘L"
|
|
23
|
+
tags: [url, search]
|
|
24
|
+
- action: Find on the page
|
|
25
|
+
keys: "⌘F"
|
|
26
|
+
- action: Reload / reload from origin
|
|
27
|
+
keys: "⌘R, ⌥⌘R"
|
|
28
|
+
notes: ⌥⌘R reloads ignoring the cache (from origin).
|
|
29
|
+
- action: Show / hide the sidebar
|
|
30
|
+
keys: "⌘⇧L"
|
|
31
|
+
tags: [sidebar, bookmarks]
|
|
32
|
+
- action: Show Reader
|
|
33
|
+
keys: "⌘⇧R"
|
|
34
|
+
tags: [reader]
|
|
35
|
+
- action: Add a bookmark for this page
|
|
36
|
+
keys: "⌘D"
|
|
37
|
+
tags: [favorite]
|
|
38
|
+
- action: Back / forward
|
|
39
|
+
keys: "⌘[, ⌘]"
|
|
40
|
+
- action: Zoom in / out / reset
|
|
41
|
+
keys: "⌘+, ⌘-, ⌘0"
|
|
42
|
+
- action: Show the tab overview
|
|
43
|
+
keys: "⌘⇧\\"
|
|
44
|
+
tags: [tabs, overview]
|
|
45
|
+
- action: Open the Web Inspector
|
|
46
|
+
keys: "⌥⌘I"
|
|
47
|
+
notes: Requires the Develop menu — enable it in Settings → Advanced → "Show features for web developers".
|
|
48
|
+
tags: [devtools, inspect]
|
|
49
|
+
- action: Toggle full screen
|
|
50
|
+
keys: "⌃⌘F"
|
|
51
|
+
tags: [fullscreen]
|
package/seed/vscode.yaml
CHANGED
|
@@ -63,3 +63,27 @@ entries:
|
|
|
63
63
|
- action: Open Keyboard Shortcuts
|
|
64
64
|
keys: "⌘K, ⌘S"
|
|
65
65
|
tags: [keybindings, shortcuts]
|
|
66
|
+
- action: Go to Symbol in the file
|
|
67
|
+
keys: "⌘⇧O"
|
|
68
|
+
tags: [navigate, symbol]
|
|
69
|
+
- action: Go to Symbol in the workspace
|
|
70
|
+
keys: "⌘T"
|
|
71
|
+
tags: [navigate, symbol]
|
|
72
|
+
- action: Find All References
|
|
73
|
+
keys: "⇧F12"
|
|
74
|
+
tags: [references]
|
|
75
|
+
- action: Toggle the panel
|
|
76
|
+
keys: "⌘J"
|
|
77
|
+
tags: [panel]
|
|
78
|
+
- action: Toggle word wrap
|
|
79
|
+
keys: "⌥Z"
|
|
80
|
+
tags: [wrap]
|
|
81
|
+
- action: Show Source Control
|
|
82
|
+
keys: "⌃⇧G"
|
|
83
|
+
tags: [git, scm]
|
|
84
|
+
- action: Show the Problems panel
|
|
85
|
+
keys: "⌘⇧M"
|
|
86
|
+
tags: [errors, diagnostics]
|
|
87
|
+
- action: Reopen the last closed editor
|
|
88
|
+
keys: "⌘⇧T"
|
|
89
|
+
tags: [restore]
|
package/seed/zed.yaml
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
app: Zed
|
|
2
|
+
entries:
|
|
3
|
+
- action: Open the command palette
|
|
4
|
+
keys: "⌘⇧P"
|
|
5
|
+
tags: [commands, palette]
|
|
6
|
+
- action: Open a file by name (file finder)
|
|
7
|
+
keys: "⌘P"
|
|
8
|
+
tags: [open file, goto]
|
|
9
|
+
- action: Project-wide search
|
|
10
|
+
keys: "⌘⇧F"
|
|
11
|
+
tags: [search, find]
|
|
12
|
+
- action: Find in buffer / replace in buffer
|
|
13
|
+
keys: "⌘F, ⌘⌥F"
|
|
14
|
+
notes: ⌘F opens find; ⌘⌥F opens find-and-replace.
|
|
15
|
+
tags: [find, replace]
|
|
16
|
+
- action: Add a cursor above / below
|
|
17
|
+
keys: "⌘⌥↑, ⌘⌥↓"
|
|
18
|
+
tags: [multi cursor]
|
|
19
|
+
- action: Select the next occurrence
|
|
20
|
+
keys: "⌘D"
|
|
21
|
+
tags: [multi cursor, select]
|
|
22
|
+
- action: Go to definition
|
|
23
|
+
keys: "F12"
|
|
24
|
+
tags: [navigate]
|
|
25
|
+
- action: Rename symbol
|
|
26
|
+
keys: "F2"
|
|
27
|
+
tags: [refactor]
|
|
28
|
+
- action: Toggle the integrated terminal panel
|
|
29
|
+
keys: "⌃`"
|
|
30
|
+
tags: [terminal]
|
|
31
|
+
- action: Toggle the project panel
|
|
32
|
+
keys: "⌘⇧E"
|
|
33
|
+
tags: [explorer, files]
|
|
34
|
+
- action: Go to symbol in the buffer (outline)
|
|
35
|
+
keys: "⌘⇧O"
|
|
36
|
+
tags: [navigate, outline]
|
|
37
|
+
- action: Toggle line comment
|
|
38
|
+
keys: "⌘/"
|
|
39
|
+
tags: [comment]
|
|
40
|
+
- action: Format the buffer
|
|
41
|
+
keys: "⌘⇧I"
|
|
42
|
+
tags: [format]
|
|
43
|
+
- action: Toggle the AI agent panel
|
|
44
|
+
keys: "⌘?"
|
|
45
|
+
tags: [ai, assistant]
|