Um núcleo em Go, clientes tipados e enxutos
Autenticação, streaming, tentativas e mapeamento de erros são escritos uma vez em Go e reutilizados por cada cliente. Uma nova linguagem é uma camada tipada fina, não um port completo.
Um único sistema de produtos
Comece com uma máquina. Cresça para uma frota.
Controle sua frota por código com clientes Python e Node para comandos de máquinas, fluxos de agentes, streaming e bots.
Controle sua frota por código com clientes Python e Node para comandos de máquinas, fluxos de agentes, streaming e bots.
Cada plataforma já vem dentro de um wheel e um pacote npm — sem instalar o agente cmdop, sem notarização e sem downloads por plataforma. Um resolvedor escolhe em tempo de execução a build certa para o host.
Python — PyPI
Node — npm
cmdop 1.1.1 on PyPI · @cmdop/sdk 1.1.0 on npm
A operação principal transmite o agente de IA de uma máquina pelo relay e o expõe como um iterador async limpo com saída ao vivo, conclusão, erros e pedidos de aprovação.
Autenticação, streaming, tentativas e mapeamento de erros são escritos uma vez em Go e reutilizados por cada cliente. Uma nova linguagem é uma camada tipada fina, não um port completo.
Todos os cinco binários da plataforma viajam dentro de um único fat wheel e um único pacote npm. Os usuários finais apenas executam pip install ou npm i — sem agente cmdop, sem optionalDependencies, sem notarização do Gatekeeper.
Controle sua frota por código com clientes Python e Node para comandos de máquinas, fluxos de agentes, streaming e bots.
Transmita o agente de IA de uma máquina como um iterador async tipado, com pedidos de aprovação quando o trabalho precisa de confirmação. O mesmo modelo de interação do app, agora scriptável.
Os bots de Telegram, Discord e Slack agora são hospedados inteiramente dentro do núcleo do SDK. Inicie um com client.bots.run(...) e o binário em Go executa o loop do canal, acionando machines.ask() a cada mensagem. O SDK absorveu os bots.
Cada operação do relay é espelhada em ambos os clientes e protegida por uma verificação de paridade entre linguagens — um método em uma linguagem mas não na outra falha no 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)Referência completa para cada namespace, o modelo de streaming e o tratamento de erros.
O núcleo programático sobre o qual todo outro produto cmdop é construído. Instale, importe, coloque no ar.
import asynciofrom cmdop import Clientasync def main():async with Client() as client: # token de API do ambientestream = client.machines.ask(machine="work-mbp",prompt="What's eating disk on /var?",)async for frame in stream:if frame.kind == "event":print(frame.text, end="", flush=True)elif frame.kind == "done":breakasyncio.run(main())