You can think of xplr as a server. Just like web servers listen to HTTP requests, xplr listens to messages.

You can send these messages to an xplr session in the following ways:


To send messages using the key bindings or Lua function calls, messages are represented in Lua syntax. For example:

  • "Quit"
  • { FocusPath = "/path/to/file" }
  • { Call = { command = "bash", args = { "-c", "read -p test" } } }

However, to send messages using the input pipe, they need to be represented using YAML (or JSON) syntax. For example:

  • Quit
  • FocusPath: "/path/to/file"
  • Call: { command: bash, args: ["-c", "read -p test"] }

Also See: