Set Up Telegram#

Telegram, Discord, and Slack reach your agent through OpenShell-managed processes and gateway constructs. NemoClaw configures those channels during nemoclaw onboard. Tokens are registered with OpenShell providers, channel configuration is baked into the sandbox image, and runtime delivery stays under OpenShell control.

nemoclaw start does not start Telegram (or other chat bridges). It only starts optional host services such as the cloudflared tunnel when that binary is present. For details, refer to Commands.

Prerequisites#

  • A machine where you can run nemoclaw onboard (local or remote host that runs the gateway and sandbox).

  • A Telegram bot token from BotFather.

Create a Telegram Bot#

Open Telegram and send /newbot to @BotFather. Follow the prompts to create a bot and copy the bot token.

Provide the Bot Token and Optional Allowlist#

Onboarding reads Telegram credentials from either host environment variables or the NemoClaw credential store (getCredential / saveCredential in the onboard flow). You do not have to export variables if you enter the token when the wizard asks.

Option A: Environment variables (CI, scripts, or before you start the wizard)#

$ export TELEGRAM_BOT_TOKEN=<your-bot-token>

Optional comma-separated allowlist (maps to the wizard field “Telegram User ID (for DM access)”):

$ export TELEGRAM_ALLOWED_IDS="123456789,987654321"

Option B: Interactive nemoclaw onboard#

When the wizard reaches Messaging channels, it lists Telegram, Discord, and Slack. Press 1 to toggle Telegram on or off, then Enter when done. If the token is not already in the environment or credential store, the wizard prompts for it and saves it to the store. If TELEGRAM_ALLOWED_IDS is not set, the wizard can prompt for allowed sender IDs for Telegram DMs (you can leave this blank and rely on OpenClaw pairing instead).

Run nemoclaw onboard#

Complete the rest of the wizard so the blueprint can create OpenShell providers (for example <sandbox>-telegram-bridge), bake channel configuration into the image (NEMOCLAW_MESSAGING_CHANNELS_B64), and start the sandbox.

Channel entries in /sandbox/.openclaw/openclaw.json are fixed at image build time. Landlock keeps that path read-only at runtime, so you cannot patch messaging config inside a running sandbox.

If you add or change TELEGRAM_BOT_TOKEN (or toggle channels) after a sandbox already exists, you typically need to run nemoclaw onboard again so the image and provider attachments are rebuilt with the new settings.

For a full first-time flow, refer to Quickstart.

Confirm Delivery#

After the sandbox is running, send a message to your bot in Telegram. If something fails, use openshell term on the host, check gateway logs, and verify network policy allows the Telegram API (see Customize the Network Policy and the telegram preset).

nemoclaw start (cloudflared Only)#

nemoclaw start starts cloudflared when it is installed, which can expose the dashboard with a public URL. It does not affect Telegram connectivity.

$ nemoclaw start