Feature: Expose conversation branch info in statusLine JSON input

Resolved 💬 3 comments Opened Apr 1, 2026 by placenameday Closed May 8, 2026

Summary

The /branch command (formerly /fork) is a great feature for conversation forking. However, the statusLine JSON input does not expose any conversation branch information, making it impossible to display branch context in a custom status bar.

Current behavior

The JSON object passed to statusLine.command includes fields like model, workspace, context_window, rate_limits, vim.mode, agent.name, etc. — but nothing about the current conversation's branch state.

Proposed fields

Add the following to the statusLine JSON input:

{
  "session": {
    "id": "current-session-uuid",
    "branch_name": "optional user-given branch name",
    "parent_session_id": "uuid of parent if this is a branch, null otherwise",
    "is_branch": true/false,
    "depth": 0  // 0 = root, 1 = branched from root, etc.
  }
}

Use case

Users with custom statusLine commands could display:

  • Whether the current session is a branch or the main conversation
  • The branch name (if named)
  • A visual indicator of branching depth

Example status bar: Claude Opus my_mm (main) 🌿 fix-refactor ███░░ 65%

Additional context

  • /branch was introduced in v2.1.77 (renamed from /fork)
  • StatusLine configuration is in settings.jsonstatusLine.command
  • This would help users maintain awareness of which conversation branch they're working in, especially when resuming sessions with /resume

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