Skip to content

[FEATURE]: Navigation to parent session from child/subagent sessions #3291

Closed

Description

@Astn

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request 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?

Activity

  1. github-actions commented on Oct 20, 2025

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    The combination of these existing issues covers many aspects of your feature request, particularly the keybinding conflicts on macOS (#2816) and the child session navigation problems (#2390).

    Feel free to ignore if none of these address your specific case.

  2. rekram1-node commented on Oct 20, 2025

    @rekram1-node
    Collaborator

    we are rewriting tui currently and once that ships we can pay more attention to things like this after

  3. ericwooley commented on Nov 15, 2025

    @ericwooley

    I understand ya'll are possibly circling back to this, so I don't want to overwhelm you all. I just wanted to add on to the feature request.

    +1 to tree based navigation. I would love to see a tree based navigation of sessions. Similar to /sessions I would love to see something like /agent_sessions which would bring up a tree view of the agents that ran during this session.

    something else to consider though is something like the git log graphs you see. Something like this:

    Image

    then you could navigate to one by something like /agent_session <session_id>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions