Cmdop vs SSH, tunnels, VPNs, and remote control
Cmdop runs commands on a joined machine with no inbound port: its agent dials out to a relay, so the machine is reachable from behind NAT or a firewall with no port forwarding and no VPN. Where it differs from the tools below is what it reaches and what survives — one machine’s agent, inside a durable conversation, rather than a shell bound to your connection or a network path between hosts.
It does not replace the tools below. Most teams use more than one.
At a glance
| Tool | Best fit | Where Cmdop fits |
|---|---|---|
| SSH | Direct terminal work and established scripts. | A durable conversation when work benefits from machine and project context. |
| Tailscale | Private network connectivity between systems. | Work on a joined machine; it is not a general-purpose network. |
| ngrok / Cloudflare Tunnel | Publishing a local service at a public URL. | Operating the machine itself, when there is no service to publish. |
| Claude Code Remote Control | Steering one running Claude Code session from your phone. | Reaching the machine whether or not a session is running on it. |
| Ansible | Repeatable, declarative configuration changes. | Exploratory work where a person reviews results in a conversation. |
| AI coding CLI | Local coding tasks in a terminal. | The same kind of engine in a browser machine-workspace flow. |
The row above says where each tool is strongest. The table below is the decision: what each one requires of the target machine, and what it reaches.
| Tool | Inbound port on the target | Works behind NAT unaided | Reaches many machines at once | Work survives your disconnect |
|---|---|---|---|---|
| Cmdop | Not required — the agent dials out | Yes | Yes, across a fleet | Yes — the session belongs to the machine |
| SSH | Required (an SSH daemon on a reachable port) | Not on its own — needs a jump host, tunnel, or VPN | One host per connection | Not by default — a multiplexer such as tmux or mosh is the usual answer |
| Tailscale | Not required | Yes | It connects them; it does not run work | N/A — it is a network, not a session |
| ngrok / Cloudflare Tunnel | Not required for the published service | Yes | They publish services; they do not operate machines | N/A — traffic reaches a service, not a work session |
| Ansible | Usually, via SSH | Inherits SSH’s answer | Yes, by inventory | Not by default — async/poll: 0 detaches a task |
The last column is the real dividing line, and it is a question of where the
durability lives. With SSH or Ansible you can get it, by running something on
the target that outlives the connection — that is what tmux is for. With Cmdop
it is the default: the session belongs to the machine, so attaching and
detaching is the normal way to work rather than a workaround you remember to
set up first.
vs SSH
SSH is often the shortest route to an interactive shell. Use it when the task is terminal-first, highly scripted, or you are debugging connectivity itself.
Pick SSH when:
- You need a direct interactive shell.
- Your existing automation already depends on SSH.
- You are diagnosing the network path itself.
Pick CMDOP when:
- You want to start or resume work from a browser conversation.
- The task needs a selected machine and, optionally, a project folder.
- You want to use a supported execution engine in that same work context.
Cmdop and SSH can coexist. Choose the surface that makes the immediate task clearer rather than treating either as a replacement for the other.
vs Tailscale
Both remove the need to open an inbound port, and they stop at different boundaries. Tailscale gives you a private network: any service on one device can reach any service on another, by IP. Cmdop does not route arbitrary traffic — it reaches one thing, a joined machine’s agent, and runs work on it. A Cmdop machine dials out to its relay, so it is reachable from behind NAT or a firewall without a VPN; but if you need a database on one host to reach a service on another, that is a network problem and Cmdop is not a network.
Pick Tailscale when:
- You need service-to-service or device-to-device connectivity.
- You need to route arbitrary network traffic.
- You want machines addressable by IP, as if they were on one LAN.
Pick CMDOP when:
- You want to continue a machine task through a conversation.
- You need machine and project context, rather than a network path.
The two categories can be used together; they address different boundaries.
vs ngrok and other tunnels
A tunnel publishes a service. ngrok (and Cloudflare Tunnel, and similar) take
a port that is already listening on your machine and give it a public URL, with
the agent dialing out so you need no inbound port. That is genuinely the same
network posture Cmdop uses — the difference is what arrives at the other end.
With a tunnel, what arrives is traffic for a service you are already running. With Cmdop, what arrives is a request to do work: run this command, read this file, ask this machine’s agent a question. If a machine has no HTTP service to publish, a tunnel has nothing to point at; Cmdop still reaches it.
Pick a tunnel when:
- You have a local service — a web app, a webhook receiver, an API — and you need the internet to reach it.
- You want a public URL a third party can call.
Pick Cmdop when:
- You want to run commands or work with files on the machine, not serve traffic from it.
- You want the work to survive your disconnect and be resumable.
The two coexist: a tunnel exposes what a machine serves, Cmdop operates the machine itself.
vs Cloudflare Tunnel
Cloudflare Tunnel is the right tool when the thing you need to make reachable is
an application, API, or service. You run cloudflared, it dials out to
Cloudflare, and a hostname routes traffic back to a local service such as
http://localhost:8080. That is a strong public-application pattern.
Cmdop is for a different target: the machine itself. A joined machine can be asked to inspect disk, read files, run a command, or continue a conversation even when there is no web service listening on it. It also gives an assistant a fleet view of machines rather than a set of public hostnames.
Pick Cloudflare Tunnel when:
- You have a service to publish behind Cloudflare.
- You want Cloudflare Access, WAF, caching, or DDoS controls in front of that service.
- A public hostname is the artifact other systems need to call.
Pick Cmdop when:
- You want an AI assistant or operator to work on the machine, not call a service it hosts.
- You need commands, files, diagnostics, or a durable machine conversation.
- You want to address several machines as a fleet.
They pair cleanly: Cloudflare Tunnel can publish an app, while Cmdop operates the host that builds, deploys, or repairs it.
vs Claude Code Remote Control
Anthropic’s Remote Control drives a Claude Code session on your machine from
claude.ai/code or the Claude mobile app. It is the closest thing to Cmdop in
spirit, and the honest comparison is narrow: both keep execution on your
machine, and both avoid inbound ports by dialing out.
They differ in what is being made remote. Remote Control makes one Claude Code
session reachable — you keep the claude process running, and the phone or
browser is a window into it. Cmdop makes the machine reachable, whether or
not any assistant is running on it, and the session belongs to the machine
rather than to a process you must leave open.
Pick Remote Control when:
- You are already mid-session in Claude Code and want to keep steering it from your phone.
- You want Anthropic’s own first-party mobile experience with push notifications.
Pick Cmdop when:
- You want to reach a machine that has no session running on it right now.
- You want several machines addressable at once, including from an assistant.
- You need the work to survive closing the terminal — Remote Control ends when
the local
claudeprocess stops.
They are not exclusive: Claude Code is a supported execution engine inside Cmdop, so a Cmdop conversation can drive it on the target machine.
vs Ansible (and friends: Salt, Puppet, Chef)
Configuration-management tools encode repeatable desired state. Cmdop is better suited to a bounded investigation or a piece of work a person wants to review as it progresses.
Pick Ansible when:
- You need idempotent, repeatable rollouts.
- Your team reviews and maintains declarative playbooks.
Pick CMDOP when:
- The work starts as a question, investigation, or review.
- A person wants to inspect results and decide what happens next.
Use configuration management for repeatable change. Use Cmdop to make machine-context work easier to begin, review, and continue.
vs an AI coding CLI
An AI coding CLI is a focused local developer tool. Cmdop can use a supported engine inside the larger machine-workspace flow.
- Use the CLI directly when its terminal workflow is enough.
- Use Cmdop when the work benefits from a browser conversation, a selected machine, durable history, and an optional Project Root.
vs scripts
Scripts remain the right answer for deterministic build steps, CI, and known repeatable operations. Start in a Cmdop conversation when the task is still being understood, then turn the reviewed result into a script or managed configuration where that creates a clearer long-term contract.
Common questions
Is Cmdop a replacement for SSH?
No. SSH remains the shortest route to an interactive shell on a machine you can already reach, and Cmdop does not replace it. Cmdop reaches a machine that has no inbound port open, and its session belongs to the machine rather than to your connection, so it survives disconnect by default.
How is Cmdop different from ngrok or a tunnel?
A tunnel publishes a service that is already listening on your machine at a public URL. Cmdop does not publish a service — it runs commands on the machine and returns the output. If a machine has no HTTP service to expose, a tunnel has nothing to point at.
How is Cmdop different from Cloudflare Tunnel?
Cloudflare Tunnel publishes an origin service through Cloudflare without opening an inbound port on the origin. Cmdop does not publish an origin; it lets an operator or assistant work on the joined machine itself through commands, files, diagnostics, and durable conversations.
How is Cmdop different from Tailscale?
Tailscale gives you a private network where any device can reach any service by IP. Cmdop does not route arbitrary traffic; it reaches one thing, a joined machine’s agent, and runs work on it. Both avoid inbound ports, and they are often used together.
How is Cmdop different from Claude Code Remote Control?
Remote Control makes one running Claude Code session reachable from your phone
or browser, and it ends when the local claude process stops. Cmdop makes the
machine reachable whether or not a session is running on it, across a whole
fleet.
Read next
The positioning, in one page.
How it worksA prompt’s journey end to end.
System overviewThe machine workspace and its supporting surfaces.