Feature hasn't been suggested before.
Describe the enhancement you want to request
[FEATURE]: Navigation to parent session from child/subagent sessions
Current Behavior
OpenCode currently supports session navigation via keybindings for cycling through child sessions:
ctrl+right (session_child_cycle): Cycles forward through child sessions (e.g., subagent sessions spawned via @mentions).
ctrl+left (session_cycle_reverse): Cycles backward through child sessions.
These allow switching between sibling child sessions within a parent. However, there is no dedicated keybinding to quickly navigate upward to the parent session from a child/subagent session. Users must rely on alternatives like the session list modal (<leader>l, where leader is ctrl+x by default) to switch back, which interrupts workflow.
Keybindings are customizable via the keybinds section in the config file (e.g., ~/.config/opencode/config.json), but no predefined options exist for parent navigation.
Problem
When working in a subagent/child session (e.g., after delegating a task to a specialized agent), users frequently need to return to the parent session to review context, delegate further, or integrate results. The lack of a direct upward navigation forces less efficient methods, like listing all sessions or interrupting flow. This is especially cumbersome in complex workflows with nested subagents.
Existing cycle keybindings (ctrl+left/right) work well for horizontal navigation among children but don't address vertical (parent/child) hierarchy. Platform-specific conflicts (e.g., #2816 on macOS where ctrl+left/right clashes with OS desktop switching) also suggest any new bindings should consider configurability and alternatives like cmd+ support (#653).
Proposed Solution
Introduce new configurable keybindings for vertical session navigation:
session_parent: Navigate to the parent session from a child (suggested default: ctrl+up).
session_child_return: Return to the last active child session from the parent (suggested default: ctrl+down), or cycle through children if multiple are active.
This would create an intuitive "up/down" metaphor for hierarchy, complementing the existing "left/right" for siblings. To address potential conflicts:
Alternatives Considered
- Expand session list modal: Allow quicker selection of parent via a dedicated shortcut in the modal, but this still requires opening the list.
- Tree-view navigation: A more advanced TUI feature to visualize parent/child relationships, but that's a larger scope—start with simple keybinds. A visual of the session trees could be added later.
Implementation Thoughts
What do folks think? Any concerns with defaults or better key suggestions?
Feature hasn't been suggested before.
Describe the enhancement you want to request
[FEATURE]: Navigation to parent session from child/subagent sessions
Current Behavior
OpenCode currently supports session navigation via keybindings for cycling through child sessions:
ctrl+right(session_child_cycle): Cycles forward through child sessions (e.g., subagent sessions spawned via @mentions).ctrl+left(session_cycle_reverse): Cycles backward through child sessions.These allow switching between sibling child sessions within a parent. However, there is no dedicated keybinding to quickly navigate upward to the parent session from a child/subagent session. Users must rely on alternatives like the session list modal (
<leader>l, where leader isctrl+xby default) to switch back, which interrupts workflow.Keybindings are customizable via the
keybindssection in the config file (e.g.,~/.config/opencode/config.json), but no predefined options exist for parent navigation.Problem
When working in a subagent/child session (e.g., after delegating a task to a specialized agent), users frequently need to return to the parent session to review context, delegate further, or integrate results. The lack of a direct upward navigation forces less efficient methods, like listing all sessions or interrupting flow. This is especially cumbersome in complex workflows with nested subagents.
Existing cycle keybindings (
ctrl+left/right) work well for horizontal navigation among children but don't address vertical (parent/child) hierarchy. Platform-specific conflicts (e.g., #2816 on macOS wherectrl+left/rightclashes with OS desktop switching) also suggest any new bindings should consider configurability and alternatives likecmd+support (#653).Proposed Solution
Introduce new configurable keybindings for vertical session navigation:
session_parent: Navigate to the parent session from a child (suggested default:ctrl+up).session_child_return: Return to the last active child session from the parent (suggested default:ctrl+down), or cycle through children if multiple are active.This would create an intuitive "up/down" metaphor for hierarchy, complementing the existing "left/right" for siblings. To address potential conflicts:
cmd+equivalents on macOS (e.g.,cmd+upas an alias).Alternatives Considered
Implementation Thoughts
What do folks think? Any concerns with defaults or better key suggestions?