diff --git a/packages/www/content/docs/(Configure)/skills.mdx b/packages/www/content/docs/(Configure)/skills.mdx index d3271b2fc8..7446cf958e 100644 --- a/packages/www/content/docs/(Configure)/skills.mdx +++ b/packages/www/content/docs/(Configure)/skills.mdx @@ -119,7 +119,7 @@ V2 reads these fields: | `name` | Display name; defaults to the path-derived ID | | `description` | Summary used for model-facing discovery | | `slash` | Set to `false` to hide the skill from interactive command catalogs | -| `metadata.opencode/slash` | Boolean or `"true"`/`"false"`; overrides `slash` | +| `metadata.opencode/slash` | Boolean or `"true"`/`"false"`; overrides `slash` | | `metadata.opencode/autoinvoke` | Set to `false` to omit the skill from model-facing discovery | Frontmatter, `name`, and `description` are optional at runtime. However, a diff --git a/packages/www/content/docs/cli/(Configure)/keybinds.mdx b/packages/www/content/docs/cli/(Configure)/keybinds.mdx index 42ddbf04b8..e8934ce59f 100644 --- a/packages/www/content/docs/cli/(Configure)/keybinds.mdx +++ b/packages/www/content/docs/cli/(Configure)/keybinds.mdx @@ -80,279 +80,279 @@ Unknown command IDs are rejected. ## Application -| ID | Default | Description | -| --- | --- | --- | -| `leader` | `ctrl+x` | Leader key for keybind combinations | -| `app.exit` | `ctrl+c,ctrl+d,q` | Exit the application | -| `app.debug` | `none` | Toggle debug panel | -| `app.console` | `none` | Toggle console | -| `app.scrap` | `none` | Open scrap screen | -| `app.toggle.animations` | `none` | Toggle animations | -| `app.toggle.file_context` | `none` | Toggle file context | -| `app.toggle.diffwrap` | `none` | Toggle diff wrapping | -| `app.toggle.paste_summary` | `none` | Toggle paste summary | -| `command.palette.show` | `ctrl+p` | List available commands | -| `help.show` | `none` | Open help dialog | -| `docs.open` | `none` | Open documentation | -| `opencode.settings` | `none` | Open settings | -| `server.pair` | `none` | Pair device | -| `service.restart` | `none` | Restart service | -| `permission.mode` | `none` | Toggle auto-approve permissions | +| ID | Default | Description | +| -------------------------- | ------------------------- | ----------------------------------- | +| `leader` | `ctrl+x` | Leader key for keybind combinations | +| `app.exit` | `ctrl+c,ctrl+d,q` | Exit the application | +| `app.debug` | `none` | Toggle debug panel | +| `app.console` | `none` | Toggle console | +| `app.scrap` | `none` | Open scrap screen | +| `app.toggle.animations` | `none` | Toggle animations | +| `app.toggle.file_context` | `none` | Toggle file context | +| `app.toggle.diffwrap` | `none` | Toggle diff wrapping | +| `app.toggle.paste_summary` | `none` | Toggle paste summary | +| `command.palette.show` | `ctrl+p` | List available commands | +| `help.show` | `none` | Open help dialog | +| `docs.open` | `none` | Open documentation | +| `opencode.settings` | `none` | Open settings | +| `server.pair` | `none` | Pair device | +| `service.restart` | `none` | Restart service | +| `permission.mode` | `none` | Toggle auto-approve permissions | ## Diff Viewer -| ID | Default | Description | -| --- | --- | --- | -| `diff.open` | `none` | Open diff viewer | -| `diff.close` | `escape,q` | Close diff viewer | -| `diff.down` | `j,down` | Move diff viewer down | -| `diff.up` | `k,up` | Move diff viewer up | -| `diff.page.down` | `pagedown,ctrl+f` | Page diff viewer down | -| `diff.page.up` | `pageup,ctrl+b` | Page diff viewer up | -| `diff.toggle` | `enter,space` | Toggle diff viewer item | -| `diff.expand` | `right` | Expand diff viewer item | -| `diff.expand_all` | `E` | Expand all diff viewer folders | -| `diff.collapse` | `left` | Collapse diff viewer item | -| `diff.switch_focus` | `tab` | Switch diff viewer focus | -| `diff.next_hunk` | `]` | Jump to next diff hunk | -| `diff.previous_hunk` | `[` | Jump to previous diff hunk | -| `diff.next_file` | `n` | Jump to next diff file | -| `diff.previous_file` | `p` | Jump to previous diff file | -| `diff.toggle_file_tree` | `b` | Toggle diff viewer file tree | -| `diff.single_patch` | `s` | Toggle single patch view | -| `diff.switch_source` | `d` | Switch diff viewer source | -| `diff.toggle_view` | `v` | Toggle diff viewer split or unified view | -| `diff.mark_reviewed` | `m` | Toggle selected diff file reviewed | -| `diff.help` | `?` | Show more diff viewer shortcuts | +| ID | Default | Description | +| ----------------------- | ----------------- | ---------------------------------------- | +| `diff.open` | `none` | Open diff viewer | +| `diff.close` | `escape,q` | Close diff viewer | +| `diff.down` | `j,down` | Move diff viewer down | +| `diff.up` | `k,up` | Move diff viewer up | +| `diff.page.down` | `pagedown,ctrl+f` | Page diff viewer down | +| `diff.page.up` | `pageup,ctrl+b` | Page diff viewer up | +| `diff.toggle` | `enter,space` | Toggle diff viewer item | +| `diff.expand` | `right` | Expand diff viewer item | +| `diff.expand_all` | `E` | Expand all diff viewer folders | +| `diff.collapse` | `left` | Collapse diff viewer item | +| `diff.switch_focus` | `tab` | Switch diff viewer focus | +| `diff.next_hunk` | `]` | Jump to next diff hunk | +| `diff.previous_hunk` | `[` | Jump to previous diff hunk | +| `diff.next_file` | `n` | Jump to next diff file | +| `diff.previous_file` | `p` | Jump to previous diff file | +| `diff.toggle_file_tree` | `b` | Toggle diff viewer file tree | +| `diff.single_patch` | `s` | Toggle single patch view | +| `diff.switch_source` | `d` | Switch diff viewer source | +| `diff.toggle_view` | `v` | Toggle diff viewer split or unified view | +| `diff.mark_reviewed` | `m` | Toggle selected diff file reviewed | +| `diff.help` | `?` | Show more diff viewer shortcuts | ## Appearance And Navigation -| ID | Default | Description | -| --- | --- | --- | -| `prompt.editor` | `e` | Open external editor | -| `theme.switch` | `t` | List available themes | -| `theme.switch_mode` | `none` | Switch between light and dark theme mode | -| `theme.mode.lock` | `none` | Lock or unlock theme mode | -| `session.sidebar.toggle` | `b` | Toggle sidebar | -| `session.toggle.scrollbar` | `none` | Toggle session scrollbar | -| `opencode.status` | `s` | View status | -| `opencode.debug` | `none` | View debug info | +| ID | Default | Description | +| -------------------------- | ----------- | ---------------------------------------- | +| `prompt.editor` | `e` | Open external editor | +| `theme.switch` | `t` | List available themes | +| `theme.switch_mode` | `none` | Switch between light and dark theme mode | +| `theme.mode.lock` | `none` | Lock or unlock theme mode | +| `session.sidebar.toggle` | `b` | Toggle sidebar | +| `session.toggle.scrollbar` | `none` | Toggle session scrollbar | +| `opencode.status` | `s` | View status | +| `opencode.debug` | `none` | View debug info | ## Sessions -| ID | Default | Description | -| --- | --- | --- | -| `session.export` | `x` | Export session to editor | -| `session.copy` | `none` | Copy session transcript | -| `session.move` | `none` | Move session | -| `session.new` | `n` | Create a new session | -| `session.list` | `l` | List all sessions | -| `open.menu` | `ctrl+o` | Open recent sessions and projects | -| `session.tab.next` | `ctrl+tab,alt+down` | Switch to next open session tab | -| `session.tab.previous` | `ctrl+shift+tab,alt+up` | Switch to previous open session tab | -| `session.tab.history.back` | `none` | Go back in session tab history | -| `session.tab.history.forward` | `ctrl+i` | Go forward in session tab history | -| `session.tab.next_unread` | `alt+shift+down` | Switch to next unread session tab | -| `session.tab.previous_unread` | `alt+shift+up` | Switch to previous unread session tab | -| `session.tab.close` | `w` | Close current session tab | -| `session.tab.reopen` | `ctrl+shift+t` | Reopen last closed session tab | -| `session.timeline` | `g` | Show session timeline | -| `session.fork` | `none` | Fork session from message | -| `session.rename` | `ctrl+r` | Rename session | -| `session.delete` | `ctrl+d` | Delete session | -| `session.share` | `none` | Share current session | -| `session.unshare` | `none` | Unshare current session | -| `session.interrupt` | `escape` | Interrupt current session | -| `session.background` | `ctrl+b` | Background blocking session tools | -| `session.compact` | `c` | Compact the session | -| `session.cd` | `none` | Change working directory | -| `session.queued_prompts` | `q` | Manage queued prompts | -| `queued_prompt.delete` | `ctrl+d` | Delete queued prompt | -| `session.toggle.exploration_grouping` | `none` | Toggle related tool call grouping | -| `session.child.first` | `down` | Toggle subagent picker | -| `session.child.next` | `right` | Go to next child session | -| `session.child.previous` | `left` | Go to previous child session | -| `session.parent` | `up` | Go to parent session | -| `session.pin.toggle` | `ctrl+f` | Pin or unpin session in the session list | -| `session.quick_switch.1` | `1` | Switch to session in quick slot 1 | -| `session.quick_switch.2` | `2` | Switch to session in quick slot 2 | -| `session.quick_switch.3` | `3` | Switch to session in quick slot 3 | -| `session.quick_switch.4` | `4` | Switch to session in quick slot 4 | -| `session.quick_switch.5` | `5` | Switch to session in quick slot 5 | -| `session.quick_switch.6` | `6` | Switch to session in quick slot 6 | -| `session.quick_switch.7` | `7` | Switch to session in quick slot 7 | -| `session.quick_switch.8` | `8` | Switch to session in quick slot 8 | -| `session.quick_switch.9` | `9` | Switch to session in quick slot 9 | -| `session.tab.select.1` | `1,ctrl+1` | Switch to session tab 1 | -| `session.tab.select.2` | `2,ctrl+2` | Switch to session tab 2 | -| `session.tab.select.3` | `3,ctrl+3` | Switch to session tab 3 | -| `session.tab.select.4` | `4,ctrl+4` | Switch to session tab 4 | -| `session.tab.select.5` | `5,ctrl+5` | Switch to session tab 5 | -| `session.tab.select.6` | `6,ctrl+6` | Switch to session tab 6 | -| `session.tab.select.7` | `7,ctrl+7` | Switch to session tab 7 | -| `session.tab.select.8` | `8,ctrl+8` | Switch to session tab 8 | -| `session.tab.select.9` | `9,ctrl+9` | Switch to session tab 9 | -| `session.tab.select.10` | `0,ctrl+0` | Switch to session tab 10 | +| ID | Default | Description | +| ------------------------------------- | ----------------------- | ---------------------------------------- | +| `session.export` | `x` | Export session to editor | +| `session.copy` | `none` | Copy session transcript | +| `session.move` | `none` | Move session | +| `session.new` | `n` | Create a new session | +| `session.list` | `l` | List all sessions | +| `open.menu` | `ctrl+o` | Open recent sessions and projects | +| `session.tab.next` | `ctrl+tab,alt+down` | Switch to next open session tab | +| `session.tab.previous` | `ctrl+shift+tab,alt+up` | Switch to previous open session tab | +| `session.tab.history.back` | `none` | Go back in session tab history | +| `session.tab.history.forward` | `ctrl+i` | Go forward in session tab history | +| `session.tab.next_unread` | `alt+shift+down` | Switch to next unread session tab | +| `session.tab.previous_unread` | `alt+shift+up` | Switch to previous unread session tab | +| `session.tab.close` | `w` | Close current session tab | +| `session.tab.reopen` | `ctrl+shift+t` | Reopen last closed session tab | +| `session.timeline` | `g` | Show session timeline | +| `session.fork` | `none` | Fork session from message | +| `session.rename` | `ctrl+r` | Rename session | +| `session.delete` | `ctrl+d` | Delete session | +| `session.share` | `none` | Share current session | +| `session.unshare` | `none` | Unshare current session | +| `session.interrupt` | `escape` | Interrupt current session | +| `session.background` | `ctrl+b` | Background blocking session tools | +| `session.compact` | `c` | Compact the session | +| `session.cd` | `none` | Change working directory | +| `session.queued_prompts` | `q` | Manage queued prompts | +| `queued_prompt.delete` | `ctrl+d` | Delete queued prompt | +| `session.toggle.exploration_grouping` | `none` | Toggle related tool call grouping | +| `session.child.first` | `down` | Toggle subagent picker | +| `session.child.next` | `right` | Go to next child session | +| `session.child.previous` | `left` | Go to previous child session | +| `session.parent` | `up` | Go to parent session | +| `session.pin.toggle` | `ctrl+f` | Pin or unpin session in the session list | +| `session.quick_switch.1` | `1` | Switch to session in quick slot 1 | +| `session.quick_switch.2` | `2` | Switch to session in quick slot 2 | +| `session.quick_switch.3` | `3` | Switch to session in quick slot 3 | +| `session.quick_switch.4` | `4` | Switch to session in quick slot 4 | +| `session.quick_switch.5` | `5` | Switch to session in quick slot 5 | +| `session.quick_switch.6` | `6` | Switch to session in quick slot 6 | +| `session.quick_switch.7` | `7` | Switch to session in quick slot 7 | +| `session.quick_switch.8` | `8` | Switch to session in quick slot 8 | +| `session.quick_switch.9` | `9` | Switch to session in quick slot 9 | +| `session.tab.select.1` | `1,ctrl+1` | Switch to session tab 1 | +| `session.tab.select.2` | `2,ctrl+2` | Switch to session tab 2 | +| `session.tab.select.3` | `3,ctrl+3` | Switch to session tab 3 | +| `session.tab.select.4` | `4,ctrl+4` | Switch to session tab 4 | +| `session.tab.select.5` | `5,ctrl+5` | Switch to session tab 5 | +| `session.tab.select.6` | `6,ctrl+6` | Switch to session tab 6 | +| `session.tab.select.7` | `7,ctrl+7` | Switch to session tab 7 | +| `session.tab.select.8` | `8,ctrl+8` | Switch to session tab 8 | +| `session.tab.select.9` | `9,ctrl+9` | Switch to session tab 9 | +| `session.tab.select.10` | `0,ctrl+0` | Switch to session tab 10 | ## Models And Agents -| ID | Default | Description | -| --- | --- | --- | -| `stash.delete` | `ctrl+d` | Delete stash entry | -| `model.dialog.provider` | `ctrl+a` | Open provider list from model dialog | -| `model.dialog.favorite` | `ctrl+f` | Toggle model favorite status | -| `model.list` | `m` | List available models | -| `model.cycle_recent` | `f2` | Next recently used model | -| `model.cycle_recent_reverse` | `shift+f2` | Previous recently used model | -| `model.cycle_favorite` | `none` | Next favorite model | -| `model.cycle_favorite_reverse` | `none` | Previous favorite model | -| `mcp.list` | `none` | List MCP servers | -| `provider.connect` | `none` | Connect integration | -| `agent.list` | `a` | List agents | -| `agent.cycle` | `shift+tab` | Next agent | -| `agent.cycle.reverse` | `none` | Previous agent | -| `variant.cycle` | `ctrl+t` | Cycle model variants | -| `variant.list` | `none` | List model variants | +| ID | Default | Description | +| ------------------------------ | ----------- | ------------------------------------ | +| `stash.delete` | `ctrl+d` | Delete stash entry | +| `model.dialog.provider` | `ctrl+a` | Open provider list from model dialog | +| `model.dialog.favorite` | `ctrl+f` | Toggle model favorite status | +| `model.list` | `m` | List available models | +| `model.cycle_recent` | `f2` | Next recently used model | +| `model.cycle_recent_reverse` | `shift+f2` | Previous recently used model | +| `model.cycle_favorite` | `none` | Next favorite model | +| `model.cycle_favorite_reverse` | `none` | Previous favorite model | +| `mcp.list` | `none` | List MCP servers | +| `provider.connect` | `none` | Connect integration | +| `agent.list` | `a` | List agents | +| `agent.cycle` | `shift+tab` | Next agent | +| `agent.cycle.reverse` | `none` | Previous agent | +| `variant.cycle` | `ctrl+t` | Cycle model variants | +| `variant.list` | `none` | List model variants | ## Session Navigation -| ID | Default | Description | -| --- | --- | --- | -| `session.page.up` | `pageup,ctrl+alt+b` | Scroll messages up by one page | -| `session.page.down` | `pagedown,ctrl+alt+f` | Scroll messages down by one page | -| `session.line.up` | `ctrl+alt+y` | Scroll messages up by one line | -| `session.line.down` | `ctrl+alt+e` | Scroll messages down by one line | -| `session.half.page.up` | `ctrl+alt+u` | Scroll messages up by half page | -| `session.half.page.down` | `ctrl+alt+d` | Scroll messages down by half page | -| `session.first` | `ctrl+g,home,alt+home` | Navigate to first message | -| `session.last` | `ctrl+alt+g,end` | Navigate to last message | -| `session.message.next` | `none` | Navigate to next message | -| `session.message.previous` | `none` | Navigate to previous message | -| `session.message.user.next` | `none` | Navigate to next user message | -| `session.message.user.previous` | `none` | Navigate to previous user message | -| `session.messages_last_user` | `alt+end` | Navigate to last user message | -| `messages.copy` | `y` | Copy message | -| `session.undo` | `u` | Undo message | -| `session.redo` | `r` | Redo message | -| `session.toggle.thinking` | `none` | Toggle thinking blocks visibility | +| ID | Default | Description | +| ------------------------------- | ---------------------- | --------------------------------- | +| `session.page.up` | `pageup,ctrl+alt+b` | Scroll messages up by one page | +| `session.page.down` | `pagedown,ctrl+alt+f` | Scroll messages down by one page | +| `session.line.up` | `ctrl+alt+y` | Scroll messages up by one line | +| `session.line.down` | `ctrl+alt+e` | Scroll messages down by one line | +| `session.half.page.up` | `ctrl+alt+u` | Scroll messages up by half page | +| `session.half.page.down` | `ctrl+alt+d` | Scroll messages down by half page | +| `session.first` | `ctrl+g,home,alt+home` | Navigate to first message | +| `session.last` | `ctrl+alt+g,end` | Navigate to last message | +| `session.message.next` | `none` | Navigate to next message | +| `session.message.previous` | `none` | Navigate to previous message | +| `session.message.user.next` | `none` | Navigate to next user message | +| `session.message.user.previous` | `none` | Navigate to previous user message | +| `session.messages_last_user` | `alt+end` | Navigate to last user message | +| `messages.copy` | `y` | Copy message | +| `session.undo` | `u` | Undo message | +| `session.redo` | `r` | Redo message | +| `session.toggle.thinking` | `none` | Toggle thinking blocks visibility | ## Prompt Commands -| ID | Default | Description | -| --- | --- | --- | -| `prompt.submit` | `none` | Submit prompt | -| `prompt.queue` | `alt+return` | Queue prompt | -| `prompt.editor_context.clear` | `none` | Clear editor context | -| `prompt.images.view` | `i` | View image attachments | -| `prompt.skills` | `none` | Open skill selector | -| `prompt.stash` | `none` | Stash prompt | -| `prompt.stash.pop` | `none` | Pop stashed prompt | -| `prompt.stash.list` | `none` | List stashed prompts | +| ID | Default | Description | +| ----------------------------- | ------------ | ---------------------- | +| `prompt.submit` | `none` | Submit prompt | +| `prompt.queue` | `alt+return` | Queue prompt | +| `prompt.editor_context.clear` | `none` | Clear editor context | +| `prompt.images.view` | `i` | View image attachments | +| `prompt.skills` | `none` | Open skill selector | +| `prompt.stash` | `none` | Stash prompt | +| `prompt.stash.pop` | `none` | Pop stashed prompt | +| `prompt.stash.list` | `none` | List stashed prompts | ## Input Editing -| ID | Default | Description | -| --- | --- | --- | -| `prompt.clear` | `ctrl+c` | Clear input field | -| `prompt.paste` | `{"key":"ctrl+v","preventDefault":false}` (`ctrl+v`; `preventDefault: false`) | Paste from clipboard | -| `input.submit` | `return` | Submit input | -| `input.newline` | `shift+return,ctrl+return,ctrl+j` | Insert newline in input | -| `input.move.left` | `left,ctrl+b` | Move cursor left in input | -| `input.move.right` | `right,ctrl+f` | Move cursor right in input | -| `input.move.up` | `up` | Move cursor up in input | -| `input.move.down` | `down` | Move cursor down in input | -| `input.select.left` | `shift+left` | Select left in input | -| `input.select.right` | `shift+right` | Select right in input | -| `input.select.up` | `shift+up` | Select up in input | -| `input.select.down` | `shift+down` | Select down in input | -| `input.line.home` | `ctrl+a` | Move to start of line in input | -| `input.line.end` | `ctrl+e` | Move to end of line in input | -| `input.select.line.home` | `ctrl+shift+a` | Select to start of line in input | -| `input.select.line.end` | `ctrl+shift+e` | Select to end of line in input | -| `input.visual.line.home` | `alt+a` | Move to start of visual line in input | -| `input.visual.line.end` | `alt+e` | Move to end of visual line in input | -| `input.select.visual.line.home` | `alt+shift+a` | Select to start of visual line in input | -| `input.select.visual.line.end` | `alt+shift+e` | Select to end of visual line in input | -| `input.buffer.home` | `none` | Move to start of buffer in input | -| `input.buffer.end` | `none` | Move to end of buffer in input | -| `input.select.buffer.home` | `shift+home` | Select to start of buffer in input | -| `input.select.buffer.end` | `shift+end` | Select to end of buffer in input | -| `input.delete.line` | `ctrl+shift+d` | Delete line in input | -| `input.delete.to.line.end` | `ctrl+k` | Delete to end of line in input | -| `input.delete.to.line.start` | `ctrl+u` | Delete to start of line in input | -| `input.backspace` | `backspace,shift+backspace` | Backspace in input | -| `input.delete` | `ctrl+d,delete,shift+delete` | Delete character in input | -| `input.undo` | `ctrl+-,super+z` | Undo in input | -| `input.redo` | `ctrl+.,super+shift+z` | Redo in input | -| `input.word.forward` | `alt+f,alt+right,ctrl+right` | Move word forward in input | -| `input.word.backward` | `alt+b,alt+left,ctrl+left` | Move word backward in input | -| `input.select.word.forward` | `alt+shift+f,alt+shift+right` | Select word forward in input | -| `input.select.word.backward` | `alt+shift+b,alt+shift+left` | Select word backward in input | -| `input.delete.word.forward` | `alt+d,alt+delete,ctrl+delete` | Delete word forward in input | -| `input.delete.word.backward` | `ctrl+w,ctrl+backspace,alt+backspace` | Delete word backward in input | -| `input.select.all` | `super+a` | Select all in input | -| `prompt.history.previous` | `up` | Previous history item | -| `prompt.history.next` | `down` | Next history item | +| ID | Default | Description | +| ------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------- | +| `prompt.clear` | `ctrl+c` | Clear input field | +| `prompt.paste` | `{"key":"ctrl+v","preventDefault":false}` (`ctrl+v`; `preventDefault: false`) | Paste from clipboard | +| `input.submit` | `return` | Submit input | +| `input.newline` | `shift+return,ctrl+return,ctrl+j` | Insert newline in input | +| `input.move.left` | `left,ctrl+b` | Move cursor left in input | +| `input.move.right` | `right,ctrl+f` | Move cursor right in input | +| `input.move.up` | `up` | Move cursor up in input | +| `input.move.down` | `down` | Move cursor down in input | +| `input.select.left` | `shift+left` | Select left in input | +| `input.select.right` | `shift+right` | Select right in input | +| `input.select.up` | `shift+up` | Select up in input | +| `input.select.down` | `shift+down` | Select down in input | +| `input.line.home` | `ctrl+a` | Move to start of line in input | +| `input.line.end` | `ctrl+e` | Move to end of line in input | +| `input.select.line.home` | `ctrl+shift+a` | Select to start of line in input | +| `input.select.line.end` | `ctrl+shift+e` | Select to end of line in input | +| `input.visual.line.home` | `alt+a` | Move to start of visual line in input | +| `input.visual.line.end` | `alt+e` | Move to end of visual line in input | +| `input.select.visual.line.home` | `alt+shift+a` | Select to start of visual line in input | +| `input.select.visual.line.end` | `alt+shift+e` | Select to end of visual line in input | +| `input.buffer.home` | `none` | Move to start of buffer in input | +| `input.buffer.end` | `none` | Move to end of buffer in input | +| `input.select.buffer.home` | `shift+home` | Select to start of buffer in input | +| `input.select.buffer.end` | `shift+end` | Select to end of buffer in input | +| `input.delete.line` | `ctrl+shift+d` | Delete line in input | +| `input.delete.to.line.end` | `ctrl+k` | Delete to end of line in input | +| `input.delete.to.line.start` | `ctrl+u` | Delete to start of line in input | +| `input.backspace` | `backspace,shift+backspace` | Backspace in input | +| `input.delete` | `ctrl+d,delete,shift+delete` | Delete character in input | +| `input.undo` | `ctrl+-,super+z` | Undo in input | +| `input.redo` | `ctrl+.,super+shift+z` | Redo in input | +| `input.word.forward` | `alt+f,alt+right,ctrl+right` | Move word forward in input | +| `input.word.backward` | `alt+b,alt+left,ctrl+left` | Move word backward in input | +| `input.select.word.forward` | `alt+shift+f,alt+shift+right` | Select word forward in input | +| `input.select.word.backward` | `alt+shift+b,alt+shift+left` | Select word backward in input | +| `input.delete.word.forward` | `alt+d,alt+delete,ctrl+delete` | Delete word forward in input | +| `input.delete.word.backward` | `ctrl+w,ctrl+backspace,alt+backspace` | Delete word backward in input | +| `input.select.all` | `super+a` | Select all in input | +| `prompt.history.previous` | `up` | Previous history item | +| `prompt.history.next` | `down` | Next history item | ## Composer -| ID | Default | Description | -| --- | --- | --- | -| `composer.subagent.up` | `up` | Previous subagent | -| `composer.subagent.down` | `down` | Next subagent | -| `composer.subagent.select` | `return` | Navigate to subagent | -| `composer.subagent.interrupt` | `ctrl+d` | Interrupt subagent | -| `composer.shell.up` | `up` | Previous shell | -| `composer.shell.down` | `down` | Next shell | -| `composer.shell.kill` | `ctrl+d` | Kill shell command | +| ID | Default | Description | +| ----------------------------- | -------- | -------------------- | +| `composer.subagent.up` | `up` | Previous subagent | +| `composer.subagent.down` | `down` | Next subagent | +| `composer.subagent.select` | `return` | Navigate to subagent | +| `composer.subagent.interrupt` | `ctrl+d` | Interrupt subagent | +| `composer.shell.up` | `up` | Previous shell | +| `composer.shell.down` | `down` | Next shell | +| `composer.shell.kill` | `ctrl+d` | Kill shell command | ## Dialogs And Autocomplete -| ID | Default | Description | -| --- | --- | --- | -| `dialog.select.prev` | `up,ctrl+p` | Move to previous dialog item | -| `dialog.select.next` | `down,ctrl+n` | Move to next dialog item | -| `dialog.select.page_up` | `pageup` | Move up one page in dialog | -| `dialog.select.page_down` | `pagedown` | Move down one page in dialog | -| `dialog.select.home` | `home` | Move to first dialog item | -| `dialog.select.end` | `end` | Move to last dialog item | -| `dialog.select.submit` | `return` | Submit selected dialog item | -| `dialog.prompt.submit` | `return` | Submit dialog prompt | -| `dialog.worktree.generate` | `tab` | Generate worktree name | -| `dialog.move_session.new` | `ctrl+m` | New worktree | -| `dialog.move_session.delete` | `ctrl+d` | Delete worktree | -| `dialog.move_session.refresh` | `ctrl+r` | Refresh worktrees | -| `prompt.autocomplete.prev` | `up,ctrl+p` | Move to previous autocomplete item | -| `prompt.autocomplete.next` | `down,ctrl+n` | Move to next autocomplete item | -| `prompt.autocomplete.hide` | `escape` | Hide autocomplete | -| `prompt.autocomplete.select` | `return` | Select autocomplete item | -| `prompt.autocomplete.complete` | `tab` | Complete autocomplete item | -| `permission.prompt.fullscreen` | `ctrl+f` | Toggle permission prompt fullscreen | -| `plugins.toggle` | `space` | Toggle plugin | -| `dialog.mcp.toggle` | `space` | Toggle MCP server | -| `dialog.plugins.install` | `shift+i` | Install plugin from plugin dialog | +| ID | Default | Description | +| ------------------------------ | ------------- | ----------------------------------- | +| `dialog.select.prev` | `up,ctrl+p` | Move to previous dialog item | +| `dialog.select.next` | `down,ctrl+n` | Move to next dialog item | +| `dialog.select.page_up` | `pageup` | Move up one page in dialog | +| `dialog.select.page_down` | `pagedown` | Move down one page in dialog | +| `dialog.select.home` | `home` | Move to first dialog item | +| `dialog.select.end` | `end` | Move to last dialog item | +| `dialog.select.submit` | `return` | Submit selected dialog item | +| `dialog.prompt.submit` | `return` | Submit dialog prompt | +| `dialog.worktree.generate` | `tab` | Generate worktree name | +| `dialog.move_session.new` | `ctrl+m` | New worktree | +| `dialog.move_session.delete` | `ctrl+d` | Delete worktree | +| `dialog.move_session.refresh` | `ctrl+r` | Refresh worktrees | +| `prompt.autocomplete.prev` | `up,ctrl+p` | Move to previous autocomplete item | +| `prompt.autocomplete.next` | `down,ctrl+n` | Move to next autocomplete item | +| `prompt.autocomplete.hide` | `escape` | Hide autocomplete | +| `prompt.autocomplete.select` | `return` | Select autocomplete item | +| `prompt.autocomplete.complete` | `tab` | Complete autocomplete item | +| `permission.prompt.fullscreen` | `ctrl+f` | Toggle permission prompt fullscreen | +| `plugins.toggle` | `space` | Toggle plugin | +| `dialog.mcp.toggle` | `space` | Toggle MCP server | +| `dialog.plugins.install` | `shift+i` | Install plugin from plugin dialog | ## Terminal And Plugins -| ID | Default | Description | -| --- | --- | --- | -| `terminal.suspend` | `ctrl+z` | Suspend terminal | -| `terminal.title.toggle` | `none` | Toggle terminal title | -| `plugins.list` | `none` | Open plugin manager dialog | -| `plugins.install` | `none` | Install plugin | +| ID | Default | Description | +| ----------------------- | -------- | -------------------------- | +| `terminal.suspend` | `ctrl+z` | Suspend terminal | +| `terminal.title.toggle` | `none` | Toggle terminal title | +| `plugins.list` | `none` | Open plugin manager dialog | +| `plugins.install` | `none` | Install plugin | ## Which-Key -| ID | Default | Description | -| --- | --- | --- | -| `which-key.toggle` | `ctrl+alt+k` | Toggle which-key panel | -| `which-key.layout.toggle` | `ctrl+alt+shift+k` | Switch which-key layout | -| `which-key.pending.toggle` | `ctrl+alt+shift+p` | Toggle which-key pending preview | -| `which-key.group.previous` | `ctrl+alt+left,ctrl+alt+[` | Previous which-key group | -| `which-key.group.next` | `ctrl+alt+right,ctrl+alt+]` | Next which-key group | -| `which-key.scroll.up` | `ctrl+alt+up,ctrl+alt+p` | Scroll which-key up | -| `which-key.scroll.down` | `ctrl+alt+down,ctrl+alt+n` | Scroll which-key down | -| `which-key.page.up` | `ctrl+alt+pageup` | Page which-key up | -| `which-key.page.down` | `ctrl+alt+pagedown` | Page which-key down | -| `which-key.home` | `ctrl+alt+home` | Jump to first which-key binding | -| `which-key.end` | `ctrl+alt+end` | Jump to last which-key binding | +| ID | Default | Description | +| -------------------------- | --------------------------- | -------------------------------- | +| `which-key.toggle` | `ctrl+alt+k` | Toggle which-key panel | +| `which-key.layout.toggle` | `ctrl+alt+shift+k` | Switch which-key layout | +| `which-key.pending.toggle` | `ctrl+alt+shift+p` | Toggle which-key pending preview | +| `which-key.group.previous` | `ctrl+alt+left,ctrl+alt+[` | Previous which-key group | +| `which-key.group.next` | `ctrl+alt+right,ctrl+alt+]` | Next which-key group | +| `which-key.scroll.up` | `ctrl+alt+up,ctrl+alt+p` | Scroll which-key up | +| `which-key.scroll.down` | `ctrl+alt+down,ctrl+alt+n` | Scroll which-key down | +| `which-key.page.up` | `ctrl+alt+pageup` | Page which-key up | +| `which-key.page.down` | `ctrl+alt+pagedown` | Page which-key down | +| `which-key.home` | `ctrl+alt+home` | Jump to first which-key binding | +| `which-key.end` | `ctrl+alt+end` | Jump to last which-key binding | diff --git a/packages/www/content/docs/index.mdx b/packages/www/content/docs/index.mdx index dc20ff3fc2..d29de40485 100644 --- a/packages/www/content/docs/index.mdx +++ b/packages/www/content/docs/index.mdx @@ -40,7 +40,6 @@ If you'd like easy access to all the best coding models you can try out You can also try [OpenCode Go](https://opencode.ai/go) a $10/month subscription plan that grants you access to the best open source models. - --- ## Customize diff --git a/packages/www/content/docs/migrate-v1.mdx b/packages/www/content/docs/migrate-v1.mdx index 50a0188df5..7c98a73277 100644 --- a/packages/www/content/docs/migrate-v1.mdx +++ b/packages/www/content/docs/migrate-v1.mdx @@ -23,8 +23,8 @@ should continue to work without changes. If supported behavior described in this beta compatibility bug rather than an expected migration requirement. - If supported V1 functionality does not work in V2, follow the issue-reporting guidance in [Troubleshooting](/troubleshooting) - and file a compatibility issue. + If supported V1 functionality does not work in V2, follow the issue-reporting guidance in + [Troubleshooting](/troubleshooting) and file a compatibility issue.