What it is

“I wrote a bot that answers questions in our Discord or Slack using an AI model, and I need somewhere for it to live.”

A support or community bot holds a login token for the chat app, receives each message, assembles some context, calls a model and posts the answer. You write it with a library such as discord.js or Slack's Bolt; the model runs elsewhere and is billed by its own provider.

Discord bots normally keep a WebSocket open to Discord: a connection that stays open so messages can be pushed down it at any moment. Discord calls these persistent connections that the bot must keep alive with regular heartbeats. Slack offers the same in Socket Mode.

The other way is a public web address that Discord or Slack calls for each message (Slack Request URLs, Discord interactions). A bot built that way only needs to be awake when a message arrives. A bot that reads every message in a server needs the open connection, and so a machine that stays on.

What it needs from a machine

From its own documentation, each line linked to the page it comes from

Machine size

Neither Discord nor Slack publishes one. 1 vCPU / 2 GiB / 10 GiB runs Node or Python, a small history database and one model call at a time, with room for logs. Battleships models this job at 2 vCPU / 4 GiB / 20 GiB.

battleships.dev, built by the Boat team

Does it stay on?

Yes for a bot with an open connection: if it misses a heartbeat, Discord closes the connection, and a bot may only log in to it 1,000 times a day, so a host that keeps sleeping and waking it is a bad host. A bot that only answers through a web address can sleep if the host wakes it on a request.

discord.com

What must survive a restart

The bot token (anyone with it controls the bot), conversation history and any settings. Lizard's guide keeps them in a database rather than the machine's disk, and warns to run only one copy per token, or every copy answers every message.

lizard.build

Browser, Docker, GPU

No browser. Docker is optional. A database is recommended for history; SQLite (a single-file database) is enough for one copy. No GPU.

lizard.build

How busy it is

Idle almost all the time, busy in short bursts when a message arrives. Battleships' always-on assistant averages about 6% CPU; one community server sees less traffic, so the calculator uses 3%.

battleships.dev, built by the Boat team

Setting it up on each provider

Easiest first. “Without a terminal” means someone who does not type commands can get it running from the provider's website.

ProviderHowWithout a terminal?What it involves
Agent 37One clickYesNot your own code: pick OpenClaw or Hermes on a Personal plan and connect it to your own Discord or Slack account, on Basic and above. The bot is that ready-made agent.Agent 37 Personal ↗
LizardOfficial guide or templateNoThe most complete official walkthrough: a discord.js example deployed with no public port, one copy per token, secrets, and a managed PostgreSQL database for history. Deployed from the command line.Lizard: host a Discord bot ↗
ModalOfficial guide or templateNoAn official example, but only for a bot that answers slash commands through a web address. Modal is not built to hold an open connection.Modal: Discord bot ↗
BlaxelBy handNoA poor fit for an open connection: Blaxel treats a WebSocket with no traffic for 15 minutes as idle and puts the sandbox on standby. No bot guide.Blaxel: active and standby ↗
BoatBy handPartlyBoat documents the pattern: run the bot as a service that comes back by itself after a stop, resume or copy, and keep its public address. No bot-specific guide.Boat: always-on services ↗
boxdBy handPartlyTurn off auto-hibernate, and turn off bot protection for that machine: it is on by default and "chat apps can't pass" it.boxd: personal assistants ↗
Cloudflare SandboxBy handNoA Worker can serve a Slack app that answers through a web address, but a Discord bot with an open connection does not fit a sandbox built around requests and stopping. No bot guide.Cloudflare Sandbox: lifetime ↗
DaytonaBy handPartlyCreate a sandbox with auto-stop off (the default is 15 idle minutes), install the bot and keep it running under a process manager. No bot guide.Daytona: auto-stop ↗
InstaBoxBy handPartlyA general Linux machine with Docker. Turn auto-pause off so the connection stays open. No bot guide.InstaBox: concepts ↗
MorphBy handPartlyOnly for a bot that answers through a web address: a Devbox wakes on a request, but an idle one is paused, which drops an open connection.Morph: wake on request ↗
RuntimeBy handPartlyA persistent sandbox never idle-pauses and can run the bot. No bot guide.Runtime: pricing and persistent sandboxes ↗
SandboxerBy handPartlyTurn idle pause off, or create the keep-awake file Sandboxer documents for work it cannot see, and run the bot as a service. No bot guide.Sandboxer: long-running tasks ↗
SpritesBy handNoOnly for a bot that answers through a web address: "services don't keep a Sprite from pausing", so a quiet connection would be paused.Sprites: services ↗
E2BNot documentedNoNot suitable: sessions end after one hour on the free plan and 24 hours on Pro.E2B: pricing ↗
Vercel SandboxNot documentedNoNot suitable: sandboxes are made for one task and functions for one request, with no documented way to hold a connection open.

