CMDOP
TL;DR
CMDOP gives you full remote access to your machines from anywhere — terminal, files, browser, and AI agents — without VPNs, open ports, or SSH tunneling. Install with a single command, connect your machine, then access it via CLI, Python SDK, mobile app, or web dashboard. The agent uses outbound-only connections that work through any NAT or firewall.
Your OS. Online.
Full access to your machines from anywhere. Not files — the whole system.
Why should I use CMDOP?
| Problem | CMDOP Solution |
|---|---|
| VPN requires client install | SDK works without VPN |
| SSH needs port forwarding | Agent uses outbound connection |
| Screen sharing is laggy | gRPC streaming, real-time |
| File sync is just files | Full OS access: terminal + files + browser |
| AI returns text | Structured output with Pydantic |
How do I install CMDOP?
# Download and run the CMDOP installer
curl -sSL cmdop.com/install.sh | bash# Download and run the CMDOP installer for Windows
iwr -useb cmdop.com/install.ps1 | iexHow do I get started with CMDOP?
# 1. Login
cmdop login
# 2. Connect your machine
cmdop connect
# 3. Access from anywhere
# - Web: my.cmdop.com
# - Mobile: iOS App
# - SDK: pip install cmdopWhat are the core concepts?
- Architecture — How the system works
- Sessions — Persistent execution contexts
- Agents — Outbound-only machine control
- Multi-Client — Multiple clients, one session
Which platform should I start with?
| Platform | Description | Guide |
|---|---|---|
| CLI | Command-line for power users | Get Started |
| Python SDK | Build automations | Get Started |
| Mobile | Control from iPhone | Get Started |
| Web Dashboard | Browser-based UI | Get Started |
How do I use the Python SDK?
from cmdop import AsyncCMDOPClient
# Connect to a remote machine using your API key
async with AsyncCMDOPClient.remote(api_key="cmd_xxx") as client:
# Terminal — execute commands on a remote machine
await client.terminal.set_machine("my-server")
output, code = await client.terminal.execute("uname -a")
# Files — read and write files on the remote machine
content = await client.files.read("/etc/hostname")
# AI Agent — get structured output with Pydantic models
from pydantic import BaseModel
class Health(BaseModel):
cpu: float
issues: list[str]
result = await client.agent.run("Check health", output_schema=Health)
health: Health = result.output # Typed! Auto-validated by PydanticHow does CMDOP compare to SSH, Tailscale, and ngrok?
| Feature | CMDOP | SSH | Tailscale | ngrok |
|---|---|---|---|---|
| No open ports | ✅ | ❌ | ✅ | ✅ |
| No client VPN | ✅ | ✅ | ❌ | ✅ |
| Session persistence | ✅ | ❌ | ❌ | ❌ |
| Multi-client attach | ✅ | ❌ | ❌ | ❌ |
| File operations | ✅ Built-in | SCP/SFTP | ❌ | ❌ |
| AI agent | ✅ Typed output | ❌ | ❌ | ❌ |
| Browser automation | ✅ Built-in | ❌ | ❌ | ❌ |
Last updated on