Run a local process as if it were inside your cluster: prefix any command
with plug and it resolves the cluster DNS and reaches the cluster services like
any workload of the stack - no code change, no proxy configuration in your app. One
tiny agent container on the cluster side, one static CLI on yours. Docker, Swarm, Kubernetes
and OpenShift.
Roadmap
What is coming, and what is left out on purpose. What plug does today is in the rest of this documentation.
Coming
UDP by name
A cluster service reached over UDP, by its name, the way TCP is today: a DNS server of the cluster, StatsD, syslog, any request and response protocol. Until then, UDP to the cluster is not carried, and plug says so in its log rather than letting it look like a hang. Most clients of QUIC and HTTP/3 already fall back to TCP. Real-time media is not the aim: the datagrams will ride the tunnel in order, which suits requests and answers, not a video call.
IPv6 addresses written in the code
A service reached by its name already works, whatever its address. An IPv6 address written as is in a program or a config will be carried too.
Opening a session from an AI agent
plug mcp tells an AI coding agent what plug knows. Opening
and closing a session from it is still being designed: a session is a process that lives
while the agent works, and it deserves its own shape.
Left out on purpose
A Kubernetes-only way in
plug behaves the same on Docker, Compose, Swarm, Kubernetes and OpenShift, and stays that
way: a feature that exists on one of them only is a second way of working to learn. On
Kubernetes, kubectl port-forward already reaches the agent with no exposed port,
each developer's kubeconfig gating it (security model).
Homebrew, apt and other package channels
plug installs from the cluster, and runs the version each cluster serves. A package channel would be a second source, with versions that drift from the clusters'.
Keystrokes in a running session
The command plug runs owns the keyboard: Vite reads r, u and
q, nodemon reads rs, a REPL reads everything. Any key plug kept for
itself would be taken from that program. Another terminal is where to ask instead:
plug mounts lists what the live sessions have mounted, plug doctor
lists them and checks each name they serve answers.