Read from each provider's documentation on 29 October 2026. A provider not listed as one click can still be the right home; it means someone has to follow its instructions.

Where to start

Three starting points for different people, each with its catch

If you wrote the bot yourself

Lizard

The only provider with a full official Discord bot guide, including the database for history and the one-copy rule. It fits inside the $19 monthly plan that comes back as usage.

Catch: Deployed from the command line, and it runs on Lizard's app platform rather than the sandbox sizes the calculator prices.

lizard.build ↗

If you want to pay least for waiting

Runtime

CPU is billed only while it works, so a bot that mostly waits is about $12 a month at 1 vCPU / 2 GiB, in a sandbox that never idle-pauses.

Catch: No bot guide, one US region, and storage keeps billing while the machine is stopped.

withruntime.com ↗

If you do not want to write code

Agent 37

A ready-made AI agent (OpenClaw or Hermes) answering in your Discord or Slack, set up from the browser, from $3.99 a month with your own model key.

Catch: It is not your own bot: you configure an existing agent rather than run your code. These Personal plans are separate from the Cloud machines the calculator prices.

agent37.com ↗

Beyond these providers. An ordinary host such as Render runs an always-on background worker from $7 a month for 512 MB, or $25 for 1 CPU / 2 GB. A Slack app that answers through a web address fits Cloudflare Workers: free up to 100,000 requests a day, or a $5 monthly minimum.

Compare these three head to head: features and cost side by side.

What it would cost

One always-on 1 vCPU / 2 GiB / 10 GiB machine that keeps its history: 730 hours, because a bot holding a Discord or Slack connection cannot sleep. About 3% CPU on average, since one community sees little traffic. The model line assumes 100 replies a day at 10,000 tokens each (instructions plus recent messages). Change any number; open a row for the arithmetic.

Start from

The machine
How it runs
How busy it is

Only providers that bill for CPU actually used look at this. An agent waiting for messages is near 0%; a build or a test run is near 100%.

For providers that put an idle machine to sleep and wake it on a request: the share of its hours it has to be awake. An agent that only answers webhooks can sleep; one that holds a chat connection open cannot.

The AI model (optional)

For most agents the model costs more than the machine. Each message re-sends the agent's instructions and history, so tens of thousands of tokens is normal. Prices are the median of the providers that keep no data, from TokenWatch, read 2026-10-29.

    List prices only, excluding model tokens, egressData the machine sends out to the internet, such as downloads to a user or uploads to another service. Some providers charge per GB; most agents send very little., taxes and anything a provider does not publish. How the numbers are made.

    The features that decide it

    Each page compares every provider, with a source for every row

    1. 01

      Idle timers, waking and session limits — An always-available agent depends on three separate settings: a lifetime deadline, an idle timer, and a wake path. Providers bundle them differently, and the difference is most of your bill.

    2. 02

      Lifecycle: stop, pause and sleep — Providers use seven words for four behaviours. The only question that matters is what is still running when the machine comes back.

    3. 03

      Reaching it: links, ports and who can open them — A machine nobody can reach is not an agent. There are four doors in — an HTTPS link, a raw TCP port, SSH, and the provider's API — and the important difference is who can open each one.

    4. 04

      Keys and secrets — Three different things are called “secrets”: a value in an environment variable, a file on disk, and a placeholder that a proxy swaps for the real key. Only the third keeps the key away from the agent.

    5. 05

      Billing models — The meter decides your bill more than the hourly rate does. Four shapes are in play: flat per size, per vCPU and per GB, a plan fee that returns as credit, and measured CPU.

    Sources