Skip to main content Module shim Copy item path Source pub use prost ;pub use super::ui_components ::*;alloc The Rust core allocation and collections library bytes Provides abstractions for working with bytes. plugin_api DecodeError A Protobuf message decoding error. EncodeError A Protobuf message encoding error. Message A Protocol Buffers message. Name Associate a type name with a Message type. block_cli_pipe_input Block the input side of a pipe, will only be released once this or another plugin unblocks it break_panes_to_new_tab Create a new tab that includes the specified pane ids break_panes_to_tab_with_id Move the pane ids to the tab with the specified id break_panes_to_tab_with_index Move the pane ids to the tab with the specified index change_floating_panes_coordinates change_host_folder clear_key_presses_intercepts clear_pane_highlights Remove all regex highlights this plugin has set on the given pane. clear_screen Clear the scroll buffer of the focused pane clear_screen_for_pane_id Clear the scroll buffer of the specified pane cli_pipe_output Send output to the output side of a pipe, ths does not affect the input side of same pipe close_focus Close the focused pane close_focused_tab Close the focused tab close_multiple_panes close_pane_with_id Sugar for close_terminal_pane and close_plugin_pane close_plugin_pane Closes a plugin pane with the specified id close_self Close this plugin pane close_tab_with_id Close the tab with the given stable ID. close_tab_with_index Close the focused tab close_terminal_pane Closes a terminal pane with the specified id copy_to_clipboard Copy arbitrary text to the user’s clipboard current_session_last_saved_time Returns the elapsed time in milliseconds since the current session state was last saved to disk. decode_length_delimiter Decodes a length delimiter from the buffer. delete_all_dead_sessions Permanently delete all resurrectable sessions on this machine. delete_dead_session Permanently delete a resurrectable session with the given name. delete_layout Delete a layout from the user’s layout directory. detach Detach the user from the active session disconnect_other_clients Disconnect all other clients from the current session dump_layout Dumps a layout by name and returns its KDL content as a String dump_session_layout Get the serialized session layout in KDL format synchronously
note: this removes the requesting plugin from the dumped layout dump_session_layout_for_tab Get the serialized layout for a specific tab in KDL format synchronously
note: this removes the requesting plugin from the dumped layout edit_layout Opens a layout file in the user’s default $EDITOR edit_scrollback Edit the scrollback of the focused pane in the user’s default $EDITOR edit_scrollback_for_pane_with_id Edit the scrollback of the specified pane in the user’s default $EDITOR (currently only works
for terminal panes) embed_multiple_panes encode_length_delimiter Encodes a length delimiter to the buffer. float_multiple_panes focus_host_session focus_last_pane Change focus to the previously focused pane focus_next_pane Change focus tot he next pane in chronological order focus_or_create_tab Change focus to the tab with the specified name or create it if it does not exist focus_pane_with_id Changes the focus to the pane with the specified id, unsuppressing it if it was suppressed and switching to its tab and layer (eg. floating/tiled). focus_plugin_pane Changes the focus to the plugin pane with the specified id, unsuppressing it if it was suppressed and switching to its tab and layer (eg. floating/tiled). focus_previous_pane Change focus to the previous pane in chronological order focus_terminal_pane Changes the focus to the terminal pane with the specified id, unsuppressing it if it was suppressed and switching to its tab and layer (eg. floating/tiled). generate_random_name Generates a random human-readable name using Zellij’s curated word lists.
Returns a name in the format AdjectiveNoun (e.g., “BraveRustacean”, “ZippyWeasel”). generate_web_login_token get_focused_pane Returns the PaneInfo corresponding to the currently active pane (ignoring plugins) get_focused_pane_info Returns the focused pane ID and tab index for the client associated with this plugin. get_focused_tab Returns the TabInfo corresponding to the currently active tab get_layout_dir Returns the path to the layout directory. get_pane_cwd Gets the current working directory for a specific pane by its ID. get_pane_info Query information about a specific pane by its PaneId. get_pane_pid Get the PID of the process running inside a terminal pane get_pane_running_command Gets the current running command for a specific pane by its ID. get_pane_scrollback Retrieves the scrollback contents from the specified pane get_plugin_ids Returns the unique Zellij pane ID for the plugin as well as the Zellij process id. get_session_environment_variables get_session_list Fetches a fresh snapshot of all live and resurrectable sessions on this machine. get_tab_info Query information about a specific tab by its tab ID. get_zellij_version Returns the version of the running Zellij instance - can be useful to check plugin compatibility go_to_next_tab Change focus to the next tab or loop back to the first go_to_previous_tab Change focus to the previous tab or loop back to the last go_to_tab go_to_tab_name Change focus to the tab with the specified name group_and_ungroup_panes hide_floating_panes Hide all floating panes in the specified tab, or the active tab if tab_id is None. hide_pane_with_id Hide the pane (suppress it) with the specified PaneId from the UI hide_self Hide the plugin pane (suppress it) from the UI highlight_and_unhighlight_panes intercept_key_presses kill_sessions Kill all Zellij sessions in the list. length_delimiter_len Returns the encoded length of a length delimiter. list_clients Get a list of clients, their focused pane and running command or focused plugin back as an
Event::ListClients (note: this event must be subscribed to) list_web_login_tokens list_windows_volumes List Windows volumes (drives and WSL distributions).
Results are returned via the FileSystemUpdate event.
This command is only supported on Windows and requires FullHdAccess permission. load_new_plugin Reload an already-running in this session, optionally skipping the cache move_focus Change the focused pane in the specified direction move_focus_or_tab Change the focused pane in the specified direction, if the pane is on the edge of the screen, the next tab is focused (next if right edge, previous if left edge). move_pane Switch the position of the focused pane with a different pane move_pane_with_direction Switch the position of the focused pane with a different pane in the specified direction (eg. Down, Up, Left, Right). move_pane_with_pane_id Switch the position of the pane with this id with a different pane move_pane_with_pane_id_in_direction Switch the position of the pane with this id with a different pane in the specified direction (eg. Down, Up, Left, Right). new_pane new_tab Open a new tab with the default layout new_tab_unfocused new_tabs_with_layout Provide a stringified layout to be applied to the current session. If the layout has multiple tabs, they will all be opened. new_tabs_with_layout_info Provide a LayoutInfo to be applied to the current session in a new tab. If the layout has multiple tabs, they will all be opened. new_tiled_pane_in_tab next_swap_layout Change to the next swap layout open_command_pane Open a new command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI). open_command_pane_background Open a new hidden (background) command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI). open_command_pane_floating Open a new floating command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI). open_command_pane_floating_near_plugin Open a new floating command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI).
This variant is the same as open_command_pane_floating except it opens the pane in the same tab as the
plugin regardless of whether the user is focused on it open_command_pane_in_new_tab Opens a new tab with a command pane running command_to_run.
Returns (tab_id, pane_id) of the created tab and pane, or None if unavailable. open_command_pane_in_place Open a new in place command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI). open_command_pane_in_place_of_pane_id Opens a command pane in place of the pane identified by pane_id.
Unlike open_command_pane_in_place, this targets an arbitrary pane by ID rather than the
focused pane, and does not change focus. If close_replaced_pane is false, the replaced
pane is suppressed and restored when the new pane closes; if true, it is permanently closed.
Returns the PaneId of the newly opened pane, or None if the operation failed. open_command_pane_in_place_of_plugin Open a new in place command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI).
This variant is the same as open_command_pane_in_place, except that it always replaces the
plugin pane rather than whichever pane the user is focused on open_command_pane_near_plugin Open a new command pane with the specified command and args (this sort of pane allows the user to control the command, re-run it and see its exit status through the Zellij UI).
This variant is the same as open_command_pane except it opens the pane in the same tab as the
plugin regardless of whether the user is focused on it open_edit_pane_in_place_of_pane_id Opens an editor pane in place of the pane identified by pane_id.
Unlike open_file_in_place, this targets an arbitrary pane by ID rather than the
focused pane, and does not change focus. If close_replaced_pane is false, the replaced
pane is suppressed and restored when the new pane closes; if true, it is permanently closed.
Returns the PaneId of the newly opened pane, or None if the operation failed. open_editor_pane_in_new_tab Opens a new tab with an editor pane for file_to_open.
Returns (tab_id, pane_id) of the created tab and pane. open_file Open a file in the user’s default $EDITOR in a new pane open_file_floating Open a file in the user’s default $EDITOR in a new floating pane open_file_floating_near_plugin Open a file in the user’s default $EDITOR in a new floating pane near the plugin open_file_in_place Open a file in the user’s default $EDITOR, replacing the focused pane open_file_in_place_of_plugin Open a file in the user’s default $EDITOR, replacing the plugin pane open_file_near_plugin Open a file in the user’s default $EDITOR in a new pane near th eplugin open_plugin_pane_floating Open a new floating plugin pane with the specified plugin URL and configuration.
Returns the pane ID of the newly created plugin pane, if successful. open_plugin_pane_in_new_tab Opens a new tab with a plugin pane loaded from plugin_url.
plugin_url can be a path (file:/path/to/plugin.wasm) or a named alias.
Returns (tab_id, pane_id) of the created tab and pane. open_terminal Open a new terminal pane to the specified location on the host filesystem open_terminal_floating Open a new floating terminal pane to the specified location on the host filesystem open_terminal_floating_near_plugin Open a new floating terminal pane to the specified location on the host filesystem
This variant is identical to open_terminal_floating, excpet it opens it near the plugin regardless of
whether the user was focused on it or not open_terminal_in_place Open a new terminal pane to the specified location on the host filesystem, temporarily
replacing the focused pane open_terminal_in_place_of_plugin Open a new terminal pane to the specified location on the host filesystem, temporarily
replacing the plugin pane open_terminal_near_plugin Open a new terminal pane to the specified location on the host filesystem
This variant is identical to open_terminal, excpet it opens it near the plugin regardless of
whether the user was focused on it or not open_terminal_pane_in_place_of_pane_id Opens a terminal pane in place of the pane identified by pane_id.
Unlike open_terminal_in_place, this targets an arbitrary pane by ID rather than the
focused pane, and does not change focus. If close_replaced_pane is false, the replaced
pane is suppressed and restored when the new pane closes; if true, it is permanently closed.
cwd sets the working directory for the new terminal. Returns the PaneId of the newly
opened pane, or None if the operation failed. override_layout page_scroll_down Scroll the focused pane down one page page_scroll_down_in_pane_id Scroll the specified pane down one page page_scroll_up Scroll the focused pane up one page page_scroll_up_in_pane_id Scroll the specified pane up one page parse_layout Parses a KDL layout string and returns LayoutMetadata pipe_message_to_plugin Send a message to a plugin, it will be launched if it is not already running post_message_to Post a message to a worker of this plugin, for more information please see Plugin Workers post_message_to_plugin Post a message to this plugin, for more information please see Plugin Workers previous_swap_layout Change to the previous swap layout query_web_server_status quit_zellij Compeltely quit Zellij for this and all other connected clients rebind_keys Rebind keys for the current user reconfigure Change configuration for the current user reload_plugin_with_id Reload an already-running in this session, optionally skipping the cache rename_layout Rename a layout file in the user’s layout directory rename_pane_with_id Rename the specified pane rename_plugin_pane Changes the name (the title that appears in the UI) of the plugin pane with the specified id. rename_session Rename the current session rename_tab Changes the name (the title that appears in the UI) of the tab with the specified position. rename_tab_with_id Changes the name (the title that appears in the UI) of the tab with the specified id. rename_terminal_pane Changes the name (the title that appears in the UI) of the terminal pane with the specified id. rename_web_token replace_pane_with_existing_pane report_panic request_permission rerun_command_pane Re-run command in pane resize_focused_pane Either Increase or Decrease the size of the focused pane resize_focused_pane_with_direction Either Increase or Decrease the size of the focused pane in a specified direction (eg. Left, Right, Up, Down). resize_pane_with_id Resize the specified pane (increase/decrease) with an optional direction (left/right/up/down) revoke_all_web_tokens revoke_web_login_token run_action run_command Run this command in the background on the host machine, optionally being notified of its output
if subscribed to the RunCommandResult Event run_command_with_env_variables_and_cwd Run this command in the background on the host machine, providing environment variables and a
cwd. Optionally being notified of its output if subscribed to the RunCommandResult Event save_layout Save a layout to the user’s layout directory save_session Save the current session state to disk immediately. scan_host_folder Scan a specific folder in the host filesystem (this is a hack around some WASI runtime performance
issues), will not follow symlinks scroll_down Scroll the focused pane down 1 line scroll_down_in_pane_id Scroll the specified pane down 1 line scroll_to_bottom Scroll the focused pane all the way to the bottom of the scrollbuffer scroll_to_bottom_in_pane_id Scroll the specified pane all the way to the bottom of the scrollbuffer scroll_to_top Scroll the focused pane all the way to the top of the scrollbuffer scroll_to_top_in_pane_id Scroll the specified pane all the way to the top of the scrollbuffer scroll_up Scroll the focused pane up 1 line scroll_up_in_pane_id Scroll the specified pane up 1 line send_sigint_to_pane_id Send SIGINT to the process running inside a terminal pane identified by this PaneId send_sigkill_to_pane_id Send SIGKILL to the process running inside a terminal pane identified by this PaneId set_floating_pane_pinned set_pane_borderless Set the borderless state of a pane explicitly set_pane_color Set the default foreground and/or background color of a pane set_pane_frame_style set_pane_regex_highlights Set or update regex-based content highlights for a pane. set_selectable Sets the plugin as selectable or unselectable to the user. Unselectable plugins might be desired when they do not accept user input. set_self_mouse_selection_support set_soft_keyboard set_timeout Set a timeout in seconds (or fractions thereof) after which the plugins update method will be called with the Timer event. share_current_session show_cursor Shows the cursor at specific coordinates or hides it show_floating_panes Show all floating panes in the specified tab, or the active tab if tab_id is None. show_pane_with_id Show the pane (unsuppress it if it is suppressed) with the specified PaneId , focus it and switch to its tab show_self Show the plugin pane (unsuppress it if it is suppressed), focus it and switch to its tab stack_panes start_or_reload_plugin start_web_server stop_sharing_current_session stop_web_server subscribe Subscribe to a list of Event s represented by their EventType s that will then trigger the update method switch_session Switch to a session with the given name, create one if no name is given switch_session_with_cwd Switch to a session with the given name, create one if no name is given switch_session_with_focus Switch to a session with the given name, focusing either the provided pane_id or the provided
tab position (in that order) switch_session_with_layout Switch to a session with the given name, create one if no name is given switch_tab_to Change the focused tab to the specified index (corresponding with the default tab names, to starting at 1, 0 will be considered as 1). switch_to_input_mode Switch to the specified Input Mode (eg. Normal, Tab, Pane) toggle_active_tab_sync Turn the STDIN synchronization of the current tab on or off toggle_floating_panes toggle_focus_fullscreen Toggle the focused pane to be fullscreen or normal sized toggle_focus_no_ui_fullscreen toggle_pane_borderless Toggle the borderless state of a pane identified by pane_id toggle_pane_embed_or_eject Embed the currently focused pane (make it stop floating) or turn it to a float pane if it is not toggle_pane_embed_or_eject_for_pane_id Embed the specified pane (make it stop floating) or turn it to a float pane if it is not toggle_pane_frames Toggle the UI pane frames on or off toggle_pane_id_fullscreen Toggle the specified pane to be fullscreen or normal sized toggle_tab Focused the previously focused tab (regardless of the tab position) unblock_cli_pipe_input Unblock the input side of a pipe, requesting the next message be sent if there is one undo_rename_pane undo_rename_tab unsubscribe Unsubscribe to a list of Event s represented by their EventType s. watch_filesystem Start watching the host folder for filesystem changes (Note: somewhat unstable at the time
being) web_request Make a web request, optionally being notified of its output
if subscribed to the WebRequestResult Event, the context will be returned verbatim in this
event and can be used for eg. marking the request_id write Write bytes to the STDIN of the focused pane write_chars Write characters to the STDIN of the focused pane write_chars_to_pane_id Write characters to the STDIN of the specified pane write_to_pane_id Write bytes to the STDIN of the specified pane Enumeration Message Oneof