Skip to content

Feature request: expose pane navigation/resize APIs for seamless Neovim integration #421

Description

@TaterDoge

Hi, thanks for building Herdr — it looks very promising.

I am using Neovim inside Herdr and would like to integrate it with smart-splits.nvim, a plugin that enables seamless navigation between Neovim splits and terminal multiplexer panes (already supports tmux, Wezterm, Kitty, Zellij).

After reviewing the current CLI docs, the following capabilities appear to be missing, which are required for this kind of external integration:

  1. Directional pane focus — No CLI to focus an adjacent pane by direction (e.g. herdr pane focus --direction left|right|up|down). This is the core primitive for seamless cursor movement across Neovim splits → Herdr panes.

  2. Directional pane resize — No CLI to resize the current pane by direction and amount (e.g. herdr pane resize --direction left --amount 3). Required for proportional resizing across Neovim and Herdr panes.

  3. Current pane identity — No reliable way for a process running inside a pane (like Neovim) to discover its own Herdr pane ID. The custom-command env vars (HERDR_ACTIVE_PANE_ID, etc.) are only injected for custom keybindings, not for normal pane shells.

  4. Pane layout / edge info — No way to determine whether the current pane is at a layout edge in a given direction. This is needed for at-edge behavior (wrap/stop/split) in navigation plugins.

herdr pane split already works well, but without directional focus + directional resize + current pane identity, Neovim users inside Herdr cannot smoothly move from editor splits into Herdr panes the way they can with tmux, Wezterm, Kitty, or Zellij.

Would you be open to adding these capabilities to the CLI or socket API? Happy to help refine the API design if useful.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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