Skip to Content

Messaging

The agent in the container is the same agent on every surface. Once a private messenger bot is connected, asking it to change the project from your phone is the same operation as typing in the console.

TL;DR

Open Server → Bots in the container’s console, paste a bot token for Telegram, Slack, or Discord, enable the bridge, and pair yourself with a one-time code. Then message the bot directly.

Connect a bot

Everything happens in the console the container already serves — there is no extra service to run and no port to open.

  1. Open the console and go to Server → Bots.
  2. Create the bot on the platform, under an account or workspace you control:
    • Telegram — create it with BotFather and copy the token.
    • Slack — enable Socket Mode and create both an app-level and a bot token.
    • Discord — create an application, add a bot, and copy its token.
  3. Paste the credential and enable the bridge.
  4. Choose Pair user. The console shows one short, single-use code.
  5. Send the bot /pair CODE from your own account.

The paired user then appears on the bot page, and the chat becomes an ordinary contact in the console’s Chats.

Use direct messages. Group chats are rejected on purpose: pairing one sender would not authorize everyone else who can read the room. The platform token authenticates the bot account, never the person typing — until pairing succeeds, a sender gets only the pairing instruction and no fleet data.

Connecting a credential also hands over that bot’s command menu and public profile, so use a bot application dedicated to Cmdop if an existing identity or command set matters to you.

What you can do from a chat

Free text goes to the agent and comes back as an ordinary reply, so “change the headline to something calmer” works from a messenger exactly as it does in the console. Alongside that there is a small command menu — orientation, connected machines, availability, upcoming scheduled work, pending approvals, and starting or cancelling a conversation — answered directly without an agent turn.

Two behaviors are worth knowing because they change how you type:

A new message supersedes a running turn. You do not need to cancel before correcting yourself. A message that arrives mid-run cancels the in-flight turn and restarts it with your new text included, and a burst of quick messages coalesces into one turn. Cancel only when you want the work to stop entirely — and note that stopping further work does not undo effects a run already had.

Approvals arrive where you are. When the agent needs a decision it cannot make alone, a simple choice or a command approval appears as native buttons in the chat. Anything richer — several questions, free text — offers a link into the authenticated console instead. Both surfaces settle the same decision, so whichever you answer first wins and the other’s controls are withdrawn.

Scheduled work replies back into the chat that armed it, so “remind me in an hour” reaches you without your having to ask again. This is available for Telegram today; Slack and Discord keep the result in chat history but do not receive that push yet.

Tokens and privacy

Bot tokens are write-only in the console — Cmdop stores them in the host’s credential store and never returns them through its API. Bridge logs record lifecycle metadata and message sizes, never tokens, questions, or answers.

Revoking a paired user invalidates the buttons on earlier messages too, so controls left in old chats cannot be used after a revoke or re-pair.

Last updated on