Drive your whole fleetfrom code.
The cmdop SDK is the programmatic foundation the CLI and bots build on. One Go core owns the hard logic; thin typed clients for Python and Node just call it. Stream a machine’s AI agent, run fleets, open tunnels, schedule jobs — all from your own program.
One install. Nothing else.
All five platform binaries ship baked inside one fat wheel and one npm package — no cmdop agent install, no notarization, no per-platform download. A runtime resolver picks the host’s binary at spawn time.
Python — PyPI
Node — npm
cmdop 1.0.0 on PyPI · @cmdop/sdk 1.0.0 on npm
Stream a machine’s agent,as a typed async iterator.
The headline op opens an SSE stream to a machine’s AI agent through the relay, surfaced as a clean async iterator of typed frames — event, done, error, confirm_required, pin_required, pin_denied — with mid-stream pin and confirm side-channels.
One core. Every language.
One Go core, thin typed clients
Auth, the relay SSE stream, retries and error mapping are written once in Go and reused by every client. A new language is a ~400-line thin shim plus a generated typed surface — not a full port.
Baked-in binaries — no extra install
All five platform binaries ride inside one fat wheel and one npm package. End users just pip install or npm i — no cmdop agent, no optionalDependencies, no Gatekeeper notarization.
Two-plane client
Machines, fleets, tunnels, schedules and keys go to the relay with your CMDOP_TOKEN. Skills and bots go to the platform with your UserAPIKey. One client, two credentials, by design.
machines.ask() SSE streaming
Stream a machine’s AI agent as a typed async iterator, with mid-stream pin and confirm side-channels. The same interaction model as the app, now scriptable.
Bots built in
Telegram, Discord and Slack bots are now hosted entirely inside the SDK core. Start one with client.bots.run(...) and the Go binary runs the channel loop, driving machines.ask() per message. The SDK absorbed bots.
Typed namespacesover your whole fleet.
Every relay op is mirrored in both clients and gated by a cross-language parity check — a method in one language but not the other fails CI.
machineslist · get · info · spend · ask · messages · active_sessionfleetscrud · members · attach · detachtunnelsopen · close · list · get · sessionsschedulescrud · trigger · runskeyslist · issue · revokeskillslist · install · publishbotsrun · management (Telegram · Discord · Slack)Read the docs.Ship in minutes.
Full reference for every namespace, the streaming model, and error handling.
Build on the foundation.
The programmatic core every other cmdop product is built on. Install it, import it, ship.