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