Skip to content

Add client-local routing for keybind and plugin pipes#5393

Open
yamam wants to merge 1 commit into
zellij-org:mainfrom
yamam:feat-client-local-pipe-routing
Open

Add client-local routing for keybind and plugin pipes#5393
yamam wants to merge 1 commit into
zellij-org:mainfrom
yamam:feat-client-local-pipe-routing

Conversation

@yamam

@yamam yamam commented Jul 20, 2026

Copy link
Copy Markdown

Summary

This PR adds optional client-local routing for keybind and
plugin-to-plugin pipes.
Closes #5392.

Changes

  • Add a client_local option to MessagePlugin keybinds.
    bind "Alt l" {
        MessagePlugin "vim-tab-conditional" {
            name "right"
            client_local true
        }
    }
  • Add client_local to MessageToPlugin.
    MessageToPlugin::new("message-name")
        .with_plugin_url("destination-plugin")
        .client_local()
  • When enabled, deliver the pipe only to the matching plugin instance
    associated with the originating client.
  • Preserve the existing broadcast behavior when client_local is omitted or
    set to false.
  • Exclude plugin instances associated with disconnected clients from CLI pipe
    delivery.
  • Treat client_local as a routing option rather than part of the destination
    plugin configuration.

Compatibility

client_local defaults to false, so existing keybindings and plugins retain
their current broadcast behavior.
CLI pipes do not support client_local because they are sent through a
short-lived CLI client rather than a particular attached client.

Add a client_local option to MessagePlugin keybinds and
plugin-to-plugin messages.

When enabled, pipes are delivered only to the matching plugin
instance associated with the originating client. The option defaults
to false to preserve the existing broadcast behavior.

Also exclude plugin instances associated with disconnected clients
from CLI pipe delivery.

Closes zellij-org#5392
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow keybind and plugin pipes to target the originating client only

1 participant