Put your agent in your chat.
A thin, always-on edge that plugs a Delta agent into Telegram. The edge holds the conversation; the agent scales to zero between messages.
01 · In the chat
What your agent can do from a message.
No app to learn. Talk to it, send it a file, or start over. The edge keeps every exchange durable, and the agent stays a full Delta underneath.
Natural, threaded chat
Message it like a person. It threads the conversation and, behind the trusted gateway, remembers what you tell it to.
Reads what you send
Send a photo or a document and it lands in the agent's workspace; the agent opens it with read_file and works from it. The bytes never enter a prompt.
Start a fresh thread
Clears the current context so the next message begins a new conversation. No restart, no waiting.
Built-in commands
/help lists what it can do; /id returns your Telegram id for the allowlist. Both answer instantly, without spending an agent turn.
02 · How it works
A thin edge in front of a sleeping agent.
The competitors weld the chat socket to the agent, so it can never sleep. Delta splits them: the edge is the only always-on part, and the agent wakes only when a message arrives.
// full capability while it works, near-zero cost at rest. the edge idles cheap.
Durable by design
Every message and reply is written to a durable inbox and outbox before it moves. Nothing is lost, and replies arrive in order.
Scales to zero
The edge is the only thing that stays up. The agent sleeps between turns and the host wakes it per message, so idle cost is near zero.
Learns safely
Self-write is off by default. The edge authenticates and allowlists the caller, so a chat agent can remember what you tell it without exposure.
Any model
Run it on a subscription, a direct API key, or OpenRouter. The agent stays a product-neutral engine; the model is just config.
03 · The durable spine
A sleeping agent can still never drop a message.
Scaling to zero only works if nothing is lost while the agent is down. The edge owns a small, durable spine so a restart mid-conversation is a recoverable event, not a dropped reply.
Accepted before awake
The edge acknowledges the platform and writes the message to a durable inbox before the agent is even up. Re-deliveries are deduped by event id, so nothing runs twice.
One transaction per turn
Session state, the outbound reply, and marking the message done all commit in a single transaction. A crash leaves no half-finished turn behind.
Delivered on wake
Replies queue in a durable outbox and send in strict order, honouring rate limits with backoff. A whole reply group dead-letters together rather than arriving scrambled.
You send a message while the agent is scaled to zero.
The edge 2xx's the platform, writes it to the inbox, and wakes the agent.
The agent runs the turn; the reply leaves the outbox in order. Nothing lost.
04 · Telegram quickstart
Talk to your agent in four steps.
You need Bun, a model key, and a Telegram bot token from @BotFather. Long-poll needs no public URL, just outbound HTTPS, so it runs anywhere, even a laptop.
Scaffold and configure the agent
Create a bundle, give it a persona, then set the model and the safe chat profile.
delta init myagent # edit myagent/DELTA.md (persona), then in myagent/delta.env: DELTA_MODEL_PRIMARY=anthropic/claude-sonnet-5 # + your provider key DELTA_PROFILE=chat # chat mode: read-only tools, no code/delegation DELTA_REFLECT=1 # turn on the learning loop DELTA_ALLOW_SELF_WRITE=1 # let it "remember" behind the trusted gateway DELTA_WORKSPACE=/abs/path/to/myagent # read the persona, persist memory here
Run the daemon
Source the bundle env, then start the agent (bare
deltadoes not readdelta.envon its own).cd myagent && set -a && . ./delta.env && set +a && delta
Start the connector
Give it your bot token and the daemon URL, and lock it to your own chat.
# connect/.env TELEGRAM_BOT_TOKEN=... # from @BotFather DELTA_BASE_URL=http://127.0.0.1:8321 ALLOWED_TELEGRAM_USER_IDS= # your id (send /id to get it) bun start
Message your bot
Send it anything: a question, a photo, or a document, or
/newto start a fresh thread. The round trip is Telegram to the edge, to the agent, and back, all durable.
A channel agent runs on the chat profile: read-only tools, no code or delegation, because raw inbound chat is untrusted. DELTA_ALLOW_SELF_WRITE=1 (off by default) is what grants the remember tool on that profile, and it is safe here because the connector authenticates and allowlists the caller before anything reaches the agent.
Start here