diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx
index 0dfefe42..ce9bcde4 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-command.tsx
@@ -78,7 +78,7 @@ export function CommandProvider(props: ParentProps) {
const keybind = useKeybind()
useKeyboard((evt) => {
- if (keybind.match("command_list", evt)) {
+ if (keybind.match("command_list", evt) && dialog.stack.length === 0) {
evt.preventDefault()
dialog.replace(() => )
return
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx
index 732aa457..c2faddaf 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-status.tsx
@@ -15,7 +15,7 @@ export function DialogStatus() {
Status
esc
- 0}>
+ 0} fallback={No MCP Servers}>
{Object.keys(sync.data.mcp).length} MCP Servers
diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
index 3c25c4a8..ee488810 100644
--- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
+++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
@@ -123,8 +123,8 @@ export function DialogSelect(props: DialogSelectProps) {
const keybind = useKeybind()
useKeyboard((evt) => {
- if (evt.name === "up") move(-1)
- if (evt.name === "down") move(1)
+ if (evt.name === "up" || (evt.ctrl && evt.name === "p")) move(-1)
+ if (evt.name === "down" || (evt.ctrl && evt.name === "n")) move(1)
if (evt.name === "pageup") move(-10)
if (evt.name === "pagedown") move(10)
if (evt.name === "return") {