Telegram
Token da Bot API entra, respostas saem. DMs e grupos.
Um único sistema de produtos
Comece com uma máquina. Cresça para uma frota.
Transforme qualquer máquina em um bot para Telegram, Discord ou Slack, e permita que equipes e agentes de IA peçam ajuda às máquinas.
O mesmo loop de bot fala todos os canais. Escolha onde sua equipe já conversa — o SDK cuida do resto.
Token da Bot API entra, respostas saem. DMs e grupos.
Comandos slash e mensagens de canal, nativos do gateway.
Menções ao app e DMs em todo o seu workspace.
Você chama client.bots.run(...) e o núcleo em Go assume: ele escuta no canal e, a cada mensagem, chama o próprio machines.ask do SDK. Sem novo endpoint, sem servidor para hospedar.
Bots não são uma biblioteca separada que você instala e configura. Eles são uma operação de primeira classe no mesmo cliente que você já usa para máquinas, frotas e túneis — client.bots.run, e você está no ar.
The Telegram, Discord and Slack bot runtime lives inside the cmdop core. There is no separate Python or Node service to babysit — the baked-in binary owns the channel, retries and reconnects on its own.
Cada mensagem de chat é encaminhada ao agente de IA da sua máquina através do machines.ask de streaming do relay, com as mesmas garantias de pin/confirm. O bot é um consumidor puro da superfície de máquina em que você já confia.
`cmdop` / `@cmdop/sdk` traz todos os cinco binários da plataforma embutidos. Sem SDK de bot extra, sem dependência por canal — troque de Telegram para Slack mudando um argumento.
Tudo o que um bot pode fazer, o SDK pode fazer — bots são apenas a porta de entrada do canal de chat. Comece com o SDK e adicione um bot em algumas linhas.
Instale o SDK, chame client.bots.run, e sua frota responde no Telegram, Discord ou Slack.
import asynciofrom cmdop import Clientasync def main():async with Client() as client:# The Go core runs the Telegram loop. Per message it# drives the SDK’s own machines.ask and streams back.await client.bots.run(channel="telegram",token="<BOT_TOKEN>",machine="work-mbp",)asyncio.run(main())