Client Interfaces
PyRogue client interfaces expose a running Root to external tools for
automation, monitoring, and operations.
Most deployments use ZmqServer as the server-side
transport. The server is added to the Root and clients connect over TCP.
Connection Model
Start the server side from your
Root(typicallyZmqServer)Connect one or more clients (simple script client, virtual mirrored client, CLI tools, or GUI)
Perform read/write/command operations against the same tree model
Why This Matters
This model allows one running tree to serve multiple concurrent workflows:
Operations GUIs
Display GUIs
Automation scripts
Jupyter notebooks
Command-line tools
Choosing An Interface
Use Simple Client Interface when you want lightweight string-path access with minimal client dependencies.
Use Virtual Client Interface when you want a mirrored tree object model with richer metadata and listener behavior.
Use Using the Command Line Client for shell-driven checks, quick reads/writes, and PyDM launch workflows.
Use Python ZMQServer when implementing or configuring the server side in your
Root.
Operational Notes
Treat remote command paths as part of your public control surface.
Keep Variable naming stable to reduce client-side breakage.
Document expected polling/update cadence for remote consumers.
Prefer
127.0.0.1for local-only deployments and explicit non-loopback binds for remote access.
API Reference
Minimal Setup Pattern
import pyrogue as pr
import pyrogue.interfaces
class MyRoot(pr.Root):
def __init__(self, **kwargs):
super().__init__(name='MyRoot', **kwargs)
self.zmqServer = pyrogue.interfaces.ZmqServer(
root=self,
addr='127.0.0.1',
port=0,
)
self.addInterface(self.zmqServer)