Skip to main content

Python SDK for CMDOP agent interaction

Project description

CMDOP

CMDOP

Your OS. Online.

Full access to your machines from anywhere. Not files — the whole system.

Your Code ──── Cloud Relay ──── Agent (on server)
                   │
       Outbound only, works through any NAT/firewall

Install

pip install cmdop

The package still imports as cmdop. The installed CLI entry point is cmdop-sdk (ssh, fleet, exec, tui) so it does not collide with the main CMDOP desktop/Go binary on PATH.

Quick Start

from cmdop import AsyncCMDOPClient

async with AsyncCMDOPClient.remote(api_key="cmdop_xxx") as client:
    # Terminal
    await client.terminal.set_machine("my-server")
    output, code = await client.terminal.execute("uname -a")

    # Files
    content = await client.files.read("/etc/hostname")
    await client.files.write("/tmp/config.json", b'{"key": "value"}')

    # AI Agent with typed output
    from pydantic import BaseModel

    class Health(BaseModel):
        cpu: float
        memory: float
        issues: list[str]

    await client.agent.set_machine("my-server")
    result = await client.agent.run("Check server health", output_model=Health)
    health: Health = result.data  # Typed!

    # Skills — run predefined AI workflows
    await client.skills.set_machine("my-server")
    skills = await client.skills.list()
    result = await client.skills.run("code-review", "Review the auth module")

Connection

from cmdop import CMDOPClient, AsyncCMDOPClient

# Remote (via cloud relay) - works through any NAT
client = CMDOPClient.remote(api_key="cmdop_xxx")

# Local (direct IPC to running agent)
client = CMDOPClient.local()

# Async
async with AsyncCMDOPClient.remote(api_key="cmdop_xxx") as client:
    ...

Documentation

Topic Description
Terminal Execute commands, stream output, SSH sessions
Auth Agent password authentication, session tokens
Files Read, write, list files on remote machines
Agent AI tasks with structured typed output
Skills Predefined AI workflows with tool access
Download Download files from URLs via remote server
SDKBaseModel Auto-cleaning Pydantic model for scraped data

Architecture

┌─────────────┐    gRPC/HTTP2    ┌─────────────┐    gRPC    ┌─────────┐
│   Python    │◀────────────────▶│   Cloud     │◀──────────▶│  Agent  │
│     SDK     │   Bidirectional  │   Relay     │  Outbound  │  (Go)   │
└─────────────┘                  └─────────────┘            └─────────┘
  • Agent makes outbound connection (no port forwarding)
  • SDK connects via gRPC (works through any firewall)
  • All services multiplexed over single connection

Comparison

Feature CMDOP Tailscale ngrok SSH
Terminal streaming gRPC VPN + SSH No Yes
File operations Built-in SFTP No SCP
AI agent Built-in No No No
Reusable AI skills Built-in No No No
NAT traversal Outbound WireGuard Outbound Port forward
Client install None VPN client None SSH client
Structured output Pydantic No No No

Requirements

  • Python 3.10+
  • CMDOP agent running locally or API key for remote access

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmdop-2026.4.7.1.tar.gz (206.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cmdop-2026.4.7.1-py3-none-any.whl (345.0 kB view details)

Uploaded Python 3

File details

Details for the file cmdop-2026.4.7.1.tar.gz.

File metadata

  • Download URL: cmdop-2026.4.7.1.tar.gz
  • Upload date:
  • Size: 206.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for cmdop-2026.4.7.1.tar.gz
Algorithm Hash digest
SHA256 ffa1e42c046db1d3fd5c90c8391ce51b901e9ad5ae295d26a3f9664f6330b1d2
MD5 7cb6f6252b8b4d7ba148d354c5006a17
BLAKE2b-256 3f89e3e5961767451441f02c04dc142af52d8a2e60ec45516b8f5786b10f56de

See more details on using hashes here.

File details

Details for the file cmdop-2026.4.7.1-py3-none-any.whl.

File metadata

  • Download URL: cmdop-2026.4.7.1-py3-none-any.whl
  • Upload date:
  • Size: 345.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for cmdop-2026.4.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 293e4d0dc9841049260d1cf993012709c1a7a1029fb8d28dfb7251cebd209ba0
MD5 1a0ef652cf28eb5e2b5428e6595b6335
BLAKE2b-256 40e3b84f72f47d549fda3280be22074d17b4e290b142f156e7764b574eb157b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page